Monday, April 13, 2009

Getting ready for Android 1.5




I'm excited to announce that starting today, developers can get an early look at the SDK for the next version of the Android platform. This new version (which will be 1.5) is based on the cupcake branch from the Android Open Source Project. Version 1.5 introduces APIs for features such as soft keyboards, home screen widgets, live folders, and speech recognition. At the developer site, you can download the early-look Android 1.5 SDK, read important information about upgrading your Eclipse plugin and existing projects, and learn about what's new and improved in Android 1.5.

We've also made changes to the developer tools and the structure of the SDK itself. Future Android SDK releases will include multiple versions of the Android platform. For example, this early-look includes Android platform versions 1.1 and 1.5. One benefit of this change is that developers can target different Android platform versions from within a single SDK installation. Another is that it enables developers to install Android SDK add-ons to access extended functionality that might be provided by OEMs, carriers, or other providers. We at Google are using this feature ourselves: this early-look SDK includes an add-on for the Google APIs. This add-on provides support for the Google Maps API, which was previously embedded in the "core" SDK.

To help you prepare your applications for the release of Android 1.5 on phones, over the next few weeks we'll be publishing a series of articles on this blog to highlight new APIs and other changes. In addition to the new APIs that I've mentioned, we'll cover topics such as OpenGL, asynchronous tasks, system settings, and new Activity callbacks.

I encourage you to start working with this early-look SDK, but please know that the APIs for Android 1.5 have not been finalized. The majority of the APIs are settled, but there may be some changes before the final release. As a result, it's very important that you don't release applications based on this early-look SDK, since they may not work on real devices. The applications you release should be built on the final Android 1.5 SDK release, which will be available around the end of this month.

I look forward to seeing all the great apps that use the new capabilities in Android 1.5. Happy coding!

Tuesday, April 7, 2009

Embrace the Inner Diva

“I believe that it’s better to be looked over than it is to be overlooked.”
Mae West

To be a diva is to be a woman confident in her own skin. A woman willing to take on the world without fear, just as adeptly as a leopard chasing it’s prey. A diva always stands up for herself and lets her voice be heard. She strives in every aspect of her life and consistently hones each and every talent. A diva knows how to have fun and lives each day to the fullest. And nothing gets in her way whether it is a lack of resources or personal strife. A diva always knows how to get what she wants and does so effortlessly. There is a diva living inside us all, but most of us have to delve deep within ourselves to rouse her. Once she is awakened, life will never be the same again! Awake your inner diva from out of her slumber and start living each day to the fullest!

Love yourself TODAY – So what if you are overweight, suffering from a skin problem or something else that makes you feel less than beautiful. Embrace all of your flaws and accept them as part of your very being. You can always tweak your flaws to make them better. Focus on the things that you like about yourself, such as those gorgeous green eyes or a flawless complexion, and everything else will fall into place.


Build Up Others – Most women have a flaw that eats away at their core. Rather than highlighting another woman’s flaws, build her up by praising her attributes and paying her compliments. Make building others up a habit as you move throughout your day. You will find that the sentiment is often reciprocated, which will go a long way in reinforcing your own self-esteem. A true diva does not capitalize on other’s misery, in fact she sees other women as her sisters in life rather than the competition.

Don’t Supply the Ammo – You know your weaknesses, flaws and other shortcomings. There is absolutely no reason to publicize them to the rest of the world. Don’t ever give someone else the ‘ammo’ to belittle or humiliate you. Keep your flaws to yourself and embrace them in the full knowledge that they are not set in stone. You can and will change them, but only if you deem necessary.

You’ve Got the Look – Now that your inner diva is awakened, you’ve got to dress her to the nines! A diva always looks her best even if she is only wearing a pair of jeans and a t-shirt. Her clothes are always impeccably clean, pressed and never tattered. Her hair is kempt and she always has a bit of bling on even if she is only going to the grocery store. A real diva uses make-up sparingly while highlighting her natural beauty through exceptional cleanliness and impeccable hygiene.

