Soalin atau soal online adalah aplikasi yang membantu guru dan murid dalam proses pembelajaran. Feature soalin untuk guru seperti pembuatan module dan sub-sub module, kemudian pembuatan soal latihan dan soal ujian dan guru juga dapat melihat history siapa aja yang sudah menyelesaikan soal ujian.
Untuk murid sendiri feature yang bisa digunakan adalah Dapat melakukan latihan latihan yang telah disediakan guru, mengikuti ujian yang telah di publish oleh guru, dan feature pencarian module menggunakan email dari penyedia soal atau yang bisa kita panggil sebagai Guru.
Untuk membangun aplikasi ini developer sendiri menggunakan flutter. Flutter adalah sebuah framework open-source yang dikembangkan oleh Google untuk membangun antarmuka (user interface/UI) aplikasi Android dan iOS. dan berikut dependecies yang di implementasi oleh developer.
Dalam programming, terkadang developer menerapkan suatu teknik desain yang hanya bisa memenuhi suatu permasalahan. Namun, ketika teknik desain tersebut diterapkan pada permasalahan yang lebih luas, maka teknik tersebut menjadi sulit untuk diaplikasikan.
Oleh karena itu, dibutuhkan sebuah solusi umum yang dapat diaplikasikan sebagai teknik desain pada berbagai permasalahan. Solusi umum tersebut biasa disebut sebagai design pattern. Design pettern yang digunakan oleh developer dalam pembangunan aplikasi ini adalah bloc. BLoC atau Business Logic Component design pattern adalah design pattern yang membantu untuk memisahkan presentation dengan business logic.
Biasanya saya sebelum mengimplementasi bloc, dan pengalaman saya sebelumnya sebagai android developer. Jika design sudah selesai dan sudah di implementasikan saya memulainya dengan membuat service service apa saya yang dibutuhkan dalam pembuatan feature atau aplikasi yang dibangun.
Setelah service-service yang dibutuhkan selesai saya membuat sebuah repository. Kenapa penting repository karna ini adalah titik acuan apa saja yang dibutuhkan oleh page. Karna dalam satu page atau satu screen terkadang membutuhkan service lain yang sudah ada di page lain namun agar service-servicenya tidak di rewrite ulang maka cukup kita panggil dari repository. Page yang kita implement tidak perlu peduli service ini dari mana aja karna dari repository kita dapat melihat semua.
Kemudian kita membuat yang namanya Event, Event itu apa ? Event itu adalah input yang diberikan oleh Presentation Component kedalam Business Logic Component. Contohnya seperti load halaman, button onClick dan sebagainya.
Apakah dalam implementasi Diawali dengan membuat State atau Event? dan State itu apasih ? State itu merupakan kondisi-kondisi yang akan dialami oleh aplikasi yang kita buat ketika melakukan suatu pekerjaan. Kembali lagi ke pertanyaan awal, Menurut saya pribadi itu tergantung developernya namun saya biasanya memulai dari Event.
Service yang dibutuhkan sudah di imlementasi, dan Repository untuk page sudah disediakan. Kemudian Event dan State juga sudah di implementasi saatnya bloc Menggetarkan jiwa. Berikut bagaimana saya mengimplementasikannya.
Dan berikut cara Penggunaannya di Page.
Karna developer membangun aplikasi dengan membuat component component. Maka saat mengcosumenya developer mengimplementasikannya seperti dibawah ini.
Nah timbul pertanyaan kenapa listener dikosongkan. Alasanya sederhana belum ada kebutuhan disana untuk di implementasikan. Saya biasanya mengimplementasikannya jika ada kebutuhan menampilkan loading di atas page atas pop up, dan sebagainya. Akhir kata saya ucapkan selamat mengcoding.