ETag caching with OkHttpRecently, a discussion arose that our app startup time felt slow. Our first guess was that this was due to the “big” /bootstrap endpoint…Nov 18Nov 18
Stay Curious and Play — My attempt to make use of generative AI at workI’m by far not the hype-driven type (anymore). In general, I don’t use new tools or “things” just because they are hyped. However, I have…Oct 18Oct 18
Unveiling the Reality: My Experiment with Non-Transitive R Classes and Compilation AvoidanceIn December 2022 we switched from the traditional transitive R classes to the back then relatively new non-transitive R classes behavior…Feb 16Feb 16
Published inStackademicThe most condensed guide to publish to Maven Central with GradleNov 29, 20231Nov 29, 20231
A bird’s eye view of the ioki Android app architectureJust recently, I was assigned the task of documenting the Android app architecture for the ioki app. Since this was on my list of blogs I…Sep 12, 20231Sep 12, 20231
The concept of a “developer-facing language” on AndroidThe Android localization matching system is quite handy. You can define your “default strings” in a directory named values, and all…May 24, 2023May 24, 2023
sourceCompatibility, targetCompatibility, and JVM toolchains in Gradle explainedAlthough I have to admit it is complex, it is quite easy to understand once you know what they do.Apr 21, 20239Apr 21, 20239
Streamline your development process with a convenient Gradle pluginAs your Gradle project grows and you decide to split it up into multiple modules, you will quickly find yourself copying and pasting your…Apr 6, 2023Apr 6, 2023
My attempt on explaining Kotlin CoroutinesI recently found a super nice example that shows how Kotlin Coroutines work. It provides the bare minimum of code but still shows “all” the…Feb 27, 2023Feb 27, 2023
What is R8 and how we enabled itWe just recently enabled R8 in our Android app. What does this mean? Why do I sometimes use the term proguard and even added proguard.pro…Jan 30, 20232Jan 30, 20232