Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Bagaimana kode spesifik platform mvvmcross menangani


Bagaimana kode spesifik platform mvvmcross menangani


MVVMCross dirancang untuk menangani kode khusus platform secara efisien dengan memisahkan logika aplikasi menjadi dua bagian utama: proyek inti dan proyek khusus platform. Proyek inti, biasanya perpustakaan .NET standar, berisi logika bisnis, tampilan model, model, dan antarmuka untuk layanan khusus platform. Ini memungkinkan untuk berbagi kode maksimum di berbagai platform seperti Android, iOS, dan Windows.

Proyek spesifik platform ###

Setiap proyek khusus platform (mis., Xamarin.android, xamarin.ios) berisi antarmuka pengguna dan implementasi layanan khusus platform. Proyek-proyek ini bertanggung jawab untuk menginisialisasi kerangka kerja MVVMCross dan mendaftarkan layanan khusus platform menggunakan kelas pengaturan. Kelas pengaturan bertindak sebagai bootstrapper untuk MVVMCross, yang memungkinkan pengembang untuk menyesuaikan perilaku kerangka kerja untuk setiap platform.

inversi kontrol (IOC) dan injeksi ketergantungan

MVVMCross menggunakan wadah inversi kontrol (IOC) untuk mengelola dependensi di seluruh aplikasi. Ini memungkinkan layanan khusus platform untuk didaftarkan dan disuntikkan ke dalam logika proyek inti. Misalnya, jika suatu aplikasi perlu mengakses layanan lokasi GPS, layanan GPS dapat didaftarkan di kelas pengaturan khusus platform dan kemudian disuntikkan ke dalam model tampilan atau bagian lain dari proyek inti.

Menyesuaikan perilaku platform

Pengembang dapat menyesuaikan perilaku spesifik platform dengan mengesampingkan metode di kelas pengaturan. Misalnya, di Android, Anda dapat mengganti metode di `mvxandroidsetup` untuk mendaftarkan layanan khusus Android atau menangani acara siklus hidup khusus Android. Demikian pula, di iOS, Anda akan menggunakan `mvxiossetup` untuk menangani inisialisasi spesifik iOS dan pendaftaran layanan.

Lihat presenter

MVVMCross juga menyediakan presenter tampilan, yang bertanggung jawab untuk memutuskan bagaimana tampilan disajikan pada setiap platform. Hal ini memungkinkan penyesuaian logika presentasi UI, seperti menunjukkan tampilan modal atau sebagai bagian dari tumpukan navigasi, tergantung pada konvensi platform.

plugin dan ekstensi

MVVMCross menawarkan kerangka kerja plugin yang memungkinkan pengembang untuk dengan mudah mengintegrasikan plugin pihak ketiga untuk fungsionalitas umum seperti lokalisasi, sensor, dan banyak lagi. Plugin ini dapat digunakan di beberapa platform, lebih lanjut mengurangi kebutuhan kode khusus platform.

Singkatnya, MVVMCross menangani kode khusus platform dengan memberikan pendekatan terstruktur untuk memisahkan logika bersama dari implementasi spesifik platform. Ini menggunakan IOC dan injeksi ketergantungan untuk mengelola layanan platform, memungkinkan kustomisasi melalui kelas pengaturan, dan mendukung plugin untuk memperluas fungsionalitas di seluruh platform.

Kutipan:
[1] https://github.com/mvvmcross/mvvmcross
[2] https://dev.to/christian1006/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework-2920
[3] https://canbilgin.wordpress.com/tag/mvvmcross/
[4] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[5] https://stackoverflow.com/questions/14337063/platform-specific-ioc-in-mvvmcross
[6] https://stackoverflow.com/questions/61641185/platform-specific-service-causes-an-exception-mvvmcross-xamarin-ios
[7] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[8] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-packages
[9] https://www.codeproject.com/articles/863695/introduction-to-mvvmcross-platform
[10] https://www.mvvmcross.com/documentation/getting-started/getting-started
[11] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup