Kelas pengaturan di MVVMCross memainkan peran penting sebagai bootstrapper untuk kerangka kerja, yang bertanggung jawab untuk menginisialisasi dan mengkonfigurasi infrastruktur aplikasi. Ini adalah komponen wajib dalam setiap proyek khusus platform, seperti iOS, Android, atau UWP, dan melayani beberapa fungsi utama:
1. Inisialisasi Kerangka: Kelas pengaturan menginisialisasi kerangka kerja MVVMCross dengan mengatur komponen penting seperti wadah inversi kontrol (IOC), mesin pengikat data, pencarian viewmodel/view, sistem navigasi, dan plugin. Proses ini terjadi dalam dua langkah utama: `initializeprimary` dan` initializeCondary`. Yang pertama menginisialisasi komponen inti pada utas utama, sedangkan yang terakhir membangun layanan platform di latar belakang [1] [9].
2. Pembuatan Kelas Aplikasi: Kelas Pengaturan bertanggung jawab untuk membuat instance kelas `App`, yang didefinisikan dalam proyek inti. Kelas `App` menginisialisasi logika bisnis dan viewmodels [4] [10].
3. Registrasi Layanan: Ini menyediakan tempat untuk mendaftarkan layanan dan plugin khusus platform menggunakan wadah IOC. Ini memungkinkan pengembang untuk menyuntikkan dependensi ke dalam aplikasi mereka, membuatnya lebih mudah untuk mengelola logika kompleks di berbagai platform [4] [10].
4. Kustomisasi: Kelas pengaturan menawarkan peluang untuk kustomisasi melalui metode seperti `initialifirstchance` dan` initiizelastchance`. Metode-metode ini memungkinkan pengembang untuk mendaftarkan objek atau layanan bisnis khusus platform, seperti layanan enkripsi, sebelum aplikasi sepenuhnya menginisialisasi [10].
5. Debugging dan Logging: Ini juga terlibat dalam pengaturan mekanisme debugging dan pencatatan, seperti membuat contoh `debugtrace`, yang membantu dalam mendiagnosis masalah selama pengembangan [7].
Singkatnya, kelas pengaturan sangat penting untuk aplikasi bootstrap MVVMCross, memastikan bahwa semua komponen yang diperlukan diinisialisasi dan dikonfigurasi dengan benar sebelum aplikasi dimulai. Ini bertindak sebagai jembatan antara proyek UI spesifik platform dan logika inti yang ditentukan dalam portable class library (PCL) atau .NET Standard Library.
Kutipan:[1] https://www.mvmcross.com/documentation/tutorials/tipcalc/a-xamarinios-ui-project
[2] https://stackoverflow.com/questions/34329985/
[3] https://coderpad.io/blog/development/a-guide-to-database-unit-testing-with-pytest-and-sqlalchemy/
[4] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[5] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[6] https://stackoverflow.com/questions/17602137/mvvmcross-how-does-this-view-get-linked-to-the-viewModel/17602246
[7] https://www.codeproject.com/articles/863695/introduction-to-mvvmcross-platform
[8] https://nicksnettravels.builttoroam.com/post-2017-12-28-making-mvvmcross-with-xamarin-forms-friction-free-aspx/
[9] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[10] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[11] https://stackoverflow.com/questions/48132099/how-is-setup-class-instantiated-in-mvvmcross-in-xamarin