Articles & Tutorials
How To Write Better Tests With JUnit 5 Android
JUnit5 in Android brings a couple of exciting features over the standard JUnit4. In this article, Vlad Sonkin shows how to introduce JUnit 5 to your project and how to write better tests.
Certificate pinning with OkHttp
Certificate pinning ensures that your app will only connect to a server that has a specific certificate, not just a valid certificate. Bevan Steele shows how to do this when using OkHttp.
GamesBoost42 - funding for your apps done right
Need money to scale, launch in a different country or just looking to publish an app yourself? You don’t need to look for investors or beg publishers just use GamesBoost42! If you ever need funding for your app - visit GamesBoost42.com to get up to $2M in funding for your existing apps and games.
Declarative UIs with Kotlin MultiPlatform
A 3-part article by Daniele Baroncelli explaining the new D-KMP architecture, based on DeclarativeUIs, Kotlin MultiPlatform, and MVI pattern.
Out Now: New Kotlin Chat Tutorial
Build a fully-featured chat experience for your app in hours using Stream’s Kotlin Chat SDK. See why Stream powers activity feeds and chat for over a billion end-users. The Kotlin Chat Tutorial explains how to build a messaging interface with reactions, threads, offline support, typing indicators, and read state.
Dagger in Multi-Module Clean Applications
In this tutorial, Pablo L. Sordo Martinez shows how to integrate Dagger in an Android multi-module project built using the clean architecture paradigm
How to make a RecyclerView in Jetpack Compose
Making a RecyclerView involves a messy pile of boilerplate and complexity even for basic tasks, like headers, item callbacks, and multiple item types. Ian Alexander shows how Jetpack Compose makes lists simpler.
Apollo Android GraphQL Flow Bindings
Mohit explores how the Apollo-Android library gives you the ability to use Flows when making queries.
Handling backpressue in Rx Java 2
Ninad MG defines what backpressure is and takes a look at how to handle it in RxJava 2.
Machine Learning with Android 11: What’s new
Rishit Dagli demonstrates how you can get started with on-device ML with tools or plugins specifically launched with Android 11.
App Startup, Part 1
Chet Haase shows how the AndroidX App Startup library is specifically aimed at minimizing the impact of initialization that happens automatically because of content providers.
Adapting to ListAdapter
Meghan Mehta shows how it only takes a few steps to convert your RecyclerView to use ListAdapter. Now your application can automatically get better performance and a better user experience by using ListAdapter
Using Retrofit and Alamofire with Kotlin Serialization on KMP
Marco Gomiero shows how to implement a Kotlin Multiplatform Mobile application that performs a network call on the native side with Retrofit (on Android) and Alamofire (on iOS) but the DTOs are defined on KMP side as well as the information about deserialization.
Converting Firebase API Callbacks to Kotlin Flows
Nick Skelton's short guide on when and why to use the callbackFlow builder function in Android.
Mark Allison examines some of the KTX extensions for the Android graphics APIs. Combining these can have a significant impact on the size and readability of code performing complex drawing operations.
Android Views as a Function of State with ViewBinding Case Study
This post by TJ is part of a series that shows how Views in android can be represented purely as a function of some state with no side effects helping to build a robust, easy to scale and maintain app with the help of ViewBinding.
Migrating Your Design System to Jetpack Compose: Part 2
In Part 2 of this series on migrating design systems to Jetpack Compose, Adam Bennett talks about custom theming, building on top of existing APIs, how to minimize risk from relying on a rapidly changing library, and poses a question about API design.
10 Engineering Challenges Due to the Nature of Mobile Applications
This series of articles by Gergely Orosz collects challenges engineers face when building native iOS and Android apps at scale.
Swift’s Guard Statement for Kotlin
A convenient Swift keyword is the guard statement, a really nice tool Swift developers have that we are missing. Danny Preussler asks (and answers): Can we bring it to Kotlin?
Android ADB Tricks for your shell to boost your productivity
Here's an overview of different scripts Mike Penz uses on a daily basis.
Place a sponsored post
Place a sponsored post & reach over 66k Android devs
The ioki Design Days
As a mobile app developer or app designer, you start noticing that the published app starts to look different than the designs. Stefan shares a good idea of how developers and designers can work together to improve this.
Senior Android Engineer
(Remotely within the UK)
We are looking for a Senior Android Engineer who possesses a passion for pushing mobile technologies to the limits. This Android app developer will work with our team of engineers to design and build the next generation of our mobile applications. Take a look at our job spec for more information.
Libraries & Code
Gradle doctor helps you fix performance problems and errors in your Gradle build
Dual-screen library update with Jetpack Window Manager
Andrei announces version 1.0.0-beta1 of Microsoft's dual-screen libraries for Microsoft Surface Duo, which integrates Google’s Jetpack Window Manager support
Improving urban GPS accuracy for your app
In addition to 3D mapping aided corrections, Google continues to work hard to make location as accurate and useful as possible.
Videos & Podcasts
Material Design Components: Community tip
Google Developer Expert (GDE) for Android Zarah Dominguez gives us a tip on how to use the MDC catalog app to explore features of Material Components, and how building your own catalog can give an overview of your design system.
Android Developers Backstage: Ok, Ok, Ok
Romain, Tor, and Chet talked with Jesse Wilson from Square.
Understanding Continuous Integration
In this week's episode, Nate Ebel chats about a topic near and dear to his heart; continuous integration, or CI, as it's more commonly referred to.
Talking Freelancing with Mark Alison
In this episode of Talking with Apples, Peter-John Welcome talks to Mark Alison, an experienced Freelance Engineer about being a mobile freelance engineer, how community contributions help with finding work, some pro's and cons about freelancing, and how freelancing can make you a little more money than being a permanent employee.
Gradle Doctor with Nelson Osacky
In this episode, The Developers' Bakery talks about Gradle Doctor with its author Nelson Osacky. Gradle doctor helps you fix performance problems and errors in your Gradle build. The tool works as a Gradle plugin - emitting prescriptions for all the problems found.