Today I wanna start with dagger hilt, Dagger Hilt is a dependencies injection same as Dagger, but it more specialize for Android development, this is not a new thing that dagger in Android, we already knew that Dagger has integration also in Android but the implementation is same with general Dagger. Some people feel that still got problem and hard to develop it with Dagger and tried to find another alternative such as Koin, Kodein, etc.

Google announces Dagger Hilt already stable this year before that developer is initiated their self to experiment how Dagger Hilt integration. Then they felt…


SOLID foundation manifesto, each class must only have one responsibility.

Single-responsibilty Principle
Open-closed Principle
Liskov Substiotion Principle
Interface Segregation Principle
Dependency inversion Principle

SOLID principle will help you to improve readability, somehow we face some difficulties when code review or read existing code that people wrote, even you got bugfix with legacy code. when you try to fix it, it triggers another side effect. SOLID Principle comes to rescue this case.

Debugging will always be one process that software engineers did, Developer should able to understand the code flow when debugging, for existing code that already implement if there no…


Hi, so today I will explain how to create middle-ware for transform Webhook data payload into another Webhook data. But I know it will become abstract if i just explain without the real case, then I will elaborate more about that. Last time I got a question from one of my team members, how we can get alert request in Dingtalk based Firebase Crashlytics. Dingtalk had easy integration for several third parties library, such as Github, Jira, Gitlab, Travis, Trello, and etc. But Firebase is not provided, so I use custom message via Dingtalk Webhook.

After we create custom message…


Siang ini saya mendapatkan link Twitter, karena menarik, saya kemudian membaca thread sampai selesai, hal yang menyedot perhatian saya adalah topik yang dijelaskan oleh thread starter, bahasan yang diangkat adalah tentang perusahaan besar yang sudah mendunia, penjelasan tersebut meliputi latar belakang bagaimana perusahan tersebut meraih valuasi sebesar 247 Million US Dollar.

Mungkin Anda bertanya-tanya siapa perusahaan yang saya jelaskan di atas, Saya akan memberikan petunjuk, perusahaan ini bergerak di bidang entertainment yang menawarkan supscription untuk menonton secara streaming, bisa berupa tv show dan film, film populer diantaranya adalah The Queen’s Gambit , The Witcher, Stranger Things, Breaking Bad, dan Money…


Image from unsplash by @kellysikkema

I am a developer who likes coding to solve problems, but when i enjoy doing work in front of my laptop and busy with tasks that must be done, left me no time to make personal improvements. During the day, i struggling with coding, if you are pressed for deadlines, you have to work at night to achieve this, sometimes it is missed or even invisible to anyone that work at late night. It is really complicated, it is demanded to work quickly, ensure quality, and workload that seems endless. …


Different Capabilities

Maybe some developer will excited about the ViewModel when it can save the state, and someone will thinking to replace SaveInstanceState into ViewModel. After that you implement that you will get some mistake.

ViewModel will only preserve data onConfigurationChange and when activity/fragment still processed and not get killed. So when you get state after activity get killed you should implement onSaveInstanceState and onRestoreInstaceState without ViewModel. So would you choose one of them or use both of them. actually Viewmodel and SavedInstanceState complete each other, such as overlap in capability but not as a subset or superset of the other. …


This is my article that i wrote in Oct 2019.

Fragment Factory help you create Constructor

Developer right now cannot add constructore in fragment, this advise come from officially google, when we still create constructore our IDE lint will show warning that suggest us to remove it. Constructor contain argument that will be execute in our fragment and we can create some dependecies injection, But we cant do that. Until now, We still face that we cannot add argument constructor when we initialise fragment. Until we meet the Fragment Factory, Fragment Factory will give you manage/control to build fragment and enable constructor.

Take a look this…


I just expirement with MVI pattern last week ago, when i tried to implement that i found some confusion cos it different from the other pattern that i have done before. First some developer are face the complex and more use case every they develop program. Because of that i try to search the solution to solve that problem we create some pattern based on MVI to facing that use case.

I try to create the sample with login and register flow using MVI pattern design. you can fork or clone in this url but it still under development process…


Mungkin dari teman-teman masih bingung apa saja yang diperlukan untuk memulai perjalanan menjadi Android Developer. Sayangnya perjalanan itu sangat jauh, perlu bekal seperti latihan dan proses yang panjang. Namun, sebelum Anda memulai perjalan itu Anda harus tahu tujuan, kenapa memilih mengikuti perjalanan ini? Kalau Anda sedang mencari kerja atau belajar silakan ikuti. Tapi Anda harus ingat dalam setiap perjalanan bahwa setiap langkah atau proses memerlukan konsistensi. Apabila Anda enggan melakukannya jangan harap bisa memperoleh hasilnya yang maksimal. Saya akan membuat tahapan belajar Android development, ini opini saya pribadi, referensi dari pengembangan Ios, dan inspirasi saya dari Mindork. Karena tulisan ini…


Lazy Delegate merupakan fungsi yang menerima lambda dan mengembalikan sebuah Instance sebagai delegasi property. Properti atribut lazy kotlin digunakan untuk mendeklarasikan nilai properti saat pertama kali dijalankan. Hal ini tentu berguna jika kita berada pada kondisi dimana memperoleh data dengan resource yang mahal. Sebagai contoh, apabila Anda ingin mendeklarasikan nilai pada objek user, dimana dibutuhkan untuk pemanggilan microservice yang hanya sekali saja dipergunakan. Kebanyakan selalu memasukkan nilai pada objek user secara langsung dan ini dilakukan berulang nantinya, seharusnya Anda cukup melakukan deklarasi ketika Anda memperoleh data pertama kali.

Kita akan membuat sebagian contoh, semisal Anda memanggil service pada suatu objek…

Randy Arba

Android Developer and Learner.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store