Saya punya salah satu pertanyaan yang sulit ditanyakan atau dijawab di forum. Baru-baru ini saya ditugaskan untuk merancang (dan mengimplementasikan) aplikasi yang akan berjalan di OS Android. Karena saya berasal dari dunia .net, saya memutuskan untuk menggunakan framework Xamarin.Android (sebelumnya dikenal sebagai mono untuk android). Saya melakukan riset pada kerangka target dan menghasilkan desain kasar. Tapi karena saya baru mengenal dunia Android, saya tidak yakin desain saya adalah yang terbaik (atau bahkan yang bisa diterima). Saya akan mencoba menjelaskan deskripsi saya sesingkat mungkin. Persyaratan dasar untuk aplikasi ini adalah:
- Aplikasi harus mampu menyediakan GUI yang berbeda untuk pengguna yang berbeda.
- Aplikasi harus menampilkan data yang diambil dari server.
- Aplikasi harus menyediakan sarana bagi pengguna untuk mengubah data server.
- Ketika salah satu pengguna mengubah data server, pengguna lain harus diberi tahu.
Berdasarkan penelitian saya, saya menemukan hal berikut:
Untuk menyediakan GUI yang disesuaikan untuk setiap pengguna, aplikasi pertama-tama akan mengautentikasi pengguna kemudian mengambil file xml dari server yang kemudian digunakan untuk membangun GUI secara terprogram. Karena saya harus mendukung rotasi perangkat dan perangkat yang berbeda, ini berarti banyak pekerjaan, jadi pemikiran apa pun tentang hal ini akan sangat diterima.
Saya pikir cara terbaik bagi aplikasi untuk berkomunikasi dengan server adalah dengan memanggil layanan berbasis REST (GET untuk mengambil data awal dan PUT untuk memperbarui status server).
Ketika status server akan diubah oleh salah satu pengguna, semua pengguna lainnya akan diberitahu menggunakan notifikasi (Google cloud message atau GCM yang menggantikan C2DM lama). Karena sebagian besar aktivitas bergantung pada notifikasi untuk menampilkan pembaruan, menurut saya cara terbaik untuk mengimplementasikannya adalah dengan membuat layanan Android. Layanan akan dimulai dengan aplikasi dan akan berjalan selama aplikasi tersebut. Ketika layanan akan dimulai, layanan akan mendaftarkan dirinya ke GCM dan kemudian menggunakan siaran untuk memberi tahu aktivitas saat ini bahwa ada sesuatu yang berubah.
Saya minta maaf untuk posting yang panjang tetapi saya mencoba untuk sesingkat mungkin. Seperti yang saya katakan, ini adalah desain yang sangat kasar sehingga segala pemikiran, ide, atau kritik akan sangat diterima.
Uros