Tutorial Android Kotlin (Anko)

Teknologi.id . May 03, 2018
Android Kotlin adalah sebuah library yang berisi shortcut yang berguna untuk mempercepat proses development dan menghasilkan kode readable, serta dapat meningkatkan performance aplikasi. Artikel ini merupakan repost dari artikel tulisan Wisnu Kurniawan yang dipublikasikan EasyRead. Baca artikel sumber. Bagi kamu yang pernah menggunakan aplikasi Telegram pasti merasakan kelebihan dibandingkan beberapa aplikasi lainnya, yaitu performance sangat cepat. Kenapa bisa cepat? Salah satu faktor yang membuat Telegram bisa cepat adalah dalam mengkonstruksi layout tidak menggunakan XML namun dibangun secara programmatically. Kamu bisa lihat sendiri source code nya disini: DrKLO/TelegramTelegram for Android sourcegithub.com. Diatas itu adalah source code Telegram Android, sangat menarik untuk dipelajari. Akan tetapi akan sangat sangat tidak cocok apabila kita menerapkan gaya kodingan tersebut ke dalam project tim. Karena banyak sekali magic number, banyak sekali hardcode, if-else yang panjang dll. Kenapa sih Telegram melakukan itu? Kamu bisa kunjungi thread ini untuk mengetahuinya. Disitu ada sebuah statement menarik yang dikatakan oleh developernya:

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.

Ketika menggunakan coroutine, kita akan mendapatkan peringatan yang memberitahukan coroutine masih dalam tahap experimental. Bukan berarti belum stabil, maksudnya penggunaan nya dapat berubah sewaktu-waktu. Untuk meng ignore hal tersebut tambahkan ini diluar dependencies. Kemudian kita buat sebuah layout via XML. Sekarang kita coba buat XML diatas via Anko. Didalam 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

Kamu juga bisa mengkonvert XML kamu ke dalam kode program caranya, buka XML kamu kemudian 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.    
author0
teknologi id bookmark icon

Tinggalkan Komentar

0 Komentar