Published inProAndroidDevLet’s build an Android camera app! CameraX + ComposeWriting customised camera experiences on Android has traditionally been very difficult. For one thing, photography itself is difficult: as…1d ago1d ago
Published inProAndroidDevSeven recipes to understand flows and asynchrony in KotlinIn the clean world of Kotlin coroutines, we can have many tasks running at different times. Suspend functions and flows are two examples...Mar 146Mar 146
Published inProAndroidDevSeven demos to understand coroutines: scope, context and JobsUnderstanding coroutines — really understanding them, not just learning patterns — comes from seeing what goes on under the hood.Feb 195Feb 195
Published inProAndroidDevCoroutine patterns in Android, and why they workI know many Android developers who learn coroutines through code patterns, and that is usually enough to get by. But doing so misses the…Jan 213Jan 213
Published inProAndroidDevAndroid, Bluetooth and BLE the modern way: a complete guideBluetooth is an immensely fun technology to work with. Once you learn how to search for and communicate with devices, you will be surprised…Jan 1010Jan 1010
Published inProAndroidDevA flexible, modern Android app architecture: complete step-by-stepHere we teach Android architecture by example. That means showing *how* various architecture decisions are made. We will encounter…Jul 4, 20239Jul 4, 20239
Published inProAndroidDevHow to architect Android apps: a deep dive into principles, not rulesHere’s a scenario that’s recognisable to most Android developers… You are tasked with adding a simple feature to an app, but doing so…May 25, 20237May 25, 20237
Published inBetter ProgrammingFirebase’s Password Reset is Insecure. Here’s How to Fix It.Firebase Auth’s default password reset app is insecure, as it allows users to enter insecure passwords. My project provides a drop-in…Apr 3, 20237Apr 3, 20237
Why Firebase email/password login isn’t great for securityIn my previous security breakdown of Firebase Auth, I noted six separate security problems, and the first on the list was its insecure…Mar 20, 20233Mar 20, 20233
Published inProAndroidDevUsing Jetpack Credential Manager to save and retrieve passwords in-appSaving user credentials has traditionally been a bit hit-and-miss in Android, but a new library released earlier this month looks promisingFeb 23, 20231Feb 23, 20231