Life is too short to waste a moment of it wallowing in self-doubt and negativity. Allow your inner diva to shine and your confidence will soar to even greater heights!



Monday, March 30, 2009

Developer News

For no particular reason other than to celebrate this particular Monday, I wanted to update developers on two Android-related news items.

If you're a developer who will be in the San Francisco Bay Area at the end of May, I hope you'll join us at the 2009 Google I/O developer conference. You might have already seen the sessions we had listed for Android, but today I'm quite pleased to let you know that we've added a few more Android-related sessions. You can find the full list plus abstracts on the Google I/O site, but here are the titles:


  • Turbo-Charge Your UI: How to Make Your Android UI Fast and Efficient

  • Pixel-Perfect Code: How to Marry Interaction and Visual Design the Android Way

  • Supporting Multiple Devices with One Binary

  • Debugging Arts of the Ninja Masters

  • Coding for Life—Battery Life, That Is

  • Writing Real-Time Games for Android

  • Android Lightning Talks

These sessions don't even include the "fireside chat" with the Core Technical Team that we have planned. We're working on still more sessions too; keep an ear to the ground on this blog and the Google I/O site for the latest info. I'm pretty excited about how the Android sessions for Google I/O are coming together. I think it's going to be a great event, and I hope to meet many of you there.

The other topic I want to mention is that our partners at HTC have uploaded a new system image for Android Dev Phone 1 owners. This new image is mostly the same as the one we mentioned earlier this month, but adds voice dialing. Note that not all features will work correctly in all countries, such as voice dialing and Google Voice Search which currently only work well for US English. Additionally, there are some features that we aren't able to make available at all in some countries. For instance, this build can't currently include Google Latitude due to privacy standards in some regions. We'll always keep the ADP1 builds as full-featured as we can, but it's important to remember that these devices are primarily intended for development, and won't necessarily have all the features included on mainstream builds.

I hope this news is useful to you. As always, happy coding!

Android Layout Tricks #3: Optimize with stubs

Sharing and reusing layouts is very easy with Android thanks to the <include /> tag, sometimes even too easy and you might end up with user interfaces that contain a large number of views, some of which are rarely used. Thankfully, Android offers a very special widget called ViewStub, which brings you all the benefits of the <include /> without polluting your user interface with rarely used views.

A ViewStub is a dumb and lightweight view. It has no dimension, it does not draw anything and does not participate in the layout in any way. This means a ViewStub is very cheap to inflate and very cheap to keep in a view hierarchy. A ViewStub can be best described as a lazy include. The layout referenced by a ViewStub is inflated and added to the user interface only when you decide so.

The following screenshot comes from the Shelves application. The main purpose of the activity shown in the screenshot is to present the user with a browsable list of books:


Media_http2bpblogspot_hswch

The same activity is also used when the user adds or imports new books. During such an operation, Shelves shows extra bits of user interface. The screenshot below shows the progress bar and cancel button that appear at the bottom of the screen during an import:


Media_http1bpblogspot_cayjy

Because importing books is not a common operation, at least when compared to browsing the list of books, the import panel is originally represented by a ViewStub:


Media_http4bpblogspot_eyxbf

When the user initiates the import process, the ViewStub is inflated and replaced by the content of the layout file it references:


Media_http1bpblogspot_jelnj

To use a ViewStub all you need is to specify an android:id attribute, to later inflate the stub, and an android:layout attribute, to reference what layout file to include and inflate. A stub lets you use a third attribute, android:inflatedId, which can be used to override the id of the root of the included file. Finally, the layout parameters specified on the stub will be applied to the roof of the included layout. Here is an example:


<ViewStub
android:id="@+id/stub_import"
android:inflatedId="@+id/panel_import"

android:layout="@layout/progress_overlay"

android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom" />


When you are ready to inflate the stub, simply invoke the inflate() method. You can also simply change the visibility of the stub to VISIBLE or INVISIBLE and the stub will inflate. Note however that the inflate() method has the benefit of returning the root View of the inflate layout:


