Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android

Sederhanakan Pengembangan Aplikasi Android Dengan Anko

by
Difficulty:BeginnerLength:MediumLanguages:

Indonesian (Bahasa Indonesia) translation by Hasannudin Amin (you can also view the original English article)

Dirancang oleh JetBrains, organisasi di belakang Kotlin, Anko adalah pustaka sumber terbuka yang secara radikal dapat mengubah cara Anda membuat aplikasi Android. Ini memanfaatkan sintaks Kotlin untuk menawarkan sejumlah besar fungsi pembantu yang membantu Anda mengurangi verbositas kode Anda sementara juga meningkatkan kinerjanya.

Anko berfungsi ganda sebagai DSL, kependekan dari domain-spesific language, untuk membuat tata letak Android. Dengan kata lain, ini dapat bertindak sebagai alternatif yang aman, dinamis, dan lebih dapat digunakan kembali untuk tata letak file XML, yang, seperti yang mungkin sudah Anda ketahui, cenderung susah bagi aplikasi besar.

Dalam tutorial ini, saya akan membantu Anda memulai dengan Anko dengan menunjukkan kepada Anda cara menggunakan beberapa fitur yang paling populer.

1. Pengaturan Proyek

Untuk dapat menggunakan fitur-fitur inti Anko dalam proyek Android Studio Anda, yang perlu Anda lakukan hanyalah menambahkan dependensi implementation berikut dalam file build.gradle modul app:

Jika Anda ingin Anko bekerja dengan widget dari pustaka dukungan Android, Anda perlu tambahan dependensi berikut:

2. Membuat Layout

Anko DSL memiliki fungsi pembantu untuk hampir setiap widget yang ditawarkan oleh Android SDK dan perpustakaan dukungan Android. Menggunakannya, Anda dapat membuat tata letak program Anda. Nama-nama fungsi cocok dengan nama-nama widget, tetapi mereka mulai dengan huruf kecil. Misalnya, untuk membuat widget TextView, Anda menggunakan fungsi textView() Anko. Demikian pula, untuk membuat widget FloatingActionButton, Anda dapat menggunakan fungsi floatingActionButton().

Di dalam fungsi, Anda akan memiliki akses ke semua properti dan pendengar acara dari widget terkait. Misalnya, Anda dapat mengubah ukuran teks widget TextView dengan memperbarui nilai properti textSize di dalam fungsi textView(). Demikian pula, Anda dapat menambahkan listener kejadian saat itu menggunakan metode onClick.

Untuk membantu Anda lebih memahami cara menggunakan DSL, berikut ini contoh tata letak untuk aplikasi browser, yang berisi widget EditText dan widget WebView yang ditempatkan di dalam widget LinearLayout yang orientasinya adalah VERTICAL:

Kode yang ditulis dalam DSL Anko sangat mudah dibaca dan intuitif, tetapi itu memang perlu waktu untuk digunakan, terutama jika Anda sudah menjadi pengembang Android yang berpengalaman. Anda tidak lagi harus menetapkan pengenal ke widget Anda—atau menggunakan metode findViewById() untuk mereferensikannya—karena tidak seperti layout berbasis XML, tata letak berbasis DSL Anko dapat merangkum logika bisnis aplikasi Anda. Sebagai contoh, Anda dapat melihat bahwa widget EditText yang didefinisikan di atas memiliki event listener OnEditorAction yang secara langsung memanggil metode loadUrl() dari widget WebView untuk memuat URL yang diketik pengguna.

Selanjutnya, Anda tidak perlu memanggil metode setContentView() lagi karena Anko memanggilnya secara otomatis di dalam metode onCreate() kelas Activity Anda.

DSL mencakup beberapa pintasan yang dapat Anda gunakan untuk membuat tata letak Anda lebih ringkas. Misalnya, Anda dapat secara langsung meneruskan string ke fungsinya untuk menetapkan label ke widget. Seringkali, Anda juga dapat menghindari pengaturan parameter tata letak secara eksplisit seperti lebar dan tinggi karena menangani mereka secara otomatis. Kode contoh berikut menunjukkan kepada Anda cara membuat tata letak yang berisi dua widget TextView dengan cara yang sangat ringkas:

Sebagai perbandingan, inilah tampilan tata letak di atas jika dibuat secara konvensional:

Terakhir, perlu disebutkan bahwa tata letak yang dibuat menggunakan Anko DSL cenderung memuat lebih cepat daripada tata letak biasa karena tidak ada parsing XML yang diperlukan.

3. Membuat Dialog

Jika Anda berpikir menggunakan kelas AlertDialog.Builder untuk membuat dialog banyak pekerjaan, Anda pasti tidak sendirian. Misalnya, begini cara Anda biasanya membuat dialog sederhana yang menampilkan judul, pesan, dan tombol "OK":

Dengan Anko, bagaimanapun, membuat dialog di atas hanya melibatkan panggilan ke fungsi alert(), yang menerima judul dialog dan pesan sebagai argumennya.

