26 Februari 2012

Filosofi Desain Fragment

Android mulai memperkenalkkan fragment pada Android 3.0 (API level 11), terutama untuk mendukung desain UI yang lebih fleksibel dan dinamis pada layar lebar, misalnya tablet. Karena layar sebuah tablet jauh lebih lebar daripada layar sebuah handset, maka lebih banyak ruang untuk mengkombinasikan komponen UI. Dengan fragment, kita bisa membuat desain tanpa perlu memanage perubahan hierarki tampilan yang rumit. Dengan membagi layout activity menjadi fragment-fragment, kita bisa memodifikasi penampilan activity saat runtime dan memelihara perubahan tersebut dalam back stack yang dimanage oleh activity.

Sebagai contoh, sebuah aplikasi berita bisa menggunakan satu fragment untuk menunjukan daftar artikel di kiri dan fragment lain untuk menampilkan artikel di kanan, kedua fragment tampil di satu activity, bersebelahan, dan masing-masing fragment memiliki metode siklus hidup callback sendiri dan menangani event input user sendiri-sendiri. Dengan demikian, daripada menggunakan satu activity untuk memilih artikel, dan activity lain untuk membaca artikel, lebih baik user bisa memilih sebuah artikel dan membacanya semua dalam activity yang sama.

Kita harus mendesain masing-masing fragment sebagai sebuah modular dan komponen activity yang bisa dipakai ulang. hal itu karena, setiap fragment mendefinisikan layoutnya sendiri, dan perilakunya sendiri dengan siklus hidup callbacknya sendiri, kita bisa memasukan sebuah fragment dalam banyak activity, jadi kita harus mendesain untuk pemakaian ulang dan menghindari manipulasi satu fragment dari fragment lainnya. Hal ini jadi sangat penting karena sebuah fragment yang modular menjadikan kita bisa mengubah kombinasi fragment untuk ukuran layar yang berbeda. Ketika mendesain aplikasi agar mendukung tablet ataupun handset, kita bisa menggunakan ulang fragment pada konfigurasi layout yang berbeda untuk mengoptimalkan kenyamanan user berdasarkan ruang layar yang tersedia. Sebagai contoh, pada sebuah handset, mungkin perlu memisahkan fragment untuk menyediakan sebuah UI dengan satu panel jika lebih dari satu fragment tidak muat dalam satu activity.

Sebuah contoh bagaimana dua modul UI yang didefinisikan oleh fragment bisa dikombinasikan menjadi satu activity untuk desain tablet, tapi terpisah untuk desain handset. Referensi gambar dari: http://developer.android.com/guide/topics/fundamentals/fragments.html

Kembali ke contoh aplikasi berita di atas, aplikasi tersebut bisa menanamkan dua fragment di dalam Activity A, ketika berjalan pada perangkat berukuran tablet. Bagaimanapun, pada perangkat seukuran handset, tidak ada cukup ruang layar untuk kedua fragmet, jadi Activity A hanya berisi fragment untuk daftar artikel, dan ketika user memilih sebuah artikel, user sekaligus menajalankan Activity B, yang mana berisi fragment kedua untuk membaca artikel. Dengan demikian, aplikasi bisa mendukung baik tablet maupun handset dengan menggunakan ulang fragment dalam kombinasi yang berbeda, sebagaimana ilustrasi pada gambar di atas.



Tidak ada komentar:

Posting Komentar