When working on an app in Kotlin or Android, it’s very common to use RecyclerViews to display lists of information. Typically, this data will be built up in ViewModels and passed to a list adapter. This works fine for most things and allows interaction with the items. Usually, they don’t need to change directly in […]
Trying to figure out what is causing data binding errors when you compile your Android project? This post will save you a lot of time and frustration. There is nothing worse than the compiler telling you something’s wrong in your project but not telling you where. If you are getting cryptic errors like error: cannot […]
One of the biggest challenges of building elegant mobile interfaces is making them adapt properly to the full gamut of screen sizes. This is especially true for Android development. Back in 2016, Google introduced a new container view class called ConstraintLayout which makes this task much easier. One nice feature of the ConstraintLayout class is […]
One of the nice things about Android development is having the power of a real SQLite database to store data, along with built-in support in the framework using Room. Room is an abstraction layer over SQLite. It has a lot of nice features, but it also has some limitations.
Over the past six years, I’ve done a lot of iOS development (and written a lot about iOS). I would say it’s been the primary focus of my career. But as a software consultant, I need to be flexible, and I’ve done my fair share of Android development as well. I’m currently working on a […]
Recently, Google started allowing developers to create custom sticker packs for Gboard on Android. In case you’ve never heard of Gboard, it’s Google’s latest virtual keyboard. Available on both iOS and Android, Gboard is an all-in-one keyboard that includes glide and voice typing, a predictive word engine, and stickers. It is also the built-in keyboard […]
My current Android project needs to be backwards-compatible with every Android version back to Android 4.4 (KitKat). Meeting this requirement can be difficult and frustrating for a number of reasons, but with KitKat installed on ~10% of all Android phones worldwide (at the time of this writing), it’s still worth supporting. One of the issues […]
Having worked on an app with both native iOS and Android versions, it’s been interesting to compare and contrast the layout approaches of both platforms. iOS has had a constraint-based layout system for quite some time now in the form of AutoLayout, while Android has only recently added a similar system called ConstraintLayout.
In my latest project, I’m building iOS and Android apps that have to handle incoming Bluetooth data even when the apps are backgrounded. To achieve this on Android, I decided to implement a BroadcastReceiver.
While writing an Android UI test involving a NumberPicker, I discovered that instrumenting the NumberPicker using Espresso was not as straightforward as some other Android controls.