blog / flutter · April 8, 2020

Tentang Aplikasi Soalin (Soal Online)

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.

Flutter - Tentang Aplikasi Soalin (Soal Online) list-route
Flutter – Tentang Aplikasi Soalin (Soal Online) list-route

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.

Flutter - Tentang Aplikasi Soalin (Soal Online) bloc
Flutter – Tentang Aplikasi Soalin (Soal Online) bloc

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.

Flutter - Tentang Aplikasi Soalin (Soal Online) home-service
Flutter – Tentang Aplikasi Soalin (Soal Online) home-service

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.

Flutter - Tentang Aplikasi Soalin (Soal Online) home-repository
Flutter – Tentang Aplikasi Soalin (Soal Online) home-repository

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.

Flutter - Tentang Aplikasi Soalin (Soal Online) home-page-event
Flutter – Tentang Aplikasi Soalin (Soal Online) home-page-event

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.

Flutter - Tentang Aplikasi Soalin (Soal Online) home-page-state
Flutter – Tentang Aplikasi Soalin (Soal Online) home-page-state

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.

Flutter - Tentang Aplikasi Soalin (Soal Online) bloc
Flutter – Tentang Aplikasi Soalin (Soal Online) bloc

Dan berikut cara Penggunaannya di Page.

Flutter - Tentang Aplikasi Soalin (Soal Online) block-provider
Flutter – Tentang Aplikasi Soalin (Soal Online) block-provider

Karna developer membangun aplikasi dengan membuat component component. Maka saat mengcosumenya developer mengimplementasikannya seperti dibawah ini.

Flutter - Tentang Aplikasi Soalin (Soal Online) 6
Flutter – Tentang Aplikasi Soalin (Soal Online) 6

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.

Flutter - Tentang Aplikasi Soalin (Soal Online) 5
Flutter – Tentang Aplikasi Soalin (Soal Online) 5