Oke, sekarang kita masuk ke pembahasan kita mengenai Anko. Anko singkatan dari Android Kotlin adalah sebuah library yang berisi shortcut yang berguna untuk mempercepat proses development dan menghasilkan kode readable. Tidak hanya itu, Anko juga dapat meningkatkan performance aplikasi. Library Anko terdiri dari beberapa parts yaitu:
- Anko Commons, isi nya helper untuk melakukan intents, dialog, toast, logging, dll
- Anko Layouts, isi nya helper untuk mengkonstruksi layout secara programmatically
- Anko SQLite, isi nya helper dalam menggunakan SQLite
- Anko Coroutines, isi nya helper untuk menerapkan asynchronous
Tutorial Anko
Pertama buat sebuah project baru Android, jangan lupa centang include kotlin. Kemudian tambahkan dependency Anko kita ke dalam project.
linearlayout
ada editText
dan button
dengan atribut yang telah kita tetapkan, kemudian kita memanggil lparams
yang bisa gunakan untuk menerapkan seperti berapa besar ukuran margin
. Mudah bukan, sekarang kita coba buat skenario ketika button di klik akan muncul Toast berdasarkan text dari edit text. Nah dalam kode tersebut kita ada menggunakan salah satu fitur dari Coroutines yaitu UI
yang maksudnya kode yang ada didalam UI
akan dieksekusi di mainthread.
Apabila kamu memiliki Custom View, MyCustomTextView
misalnya, kamu tidak bisa menggunakan shortcut textView { }
atau nama lainnya DSL. Kamu harus membuat shortcut/DSL kamu sendiri. Caranya mudah, seprti dibawah ini:
Salah satu kendala dalam membangun layout secara programmatically adalah sulit ketika ada nya perubahan UI yang besar. Karena kita tidak bisa melihat hasilnya secara realtime tidak seperti halnya kita membangun layout via XML.
Tapi tenang, Anko sudah menyiapkan plugin, nama pluginnya Anko Support. Dengan plugin ini kamu dapat melihat hasil layout kamu yang dibangun menggunakan Anko. Caranya tekan Cmd+Shift+A
terus cari Anko Layout Preview
Cmd+Shift+A
terus cari Convert to Anko Layouts DSL
. Kemudian hasilnya tinggal kamu copy saja ke kelas yang kamu inginkan. Namun masih ada beberapa bugs, seperti tidak bisa mengkonvert layout yang isi nya ada memanggil resources dari luar XML seperti @dimens/default_dimen
. Solusinya kita ubah dulu dimens tsb ke hardcode baru bisa kita konvert.
Kesimpulan
Anko library merupakan library yang sangat membantu developer android. Namun saya masih belum berani menggunakan ke production karena masih banyaknya issue yang ada.
Sumber: https://github.com/Kotlin/anko/wiki/Anko-Layouts.
Baca juga: Konsep AsyncTask dan AsyncTaskLoader pada Android.