
Pada 2015, kami sudah menerbitkan artikel tentang lima perpustakaan teratas yang kami gunakan saat itu. Namun, platform Android telah tumbuh secara signifikan sejak saat itu. Seperti yang Anda ketahui, dalam bidang pengembangan perangkat lunak yang berkembang pesat, semuanya berubah dan berkembang dengan kecepatan kilat. Itu sebabnya kami memutuskan bahwa sudah waktunya untuk memperbarui daftar perpustakaan Android yang paling efektif.
Tanpa basa-basi lagi, mari langsung ke daftar kami. Pertama, kita akan melihat salah satu yang tertua, tetapi, menurut saya, salah satu perpustakaan Android paling efektif.
Retrofit adalah klien HTTP aman-jenis yang memungkinkan Anda menyajikan REST API sebagai antarmuka. Anda akan dapat mengelola badan, tajuk, parameter permintaan API dan banyak lainnya dengan bantuan anotasi, yang akan membuat proses ini sederhana dan mudah dipahami. Retrofit juga memungkinkan Anda untuk melakukan panggilan API yang sinkron dan asinkron.
interface ApiService { @GET("movie/{id}") fun getMovieDetails(@Path("id") id: String) : Call<MovieDetails> }
Selain itu, Retrofit menyediakan modul Rx terpisah. Jika Anda menggunakan Rx, modul ini akan mengembalikan Observable ketika mengakses API, yang akan memungkinkan Anda untuk mengaitkannya dengan sisa aplikasi Anda. Ini hanya beberapa dari banyak alasan mengapa kita masih mencintai dan menggunakan Retrofit.
Moshi adalah perpustakaan untuk mengubah objek JSON ke Jawa dan Kotlin. Banyak yang menganggap Moshi sebagai GSON 3.0. Namun, perpustakaan ini lebih unggul dari GSON dalam beberapa aspek: lebih cepat , mendukung Kotlin, memperbarui, menghasilkan pengecualian yang dapat diprediksi dan tidak menggunakan adaptor DateTime yang rusak secara default. Selain itu, menggunakan Moshi, proses konversi JSON ke objek Java (dan sebaliknya) menjadi sesederhana dan sejelas mungkin.
val moshi = Moshi.Builder().build() val jsonAdapter = moshi.adapter(Model::class.java) /* JSON to Model */ val model = jsonAdapter.fromJson(json) val json = jsonAdapter.toJson(model)
Kami juga menyukai Moshi karena mendukung API JSON. API JSON adalah spesifikasi konstruksi API, dan banyak dari API yang kami kerjakan ditulis menggunakan spesifikasi ini. Moshi JSON API membuat hidup kita lebih mudah karena API JSON dikonversi ke objek Java yang bermakna. Retrofit masih mendukung Moshi, dan bersama-sama mereka bekerja dengan baik.
Chuck adalah inspektur HTTP untuk Android yang memungkinkan Anda menggali riwayat HTTP aplikasi Anda di ponsel Anda. Log HTTP ditampilkan sebagai pemberitahuan, yang dapat diperluas untuk masuk ke Chuck dan melihat informasi terperinci. Menggunakan Chuck akan sangat menyenangkan departemen QA, karena mereka dapat melihat di mana masalahnya berada: di sisi Android atau di sisi server. Perpustakaan ini terkadang dapat membantu Anda lebih dari sekadar logcat. Ini karena riwayat HTTP Anda akan dipertahankan bahkan jika aplikasi tiba-tiba ditutup, sementara logcat membersihkan dirinya sendiri dari waktu ke waktu setelah restart.

