Almost a year ago Google announced a new policy that has big implications for the Android ecosystem: in order to continue publishing to the Play Store, apps must target a recent version of the SDK. Newer SDKs of course bring fancy new APIs, but they also cause some breaking changes in how your app functions. For now, the required version will be Oreo (SDK 26). Looking ahead, Google has stated that when a new target SDK is released, it will… [continue]
Swimming in the deep end with RxJava and Android
At E-gineering, we’ve been using RxJava to help us handle networking (with Retrofit) and threading in Android apps due to the ease with which it handles these tasks. As a learning exercise, Nate Ridderman and I wanted to challenge ourselves to dig deeper with RxJava and get to know some additional operators. Knowing that one of the primary raison d’être and abilities of RxJava is to handle streams of events, we decided to try using it to handle touch inputs…. [continue]
Android Data Binding Subtleties
One of the things I love about being an Android developer is the amount of resources available at my fingertips on the Internet. There’s a strong community of developers sharing open source libraries, promoting design patterns, and just helping out their peers. For the last several years I’ve primarily been a consumer of these resources, but it’s time to change that! My first blog post describes the process of fixing a relatively obscure bug. I’m following the advice of @chiuki:… [continue]
Android UI Testing with Espresso
Android UI testing is often overlooked, although most developers know it’s something that they should be doing. It’s like eating your vegetables – it’s not a pleasant experience for some, but it helps keep everything in working order. Some reasons often heard for not adopting an automated UI testing solution for a mobile app may be: Added time ($$$) to the duration of the project Tests are unreliable Tests take a long time to complete Delays in response time from… [continue]