As Uncle Bob said in his book,
You are reading this “article” for two reasons. First, you are a programmer. Second, you want to be a better programmer. — Robert C. Martin
Like what he said, imagine that you are in a library, and you are looking for some books. If the library sorted and categorized their books, you will find your books faster. In addition, the cool interior design & architecture will make you feel comfortable inside the library while you are searching for your books.
Just like writing books, if you want to build something great, you have…
View Binding is part of Android Jetpack. View Binding was introduced at the Android Talk at Google IO/19. Let’s learn more about this.
As said on their developer’s page,
View binding is a feature that allows you to more easily write code that interacts with views. Once view binding is enabled in a module, it generates a binding class for each XML layout file present in that module. An instance of a binding class contains direct references to all views that have an ID in the corresponding layout.
In most cases, view binding replaces findViewById
.
When we use findViewById
…
Dari artikel saya sebelumnya, yang membahas tentang Koin, telah dijelaskan kalau Koin ini adalah DSL first dependency.
Untuk contoh migrasi Dagger2 ke Koin, saya ambil sample project FootballClub dari artikel saya sebelumnya yang membahas tentang Android Clean Architecture, aplikasinya dibangun menggunakan Kotlin + Dagger2.
Seperti yang dikatakan di websitenya, Koin adalah:
A pragmatic lightweight dependency injection framework for Kotlin developers. Written in pure Kotlin using functional resolution only: no proxy, no code generation, no reflection!
and yep, gak ada lagi yang namanya generated code/classes, seperti yang bisa kalian lihat digambar, saat kita membuat aplikasi menggunakan Dagger2, dia akan selalu membuat…
Arsitektur Aplikasi dari setiap perusahaan atau setiap developers team pasti berbeda-beda, tapi dari setiap arsitektur memiliki tujuan yang sama, yaitu:
Arsitektur yang disepakati bersama ini memudahkan tim maupun developers lain (terutama yang baru masuk sebagai team member) bisa membaca codingan maupun structure project atau class yang telah dibuat sebelumnya. Karena telah dibuat kesepakatan tentang arsitektur apa yang dipakai, biasanya memudahkan Technical Writer untuk membuat documentation setiap project atau aplikasi yang dibuat.
Pertanyaan yang paling common dikalangan para developers, tapi masing-masing dari mereka memiliki pendapatnya sendiri-sendiri. …
Baru rilis versi stablenya 1.0 ditanggal 17 September 2018, dan 2 minggu setelahnya sudah ada versi barunya, yaitu 1.0.1.
Tambahkan library Koin di app/build.gradle:
repositories {
jcenter()
}
dependencies {
// .........
// Koin for Android
implementation 'org.koin:koin-android:1.0.1'
}
Koin ini dibuat dengan memanfaatkan fitur DSL di Kotlin. Seperti yang dikatakan oleh Arnaud Giuliani (Project Lead of Koin):
Koin is a DSL first dependency injection framework.
Kalian hanya perlu mengingat 4 hal dalam penerapannya:
module
— mendeklarasikan semua komponen didalam fungsi ini.single
— mendeklarasikan singleton untuk suatu tipe data.factory
— mendeklarasikan sebuah factory untuk suatu class/dataget
— mengambil data yang…Banyak yang bilang kalau kita buat Unit Testing di aplikasi kita, berarti aplikasi kita sudah bisa dibilang free bugs, I don’t think so.
Dengan adanya Unit Testing bukan berarti menghilangkan peran Manual Testing. Karena User aplikasi kita adalah Manusia, which mean bukan robot. Jadi peran Unit Testing disini adalah meminimalisir bugs dan memastikan function maupun method yang kita buat sudah sesuai atau belum sebagaimana mestinya.
Seperti yang dikatakan oleh Oleksiy Pylypenko diartikelnya,
It is a new open source library (github repository) focused on making mocking in Kotlin great.
Tambahkan di app/build.gradle Anda:
testImplementation "io.mockk:mockk:1.8.7"
Saat kita membuat sebuah Unit Test…
Sebagai developer khususnya developer Android, pasti kalian pernah ketemu (minimal pernah denger) arsitektur MVVM, MVP, maupun Clean Architecture nya Uncle Bob. Tujuan dari masing-masing arsitektur tersebut adalah supaya code kita tetap clean, maintainable, mudah dipahami oleh yang lain, dan yang paling penting menghindari situasi Massive-View-Controller.
VIPER itu sendiri adalah singkatan dari View Interactor Presenter Entity Router yang merupakan classes yang memiliki tugasnya masing-masing, sesuai dengan prinsip Single Responsibility Principle.
Saya biasanya menggunakan arsitektur MVP saat membuat aplikasi Android, tapi kelemahannya saat aplikasi tersebut semakin besar, bussiness logic maupun methods yang sudah kita buat di presenter jadi semakin besar dan semakin…
Terdapat banyak sekali fitur — fitur di Kotlin yang bisa kalian explore. Salah satu hal keren yang bisa dilakukan adalah membuat/mendesain sendiri DSL. Sehingga developers bisa lebih fokus untuk membuat code yang lebih mudah dibaca.
kata Wikipedia tentang apa itu DSL adalah:
Seperti penjelasan diatas, pada dasarnya DSL adalah bahasa yang digunakan pada satu bagian tertentu dari suatu aplikasi, tak seperti GPL (contohnya: Kotlin atau Java).
Sebenernya kenapa kita harus buat…
Mobile Engineer at eFishery