Perhatikan bahwa Anda tidak harus meneruskan konteks ke fungsi alert(). Ini masuk ke dalam konteks secara otomatis.

Anko memiliki fungsi bernama intuitif yang sama untuk membantu Anda membuat toasts dan snackbars dengan cepat. Kode berikut menunjukkan cara membuat toasts durasi pendek dan panjang:

4. Menciptakan Intents

Setiap kali Anda perlu memulai aktivitas baru di aplikasi Anda, Anda harus membuat maksud. Selain itu, jika Anda ingin mengirim data ke aktivitas, Anda harus memasukkannya dalam maksud sebagai satu atau beberapa ekstra.

Dengan fungsi startActivity() Anko, Anda biasanya dapat melakukan kedua tugas hanya dalam satu baris kode. Misalnya, kode berikut menunjukkan kepada Anda cara meluncurkan aktivitas bernama MyActivity dan meneruskan dua ekstra, string tambahan bernama "PERSON" dan tambahan integer bernama "AGE", untuk itu:

Anko juga memiliki fungsi pembantu untuk beberapa tugas berdasarkan niat umum. Misalnya, Anda dapat menggunakan fungsi browse() untuk membuka URL di aplikasi browser default perangkat. Demikian pula, Anda dapat menggunakan fungsi email() untuk membuka aplikasi email default dan menulis email.

5. Menggunakan Database SQLite

Meskipun setiap aplikasi Android dapat membuat dan menggunakan database SQLite tanpa dependensi tambahan, banyak pengembang memilih database pihak ketiga seperti Realm. Mengapa? Yah, mungkin itu karena Android SQLite API sangat verbose, tingkat rendah, dan membutuhkan pemahaman yang baik tentang SQL. Untungnya, Anko memiliki fungsi pembantu SQLite untuk mengatasi semua masalah tersebut.

Katakanlah kita memiliki database SQLite sederhana yang dibuat menggunakan kode berikut:

Dengan Anko, Anda sekarang dapat menambahkan tabel ke database di atas hanya dengan menggunakan fungsi createTable(), yang mengharapkan nama tabel bersama dengan satu lagi atau tupel yang menentukan nama dan tipe data kolomnya. Kode contoh berikut membuat tabel bernama PERSON yang memiliki empat kolom, salah satunya berfungsi sebagai kunci utama:

Terlebih lagi, untuk memasukkan baris ke dalam tabel, Anda tidak lagi harus bergantung pada kelas ContentValues(). Anda dapat langsung memanggil fungsi insert() pada database, tentukan nama tabel yang ingin Anda tambahkan barisnya, dan kemudian berikan nilai kolom ke dalam bentuk tupel.

Terakhir, untuk query database, Anda dapat menggunakan fungsi select(), secara opsional diikuti oleh rantai fungsi bernama intuitif seperti whereSimple(), orderBy(), dan groupBy(). Misalnya, untuk mencantumkan nama dan usia semua orang di tabel di atas yang nilainya lebih dari 10000, Anda dapat menggunakan kode berikut:

Hasil kueri di atas akan, seperti yang Anda harapkan, objek Cursor. Mengubahnya menjadi List yang berisi nilai kolom sebenarnya dari semua baris sedikit lebih rumit karena melibatkan pembuatan objek yang mengimplementasikan antarmuka RowParser dan meneruskannya ke fungsi parseList().

Antarmuka RowParser hanya memiliki satu metode, yaitu metode parseRow(), di dalamnya Anda akan memiliki akses ke nilai kolom baris. Bagaimana Anda menggunakan nilai-nilai itu tentu terserah Anda. Untuk saat ini, mari kita gabungkan dan cetak saja. Kode berikut menunjukkan cara melakukannya:

Perhatikan bahwa Anda tidak selalu harus membuat objek RowParser secara manual. Jika hasil kueri Anda hanya berisi satu kolom, Anda bebas menggunakan salah satu dari banyak parser built-in Anko.

Nama-nama parser built-in didasarkan pada tipe data kolom. Misalnya, jika tipe data TEXT, Anda dapat menggunakan StringParser. Atau jika tipe data INTEGER, Anda dapat menggunakan IntParser. Kode berikut menunjukkan kepada Anda cara menggunakan StringParser untuk hanya mencantumkan nama semua orang di basis data kita:

Kesimpulan

Dalam tutorial ini, Anda belajar cara menggunakan fungsi DSL dan helper Anko untuk menyederhanakan pengembangan aplikasi Android. Anda juga melihat bagaimana Anko menyederhanakan operasi terkait SQLite. Saya harap Anda sekarang menyadari betapa baik dan efektif perpustakaan itu.

Menurut saya, jika Anda sudah kompeten di Kotlin, tidak ada alasan mengapa Anda tidak perlu menggunakan Anko untuk lebih meningkatkan efisiensi dan pengalaman pengembangan Anda. Untuk mempelajari lebih lanjut tentang itu, silakan merujuk ke wiki resminya.

Dan ketika Anda berada di sini, periksa beberapa posting kami yang lain tentang pengembangan aplikasi Kotlin dan Android!


Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.