Anda kemungkinan besar tahu bahwa mengunduh gambar di Android sangat sulit. Bahkan mengubah ukuran gambar dapat menjadi bencana dengan OutOfMemoryException
. Glide adalah pustaka unggahan gambar yang menyediakan API berkualitas yang memungkinkan Anda memodifikasi gambar sesuka Anda.
GlideApp.with(context) .load(url) .centerCrop() .placeholder(R.drawable.ic_placeholder) .into(imageView)
Perpustakaan memungkinkan Anda untuk dengan mudah mengunggah gambar jarak jauh ke ImageView, menentukan gambar yang stabil, cache dan skala gambar, dll. Coba lakukan semua ini tanpa bantuan Glide, dan Anda akan segera mengerti mengapa itu ada di daftar pustaka kunci kami. Glide bahkan mendukung beberapa perubahan standar umum, seperti membuat gambar lingkaran.
ThreeTen adalah perpustakaan tanggal dan waktu untuk Android. Ini adalah versi porting JSR-310 yang dimasukkan dalam Java 8 sebagai java.time.*
standar java.time.*
Paket. Kami menyukai perpustakaan ini karena API Kalender Android standar mengubah pekerjaan menjadi mimpi buruk.
LocalDateTime.now() val localDateTimeString = "2011-12-03T10:15:30" val localDateTime = LocalDateTime.parse(localDateTimeString)
ThreeTen jauh lebih rendah daripada JodaTime dalam hal jumlah metode dan ukuran biner. API perpustakaan ini juga lebih kecil dari API JodaTime. Jika Anda sudah menggunakan JodaTime, maka Anda mungkin tidak perlu meningkatkan ke ThreeTen. Namun, saya sangat menyarankan mencoba ThreeTen jika Anda baru mulai bekerja pada proyek baru.
Timber adalah perpustakaan logging yang kuat namun sederhana yang dibangun di atas kelas Android Log
. Dengan bantuannya, Anda dapat dengan mudah menghidupkan dan mematikan tampilan log. Perpustakaan juga menawarkan dukungan luar biasa untuk mencatat string dan pengecualian yang diformat. Berkat keunggulan ini, Timber juga termasuk dalam daftar pustaka kunci kami yang kami gunakan di hampir semua proyek Android.
Timber.e("Error happened") Timber.w("Your variable value is %s", variable) try { ... } catch (e: Exception) { Timber.e(e) }
Room adalah ORM resmi untuk Android, dan ada beberapa alasan untuk status ini. Pustaka ini memiliki API ramah pengguna yang mirip dengan Retrofit. Kamar juga sangat bergantung pada anotasi dan sintaks SQL standar.
@Dao interface MovieDao { @Query("SELECT details FROM movies WHERE id = :id") fun getMovieDetails(id: String): MovieDetails }
Selain itu, Kamar menyertakan dukungan Rx dan LiveData
secara LiveData
, sehingga Anda dapat menggunakannya LiveData
Anda. Keuntungan utama Room atas berbagai ORM adalah kesederhanaannya. Banyak ORM memiliki API yang jauh lebih kompleks, untuk penggunaannya Anda perlu mempelajari semua dokumentasi dengan seksama. Berkat sintaks SQL standar, Room sangat bisa dimengerti, yang memungkinkan Anda untuk segera memulai tanpa menghabiskan banyak waktu membaca dokumentasi.
RxJava adalah implementasi Java dari ReactiveX API yang memungkinkan Anda untuk mengikat tugas dan peristiwa asinkron ke dalam urutan yang dapat diamati . Pengguna mengharapkan aplikasi modern untuk menampilkan data real-time. Dengan kata lain, mereka ingin informasi diperbarui secara otomatis. Dalam aspek inilah RxJava berguna.
Saat menerima data real-time, menjadi sangat sulit untuk menggabungkan beberapa permintaan API, beralih aliran, dan menangani kesalahan. Di sinilah RxJava dengan sempurna menunjukkan dirinya, dan untuk alasan inilah kami mulai menggunakan perpustakaan ini. Saya setuju bahwa RxJava mungkin tampak membingungkan dan sulit dipelajari, tetapi perpustakaan ini pasti pantas untuk Anda. Bahkan setelah beralih ke Kotlin, kami terus menggunakan RxJava karena kelebihannya. Ketika dikombinasikan dengan Kotlin API, itu menjadi lebih baik berkat fungsi ekstensi tambahan.
Single.zip( /* Execute first API call and retry twice if it fails */ apiService.getMovieActors(id).retry(2), /* Execute second API call and retry twice if it fails */ apiService.getMovieDetails(id).retry(2), /* Receive successful results and merge them into single model */ BiFunction<List<Actor>, MovieDetails, Movie> { actors, details -> Movie(details, actors) } ) /* Execute API calls on IO thread */ .subscribeOn(Schedulers.io()) /* Receive results on MainThread */ .observeOn(AndroidSchedulers.mainThread()) .subscribeBy( onError = { /* Handle error */ }, onSuccess = { /* Handle full movie data */ } )
Coba lakukan sesuatu yang mirip dengan cuplikan di atas menggunakan Java sederhana. Ayo
Android KTX adalah satu set ekstensi pembungkus untuk API Android di Kotlin yang membuatnya lebih ramah. Tujuan utama perpustakaan ini adalah untuk membuat API Android lebih nyaman digunakan. Ini berisi banyak metode dan fitur Kotlin baru yang hebat, seperti parameter bernama, fungsi lambda, dan parameter default.
view.isVisible = true view.setPadding(padding) view.updatePadding(left = newPadding, right = newPadding) toast("Display test toast") bundleOf { "key1" to item1 "key2" to item2 } sharedPreferences.edit { putString("key1", "value1") putString("key2", "value2") }
Android KTX ditandai dengan keberadaan banyak fungsi ekstensi, dan satu-satunya cara untuk mengetahuinya adalah dengan memasukkan kode pustaka untuk melihat bagaimana fungsi tersebut meningkatkan Android API. Android KTX menyederhanakan cara Anda menggunakan API Android, dan untuk alasan ini, perpustakaan ini harus menjadi dasar dari setiap aplikasi Android yang ditulis di Kotlin.
Daftar 10 perpustakaan teratas kami tidak akan lengkap tanpa Belati. Perpustakaan ini adalah kerangka kerja injeksi ketergantungan yang sepenuhnya statis pada waktu kompilasi. Belati, seperti RxJava, benar-benar sulit untuk dipahami (saya harus meluangkan waktu untuk memahami contoh pembuat kopi mereka), tetapi itu pasti layak waktu dan usaha.
Ketergantungan injeksi adalah cara untuk menambahkan komponen kecil ke model lain dengan sedikit usaha. Misalnya, jika Anda memiliki model mobil, Anda dapat menambahkan ban ke dalamnya dan dengan mudah mengganti implementasi ban di masa mendatang - tanpa mengubah satu baris kode pun dalam model mobil.
Saat mengembangkan aplikasi yang lebih kompleks, Anda pasti tidak ingin melakukan tugas injeksi ketergantungan sendiri, karena jumlah kode tumbuh dengan cepat dan menjadi terlalu rumit untuk didukung. Belati menghemat masalah ini karena membuat grafik injeksi ketergantungan pada waktu kompilasi melalui pemrosesan anotasi.
Tahun lalu, Google menambahkan modul Android Dagger terpisah yang memungkinkan Anda menulis lebih sedikit kode boilerplate dan menyederhanakan injeksi ketergantungan.
Kesimpulan
Jadi ini dia: daftar 10 perpustakaan Android teratas kami pada tahun 2018. Sepuluh perpustakaan hebat yang akan membuat proses pengembangan Android lebih menyenangkan bagi siapa saja yang memutuskan untuk menggunakannya. Ingin lebih banyak perpustakaan? Kebetulan kami di perusahaan kami mengembangkan beberapa perpustakaan Android kami sendiri. Anda dapat membiasakan diri dengan mereka:
- MjolnirRecyclerView - menambahkan dukungan untuk header, footer, komponen tampilan kosong dan DiffUtils ke RecyclerView;
- Goldfinger - menyederhanakan implementasi otentikasi sidik jari;
- DBInspector - melihat dan menyediakan akses ke database aplikasi;
- Complexify adalah cara mudah untuk memeriksa kualitas kata sandi pengguna;
- Prince of Version - Menangani pembaruan aplikasi dalam aplikasi.