Tom ColvininProAndroidDevSeven 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 145Mar 145
Tom ColvininProAndroidDevSeven 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
Tom ColvininProAndroidDevCoroutine 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
Tom ColvininProAndroidDevAndroid, 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
Tom ColvininProAndroidDevA 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
Tom ColvininProAndroidDevHow 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
Tom ColvininBetter 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, 20236Apr 3, 20236
Tom ColvinWhy 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
Tom ColvininProAndroidDevUsing 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, 2023Feb 23, 2023
Tom ColvinAndroid 14 finally fixes this decade-old security holeAndroid has a security weakness that we’ve known about for years. Since, in fact, its very early versions. It’s taken until this year’s…Feb 10, 2023Feb 10, 2023