((ViewStub) findViewById(R.id.stub_import)).setVisibility(View.VISIBLE);
// or
View importPanel = ((ViewStub) findViewById(R.id.stub_import)).inflate();


It is very important to remember that after the stub is inflated, the stub is removed from the view hierarchy. As such, it is unnecessary to keep a long-lived reference, for instance in an class instance field, to a ViewStub.

A ViewStub is a great compromise between ease of programming and efficiency. Instead of inflating views manually and adding them at runtime to your view hierarchy, simply use a ViewStub. It's cheap and easy. The only drawback of ViewStub is that it currently does not support the <merge /> tag.

Happy coding!

Sunday, March 29, 2009

Kontes SEO Kampanye berat buat Saiya


Kampanye Damai Pemilu Indonesia 2009 memang sangat berat buat saiya sebagai pemula, sengaja memakai kata saiya karena jika menulis dengan blog saya (saya = Abi di Bahasa Sunda), bisa-bisa salah presepsi kalau orang sunda yang baca blog saya = blog abi. Untuk selanjutnya saya akan diganti dengan saiya. Blog saiya ternyata hanya mampu tembus di posisi 200 besar di kata kunci tersebut, jadinya blog saiya tidak bisa bergaiya di halaman-halaman awal untuk keyword tersebut. Tapi tidak apa-apa karena saiya sebagai pemula masuk rangking dua ratus besar di mesin pencari saja sudah alhamdulillah bangeet.

Kontes SEO memang sedang trend di blogoshere ini, sehingga cukup banyak blogger Indonesia yang berpartisipasi dalam kontes tersebut baik skala nasional maupun internasional. Akhirnya saya sudah kelelahan mencoba untuk memasuki seratus besar saja sulitnya minta ampuin, apalagi kalo harus bermimpi ikut bergaiya di halaman awal, kapan ya saya mampu begitu. Kalo ada saran yang bisa membuat blog saiya ini bisa ikut bergaiya, tolong dong kasih tahu. Masa cuma master saja yang bisa bergaiya, pemula seperti saiya juga pengen dong ikut bergaiya.



Wednesday, March 25, 2009

Improve your competitive advantage with the white papers

Discover how other businesses, including your competition, are competing more effectively. Download this eKit; you can connect employees, vendors, partners and customers to make faster decisions for less. Do more, travel less and save money now!

- Accelerate business using on-demand web meetings
IDG Research Services explores competitive market
trends
with commentary from CIO Magazine subscribers.

- Understanding the Sales 2.0-enabled business
Learn how businesses embracing Sales 2.0 discover dramatic
outcomes: more closed deals, happier customers, and a new
confidence.

- Measuring the business benefits of web meetings
This Frost & Sullivan paper presents a comprehensive framework to
analyze the cost savings, productivity gains and total ROI.

- Small businesses yield big results
Leverage investments to pump up smaller sales forces,
improve training, reach busy executives and become larger than life.

- Real results: Online meetings accelerate business
Discover how four businesses stretch their resources, eliminate
logistical barriers, and transform their online initiatives into
strategic lines of business.


Sunday, March 22, 2009

Kampanye Damai Bulan Kedua

Sudah memasuki bulan kedua dimana kontes seo yang dilaksanakan sejak 1 Februari 2009 ini baru setengah jalan. Kita sama-sama melihat begitu ramainya orang memposting tentang Kampanye Damai Pemilu Indonesia 2009. Mudah-mudahan blog ini bisa cepat-cepat keluar dari gunungan pasir yang telah lama membungkamnya sehingga bisa ikut bersaing dengan para pakar seo di kata kunci yang dipertandingkan. Apakah halaman ini akan bisa terindex dengan cepat atau senasib dengan kakak-kakaknya yang sulit sekali bisa diterima oleh mesin pencari karena dianggap spam dan postingannya tidak berkualitas.

Sebagai newbie saya cuma bisa berusaha dan berdoa selebihnya serahkan pada mbah google dan yang maha kuasa. Apapun hasilnya saya tetap bangga karena proses belajar, pengalaman dan ilmu yang didapat jauh lebih berharga dari apapun.