Pembaca yang budiman, kami dengan bangga mempersembahkan buku "Pengembangan Aplikasi Seluler di C # untuk iOS dan Android" dari Vyacheslav Chernikov, seorang penulis dan pakar Xamarin, yang terkenal bagi Anda, dari Binwell. Tanpa pengantar panjang, saya memberikan kesempatan kepada penulis.
Selamat siang, habrachitatel sayang. Selama beberapa tahun terakhir, saya telah menulis beberapa artikel dan tutorial tentang pengembangan aplikasi seluler menggunakan C # dan kerangka Xamarin, tetapi pada awalnya semua panduan dan bagian dari artikel ini disusun sebagai bab-bab dari buku pertama saya, yang akhirnya menjadi sorotan. Disatukan menjadi satu kesatuan (dan ada banyak hal yang belum pernah diterbitkan sebelumnya!), Materi buku ini akan membawa proses pengembangan aplikasi seluler ke tingkat yang sama sekali baru - mulai dari memilih alat dan menyiapkan dokumentasi, hingga otomatisasi proses pengembangan dan menyelesaikan masalah-masalah umum. Buku ini disusun sebagai tambahan yang harmonis dengan bahan-bahan pada Xamarin yang sudah dalam bahasa Rusia dan Inggris, mengungkapkan masalah-masalah seperti desain, arsitektur, membuat kerangka (bingkai) proyek, semua yang biasanya tetap di belakang layar sebagian besar buku dan kursus pelatihan .
Buku ini mencakup secara rinci dan dengan sejumlah besar contoh kode topik berikut: perbandingan alat asli dan lintas platform menggunakan Xamarin, ReactNative, PhoneGap, Qt, dan Flutter sebagai contoh; desain dan dokumentasi teknis untuk kode; arsitektur dan struktur proyek, kami menempatkan semuanya pada tempatnya; Mobile DevOps dan otomatisasi perakitan, pengujian, pengiriman, dan pemantauan; saran praktis untuk setiap hari.

Buku ini dapat dibeli di situs web penerbit "
DMK Press " (opsi termurah!) Dan toko online
Labyrinth ,
My-Shop.ru ,
Flip.kz ,
Oz.by , serta toko online lainnya, jumlah mereka bertambah dengan distribusi buku. .
Untuk benih (dan dengan persetujuan penerbit) saya akan memberikan sepotong Bab 3.
3. Arsitektur aplikasi
Jadi, kita sudah berkenalan dengan bagaimana Xamarin bekerja. Bentuk dan cara melakukan desain teknis sendiri. Sekarang kita memiliki pemahaman tentang model domain, dan sekarang saatnya untuk beralih ke arsitektur dan struktur solusi - bagaimana kita akan mendistribusikan kelas-kelas kita ke dalam folder sehingga akan mudah untuk menemukan kode yang diperlukan nanti.
3.1. MVVM Multilayer
Dalam aplikasi mobile, arsitektur multilayer secara tradisional digunakan dengan pemisahan lapisan akses data, lapisan logika bisnis dan lapisan tampilan antarmuka pengguna.

Fig. 3.1. Arsitektur tiga tingkat klasik
Karena pola arsitektur MVVM adalah asli Xamarin. Bentuknya, disarankan untuk menggunakannya dalam aplikasi seluler. MVVM menjelaskan hubungan View (biasanya layar aplikasi adalah Page), ViewModel, dan Model.

Fig. 3.2. Pola MVVM
Dengan demikian, arsitektur khas aplikasi berbasis Xamarin. Bentuknya adalah sebagai berikut:

Fig. 3.4. Arsitektur aplikasi dasar di Xamarin.Forms
Dalam buku ini, kami akan fokus pada arsitektur yang disajikan, karena ini adalah klasik untuk Xamarin. Setiap modul akan dijelaskan secara lebih rinci di bagian berikut.
3.2. Dekomposisi Berlapis
Jika kita mengingat dasar-dasarnya, maka suatu program adalah seperangkat algoritma dan data. Aplikasi seluler tidak terkecuali. Arsitektur memungkinkan Anda untuk memisahkan algoritma dan data untuk berbagai keperluan satu sama lain.
Dalam aplikasi seluler, jenis algoritme berikut dapat dibedakan secara kondisional:
- mengontrol perilaku dan penampilan komponen antarmuka pengguna (antarmuka pengguna, UI);
- logika interaksi pengguna dan skenario bisnis (business logic, BL);
- logika akuisisi data, penyimpanan dan transformasi (lapisan akses data, DAL);
- fungsionalitas platform tidak terkait dengan antarmuka pengguna (platform).
- Ada juga banyak algoritma tambahan seperti inisialisasi aplikasi atau kelas tambahan tambahan dan ekstensi (Ekstensi), tetapi mereka tidak begitu mudah untuk diklasifikasi, karena spesifik untuk proyek, tim, dan perpustakaan yang dipilih.
- Struktur proyek kosong di Xamarin. Bentuk ditunjukkan di bawah ini. Lebih lanjut, penting untuk memahami folder mana yang digunakan untuk menyimpan file, sehingga kodenya tetap sederhana.

Fig. 3.5. Struktur proyek kosong di Xamarin. Bentuk
Jika kita melanjutkan ke cara mempertahankan kode “dalam kondisi baik” (utang teknis minimum), maka penting bagi tim untuk mengikuti perjanjian yang seragam. Di bawah ini kita akan mempertimbangkan contoh pemisahan kelas ke dalam folder, yang akan sesuai dengan arsitektur yang dijelaskan.
Tapi pertama-tama, mari kita mengingat data. Penting untuk memahami yang mana dari mereka yang akan dibahas. Ada data yang berasal dari server (objek transfer data, dto), tetapi ada data yang diproses dalam aplikasi (model, entitas, objek data). Perhatikan bahwa lebih mudah untuk segera menerima data yang sudah jadi dari lapisan DAL sehingga lebih mudah untuk bekerja dengan mereka lebih lanjut. Kami akan berbicara lebih banyak tentang ini di bagian 3.5.
Juga, dalam aplikasi seluler tidak ada jumlah data yang diperlukan untuk membuat model yang tebal dan "mengotori" logika bisnis pada mereka (suatu pendekatan dari sistem perusahaan besar). Cukup POCO konvensional (Obyek CLR Tua Biasa) tanpa logika apa pun. Jadi, semua data jadi berasal dari lapisan DAL, kelas-kelas DTO yang tidak disadari oleh lapisan lain yang tersembunyi di dalamnya. Di bawah ini adalah perbedaan antara model tebal dan objek POCO.

Fig. 3.6. Perbedaan antara Model "tebal" dan objek POCO
Selanjutnya kami akan mematuhi notasi berikut:
- Data Objects - flat (POCO) model data yang akan terus digunakan oleh logika bisnis.
- Layanan Data - layanan akuisisi, transformasi, dan penyimpanan data.
- Layanan Bisnis - layanan pemrosesan data dan skenario bisnis.
- Layanan Platform - layanan untuk akses langsung ke fungsionalitas platform.
Saya akan berterima kasih atas tanggapan dan komentar Anda, tetap terhubung!