Model Pengembangan User Interface Di Android


android

Ketika awal-awal mengembangkan aplikasi di platform Android, saya cukup terkejut dengan alur pengembangannya. Sebagai orang yang sering berkutat di Java ME dulunya, saya mengira bahwa di Android tidaklah jauh beda alur pengembangannya dengan Java ME karena sama-sama berbasis Java. Namun ternyata hal itu adalah salah besar, Java Android != Java ME (hehe, bahasa pemrograman abis :D )

Salah satu poin penting yang membedakan antara Java Android dengan Java ME adalah alur pengembangan user interfacenya, berikut adalah beberapa poin yang membedakan UI di Android dengan di Java ME:

  1. Pengubahan UI (User Interface) hanya bisa dilakukan melalui thread yang “memilikiUI tersebut. Contohnya, UI dibuat di Thread A, dan kita membuat Thread B untuk pemrosesan data, maka Thread B tidak dapat mengubah UI yang ada di Thread A. Dan perlu dicatat, hanya ada satu thread aktif yang mengatur UI di Android.
  2. Secara default anda akan “dipaksa” untuk mengikuti model pembuatan UI ala Android. Yaitu dengan menggunakan XML untuk menyusun layoutnya yang agak mirip ketika men-design UI web, bahkan mulai dari kode warna, teks, hingga theme semuanya diatur menggunakan XML.
  3. Semua XML yang mengatur tiap jenis komponen UI mempunyai struktur-struktur tersendiri tergantung dari fungsi dari jenis XML tersebut.
  4. Semua komponen UI yang kita tulis di XML akan di-convert menjadi class yang disebut dengan View, sehingga dapat dikenali oleh kodingan
  5. Ketika dari satu UI berpindah ke UI lainnya, kita tidak bisa melakukan passing data melalui constructor, melainkan menggunakan apa yang disebut dengan Bundle. Data-data yang akan dikirimkan dijadikan satu semuanya dalam satu Bundle lalu dikirimkan ke target UI berikutnya.
  6. View dan Bundle yang dibuat akan ditangkap oleh base class yang bernama Activity. Activity akan memproses data-data yang didapat dari Bundle yang dikirimkan serta melakukan proses-proses lainnya untuk kemudian outputnya ditampilkan pada View yang disediakan.

Masih banyak sebetulnya yang membedakan antara Android dengan Java ME dari sisi UI, namun ke-enam poin di atas sudah cukup menurut saya untuk menunjukkan seberapa kontrasnya antara Android dengan Java ME. Lagipula, mungkin untuk para developer yang sering menggunakan framework terutama yang berbasis MVC, mungkin akan sedikit merasa dejavu. Saya sendiri melihat betapa terstrukturnya pengembangan UI di Android yang agak menjurus ke pengembangan berbasis MVC. Antara UI, business process, dan data sudah dipisah sedemikian rupa layer-nya di Android.

Model pengembangan UI di Android yang berbeda dengan Java ME mungkin akan membuat programmer Java ME yang bermigrasi ke Android sedikit kebingungan. Namun setelah memahami model pengembangan UI di Android, anda pasti akan merasakan betapa nyamannya  mengembangkan aplikasi di Android hehe, Android jauh lebih optimal daripada Java ME menurut saya. Tunggu apa lagi, grab your Android and start rocking the code, YEAH!!!!! :fm: