Detik app for Android possible improvement

disclaimer: investigasi ini merupakan inisiatif saya sendiri sebagai developer android dan tidak ada kaitannya dengan perusahaan tempat saya bekerja.

Salah satu cara meningkatkan performance aplikasi android kita adalah dengan menggunakan View seminimal mungkin. Dalam blog ini saya akan mencoba menginvestigasi salah satu aplikasi android lokal yang paling populer yaitu aplikasi Detik (saya masih penasaran kenapa mereka tidak menggunakan reverse domain untuk package name-nya, malah menggunakan org.detik ?). Karena dengan melihat sekilas kita bisa tahu, bahwa aplikasi ini masih bisa di improve lagi.

Kali ini saya ingin melihat struktur layout dari sliding menu dari aplikasi detik. Untuk melihat struktur layout aplikasi tanpa melakukan reverse engineer cukup mudah dengan menggunakan UI Automator:

  1. Jalankan aplikasi detik di smartphone dengan OS Honeycomb atau yang lebih baru dengan debug mode.
  2. gantri prespective eclipse ke DDMS
  3. Dump hierarchy vie hierarchy
  4. Screen Shot 2013-10-07 at 7.37.47 PMkita lihat hasilnya seperti ini Screen Shot 2013-10-07 at 7.41.05 PM

dari gambar no 4 di atas kita lihat, untuk mendefinisikan satu menu, developer aplikasi ini menggunakan struktur yang lumayan komplek kurang lebih seperti ini:

<LinearLayout>
	<ImageView />
	<TextView />
</LinearLayout>

sebenarnya struktur ini bisa lebih disederhanakan, caranya adalah dengan menggunakan compound drawable, cukup dengan menggunakan satu TextView dan leftDrawable kurang lebih seperti ini:


<TextView
 android:drawableLeft="@drawable/icon"
 background="@drawable/selector"/>

di sini menggunakan drawableLeft untuk setting icon static yang digunakan di setiap menu-nya, dan menggunakan background selector untuk memberikan background sesuai dengan state dari textview tersebut. Dengan cara ini, aplikasi tersebut bisa lebih efisien lagi, karena hierarki view yang lebih flat dan jumlah view yang jauh lebih sedikit.

mungkin teknik ini bisa anda gunakan untuk aplikasi yang sedang anda develop ;)

 

happy coding

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s