16 kiat pengembangan untuk Android di Kotlin. Bagian 1



Sebelum membaca tip-tip ini, Anda harus membaca dokumentasi Kotlin dan mempelajari bahasanya sendiri di try.kotlinlang.org . Karena tips ini ditujukan khusus untuk menggunakan Kotlin dalam konteks pengembangan Android, Anda juga harus memiliki pengalaman dengan Android SDK. Dianjurkan untuk membiasakan diri dengan plugin Kotlin dan penggunaan Kotlin dengan Android Studio dari JetBrains (pembuat Kotlin)

Tip Android Dasar Kotlin


Pemuatan Malas


Pemuatan malas memiliki beberapa keunggulan. Misalnya, seperti:

  • Anda menghemat waktu startup karena memuat beberapa data tertunda hingga dibutuhkan. Ini terutama berlaku untuk Android, karena pengguna akan melihat konten aplikasi lebih cepat daripada menunggu lama untuk meluncurkan dan menonton ketukan unduhan.
  • Anda menghemat memori, karena sumber daya dimuat ke dalam memori perangkat hanya atas permintaan. Ini sangat penting untuk platform seluler, karena sumber daya ponsel sangat terbatas.

Misalnya, jika Anda membuat aplikasi belanja yang sebagian besar pengguna akan dipandu oleh pilihan Anda, maka pemuatan malas dapat dikonfigurasikan pada API belanja aktual, misalnya, sesuatu seperti ini:

 val purchasingApi: PurchasingApi by lazy { val retrofit: Retrofit = Retrofit.Builder() .baseUrl(API_URL) .addConverterFactory(MoshiConverterFactory.create()) .build() retrofit.create(PurchasingApi::class.java) } 

Hasil dari penggunaan unduhan malas seperti itu adalah jika pengguna tidak mencoba melakukan pembelian dalam aplikasi, Anda tidak akan mengunduhnya dan menggunakan sumber daya yang tidak diklaim.

Juga pemuatan malas adalah cara yang baik untuk merangkum logika inisialisasi, misalnya:

 val bounds: RectF by lazy { RectF(0f, 0f, width.toFloat(), height.toFloat()) } 

Segera setelah panggilan pertama dibuat, sebuah instance dari RectF dibuat berdasarkan lebar dan tinggi tampilan saat ini, yang menghilangkan kebutuhan untuk membuatnya secara terpisah dan mengatur objek ini.

Getter dan setter khusus


Untuk membaca pengaturan khusus dalam bahasa Kotlin, model struktural dengan perilaku pengguna tertentu digunakan untuk mendapatkan dan mengatur bidang. Saat menggunakan model untuk kerangka kerja tertentu, seperti Parse SDK, Anda memilih nilai yang bukan variabel kelas lokal, tetapi yang diambil dan disimpan menggunakan metode kustom, misalnya, dari JSON.

Dengan menggunakan metode akuisisi dan instalasi yang ditentukan pengguna, kami dapat menyederhanakan akses, misalnya:

 @ParseClassName("Book") class Book : ParseObject() { // getString() and put() -  ParseObject var name: String get() = getString("name") set(value) = put("name", value) var author: String get() = getString("author") set(value) = put("author", value) } 

Mengambil nilai-nilai ini akan sama dengan menggunakan sintaksis akses properti di model lain, seperti:

 val book = api.getBook() textAuthor.text = book.author 

Sekarang, jika Anda perlu mentransfer model Anda dari Parse ke beberapa sumber data lain, kode praktis tidak perlu diubah.

Lambda


Lambdas mengurangi duplikasi baris kode dalam file sumber dan memungkinkan penggunaan pemrograman fungsional. Meskipun lambdas saat ini digunakan oleh Android, Kotlin membawanya ke tingkat yang baru, memastikan bahwa Anda tidak harus berurusan dengan Retrolambda atau mengubah cara Anda membangun.

Misalnya, mendengarkan file akan terlihat seperti ini:

 button.setOnClickListener { view -> startDetailActivity() } 

Dan ini cara kerjanya dengan mengembalikan nilai:

 toolbar.setOnLongClickListener { showContextMenu() true } 

Di Android SDK, cukup sering ada kebutuhan untuk mengimplementasikan salah satu metode ini. Lambda mengatasi ini dengan keras.

Kelas data


Kelas data menyederhanakan kelas dengan menambahkan metode equals() , hashCode() , copy() dan toString() . Mereka mengklarifikasi data apa yang harus digunakan dalam model, memisahkan data dari logika.

Sebagai contoh, ini adalah kelas data:

 data class User(val name: String, val age: Int) 

Itu saja. Tidak ada lagi yang dibutuhkan untuk pekerjaannya. Jika Anda menggunakan kelas data dengan sesuatu yang mirip dengan Gson atau pustaka tipe JSON lainnya, Anda bisa membuat konstruktor default dengan nilai default, misalnya:

 data class User( @SerializedName("name") val name: String = "", @SerializedName("age") val age: Int = 0 ) 

Penyaringan Dataset


Dalam bekerja dengan API, kebutuhan untuk memproses koleksi terus muncul. Paling sering, mereka perlu disaring atau diubah isinya.

Menggunakan pemfilteran koleksi Kotlin, Anda dapat membuat kode lebih sederhana dan lebih mudah dipahami. Anda dapat menentukan konten daftar hasil dengan memfilter koleksi, misalnya, seperti ini:

 val users = api.getUsers() val activeUsersNames = items.filter { it.active } adapter.setUsers(activeUsers) 

Metode pemfilteran bawaan Kotlin sangat mirip dengan metode yang digunakan dalam bahasa pemrograman lain seperti Java 8 atau ketika bekerja dengan tipe koleksi Swift. Metode penyaringan koleksi yang disederhanakan menyederhanakan pemahaman bersama ketika berkomunikasi dengan karyawan tentang perlunya melakukan operasi tertentu untuk mendapatkan dan menampilkan daftar item yang diperlukan.

Ini menyimpulkan bagian pertama artikel dan mengundang Anda untuk menghadiri webinar gratis tentang topik: "Pengujian unit di Android" .

Source: https://habr.com/ru/post/id479406/


All Articles