Arsitektur aplikasi Xamarin.Android

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


person Uroš    schedule 15.05.2013    source sumber


Jawaban (1)


Saya lebih cenderung memindahkan/menangani konfigurasi GUI sebagai JSON.

REST API tampaknya merupakan pilihan yang logis - Saya telah menggunakan RestSharp di sisi klien untuk melakukan komunikasi semacam ini dan saya cukup senang dengan itu.

GCM mudah disiapkan, jadi ini pilihan yang bagus. Anda mungkin juga mempertimbangkan solusi jajak pendapat panjang khusus tergantung kebutuhan Anda, tetapi GCM lebih mudah.

PushSharp mungkin layak untuk dilihat jika Anda memerlukan notifikasi push lintas platform, namun jika tidak, tulislah aplikasi server GCM Anda seperti terjatuh - Saya mendapat contoh awal yang bekerja dengan beberapa lusin baris Ruby.

person manadart    schedule 15.05.2013
comment
Terima kasih atas jawaban anda. Saya bermaksud menggunakan perpustakaan PushSharp karena sangat mungkin suatu hari nanti aplikasi tersebut akan berjalan di IPhone juga, jadi saya akan menggunakan perpustakaan yang sama untuk memberi tahu klien tersebut. Saya akan melihat perpustakaan RestSharp. Bisakah Anda mengarahkan saya ke contoh bagaimana mengimplementasikan pembuatan GUI menggunakan xml/json. - person Uroš; 17.05.2013
comment
Saya kira Anda akan memiliki dokumen JSON/XML per pengguna dan aktivitas yang membuat konten dinamis apa pun menggunakan teknik seperti ini: stackoverflow.com/questions/6216547/ - person manadart; 20.05.2013
comment
Apakah jawaban ini membantu? ;) - person manadart; 10.09.2013