Benchmark Skill, Hari Kedua

Ok, di hari yang kedua ini, saya merasa lebih produktif dibandingkan hari pertama. Setidaknya karena di siang hari nya saya sudah punya gambaran apa dulu yang akan saya buat, dan kemudian malam harinnya, karena terpancing istri saya yang juga mengerjakan sesuatu dengan laptopnya, saya akhirnya mengambil Macbook saya dan kemudian coding.

Saya buka Android Studio. Saya membuat proyek baru, saya beri nama First Aid Kit. Kemudian, saya memilih jenis flow Master/Detail Flow. Dengan demikian, nanti aplikasinya akan menampilkan list, yang jika di klik akan menampilkan detil dari item yang di klik. Saya lanjutkan, setiap item dari list adalah Symptom (gejala).

Setelah kerangka aplikasi dibuatkan oleh Android Studio, dan pada saat itu Android Studio sudah membuat aplikasi yang bisa jalan dengan konten dummy. Saya langsung membuat class model, yaitu Symptom. Class Symptom itu menggantikan DummyItem yang sudah dibuatkan oleh Android Studio. Saya kemudian buang class DummyItem sehingga saya bisa tahu di mana saja class itu digunakan (karena ketika class itu saya hapus, maka semua class lain yang menggunakannya akan error). Saya ubah satu persatu class penggunanya, menjadi menggunakan object class Symptom. Kemudian saya pastikan setelah saya ubah, aplikasi masih bisa di run.

Setelah itu saya tidur.

Pagi harinya, setelah shalat subuh, saya lanjutkan codingan semalam. Kali ini saya refactor modelnya. Saya sesuaikan atribut-atribut nya berdasarkan informasi apa saja yang ada di buku. Setelah saya rasa cukup, saya lanjutkan dengan membuat satu konten, berdasarkan satu halaman pada buku. Konten ini saya buat dalam bentuk file teks dengan format json. File ini saya buat dengan cara menulis program PHP sederhana. Program ini gunanya hanya menampilkan isi suatu variabel dalam format json. Inti konten-nya ada di dalam variabel tersebut. Sebisa mungkin saya sesuaikan dengan model yang sudah saya buat di Android. Setelah script PHP nya selesai, saya buka browser kemudian arahkan ke script tersebut. Dan berhasil. Saya copy text yang tampil di browser, kemudian saya buat file baru dengan Android Studio. Saya letakkan di dalam direktori assets. Saya beri nama symptom/57.json. Artinya, isi file tersebut adalah detil gejala (atau di buku tersebut disebut dengan Chart) dengan nomor 57.

Berikutnya, saya harus dapat mengkonversi isi file tersebut menjadi objek, instance dari model Symptom. Untuk mengkonversi file tersebut dengan cepat menjadi objek, saya membutuhkan Gson. Maka saya tambahkan library Gson ke dalam proyek saya.

Berikutnya, saya buat class Utility, menambahkan satu fungsi static untuk membaca isi sebuah file di dalam direktori assets. Kemudian, di dalam class model Symptom, saya buat fungsi static bernama fromAsset, dengan parameter berupa alamat file asset nya. Fungsi ini mengembalikan objek Symptom, atau null jika gagal. Saya tahu ini bukan implementasi terbaik, karena saya seharusnya membuat design pattern Repository untuk semua objek yang saya ambil dan gunakan di Activity. Ya, saya berrencana untuk me-refactornya nanti malam.

Berikutnya, saya test, untuk mengetahui apakah file konten dan class model yang saya buat sudah saling sesuai atau belum. Dan hasilnya, alhamdulillah sesuai. Pekerjaan hari ini sampai di sini, karena saya harus mandi, sarapan kemudian mengantar anak ke sekolah dan saya sendiri berangkat ngantor.

Selanjutnya, yang akan saya kerjakan nanti malam adalah membuat Repository supaya aplikasi memiliki fleksibilitas dengan sumber data nya (yang saat ini hanya bisa mengambil dari assets, ke depan bisa jadi saya perlu database lokal atau REST, siapa tahu?). Selain itu, juga saya membutuhkan file konten jenis lain, yaitu untuk menampilkan hanya list judul symptom saja, tanpa detilnya.

Show your support

Clapping shows how much you appreciated Amri Shodiq’s story.