-
You Can Double-Protect Your Keys by Storing Them in NDK and Encrypting Them
There are many ways to secure your key when building an APK. But for now, I want to explain one way to secure your key: store it in NDK and double-secure with an encrypted key. I believe that this is not a 100% guarantee that your key is secure. But at least make it hard…
-
How to enable Lint GradleDependency when use dependency substitution
In these day, there are many ways to make your gradle file looks clean and more structured. Even more, if you have many module and there will be many duplication dependencies you will write in your gradle file. One of the way, you can use is dependency substitution. Which means you will have an extra…
-
Story about us migrating from RxSwift to Swift Concurrency
Once upon a time there’s a team who changed the supported iOS version to iOS 13 as the minimum version. So they could upgrade their RxSwift library to RxSwift version 6.5.0 but some people from the team want to try to migrate to Swift Concurrency. That makes us want to change a little bit of…
-
5 tips of efficient remote engineering communications
One of our company vidio.com engineering culture revolves around extreme programming. On the previous read post pandemic communication, we talked about 3 ways to collaborate. In this story, i would like to share several tips to keep a fast and efficient communications with Async Pairing. but again, it is more faster to just pairing. When…
-
Clean Code, useful or useless ?
Hello World! That’s the first program for most software engineers (if not all) that was written when we first started to learn coding. From there, we started to take interest to figure out how to make other stuffs to work. In that journey, we will later find our first ever bug and try to solve…
-
Post-Pandemic Engineering Communication
after 2 years of transitions from WFO to WFA. Here is my take on how to maintain communication between engineers. Background In my current workplace (vidio.com), our engineering culture leverages the extreme programming. In my opinion, this practice works well with the WFO settings which is hard to implement in pandemic/post-pandemic situations. Pairing, reviewing code,…
-
Jetpack Compose — Android Bottom Sheet
When developing apps in Java, we generally prefer using View Model concept, where UI elements are declared in XML language whereas the functionality is written in java or Kotlin and we link UI elements with our Java or Kotlin class with the findViewbyId() method. But in most apps, we need to use the UI elements…
-
Refactoring Ekstrak Class dan Inner Class
Banyak kesempatan refactoring yang terbuka jika kita lebih jeli melihat situasi code nya dan pola pola refactoring dan desain yang sudah ada. Sebagai contoh dalam kesempatan ini kita lihat bagaimana kita bisa meng-ekstrak class dari code yang sudah ada dengan melihat pola yang ada di dalamnya. Berikut sebuah contoh code dari app android. Class di…
-
Part II — Understanding about RuleChain
Introduction Tulisan kali ini adalah lanjutan dari Part I — Why we need TestRule and how it works ?? .. Dalam satu test class, kita dapat membuat lebih dari satu @get:Rule, seperti contoh dibawah ini: Berdasarkan cara kerja TestRule yang sudah dijelaskan Part I — Why we need TestRule and how it works ?? .…
-
Mengenal dasar RxSwift
Sepengalaman saya selama melakukan iOS programming sebelum ke Jakarta, saya hanya mengenal Completion Handler untuk menangani proses asynchronous seperti proses pemanggilan API. Itu adalah satu-satunya teknik yang dikenalkan kepada saya dan teman saya yang lain saat mempelajari iOS programming. Kalau prosesnya tidak banyak sih masih syukur, masih gampang dibaca dan di maintain. Tapi kalau udah…