Issue #494

November 28th, 2021

Articles & Tutorials

NFC payment experience with MotionLayout on Android

Rodrigo Dominguez shares an example of how MotionLayout enabled a wonderful animated experience for users when scanning NFC payments.

Get recognized as an ML Expert

Elyes Manai shares the steps to earn the Google Professional ML Engineer Certificate!

link image   Solve ANRs Easily with Stack Trace Flame Graphs

Get your team the right data to prioritize and solve ANRs based on their business impact. Identify the packages and third-party SDKs that are hurting your Google Play Store ranking. Inspect stack trace flame graphs to find commonalities and point to root causes faster and without guesswork!

Compose for Desktop: Get Your Weather!

Roberto Orgiu shows how to build a desktop weather app with Compose for Desktop! You’ll get user input, fetch network data and display it all with the Compose UI toolkit.

Two mutables don’t make a right

Zach Klippenstein looks at why you shouldn't put mutable collections inside mutable state holders.

link image   Forget writing testing scripts, use Waldo.

Waldo is the first fully no-code mobile testing solution. Now, anyone on your team can create reliable automated tests and help you fix bugs before your users find them. Try Waldo now, for free.

It's never been easier to write Unit Tests on Android — Part 1

In this article, Begüm Yazıcı explains what Unit tests are, why we should write them, and how to write them.

The “misbehaving” foreground service in Android

Leon Chiver encountered random crashes on starting a foreground service. Here's how he tracked down the issue and fixed it.

Keep your App secure with dependencyCheck

Cédric writes about dependencyCheck, a tool to verify third-party libraries don’t have security holes.

Perfectionism vs excellence

Hannes Dorfmann's musings about perfectionism vs striving for excellence.

How to create a Bottom Sheet with Jetpack Compose

In Jetpack Compose, we have two types of bottom sheets, the BottomSheetScaffold and the ModalBottomSheetLayout. John Codeos shows examples of how to use both.

Hacking the hinge

Thomas Künneth shows how to tune your application to look great on devices with a hinge obscuring some of the screen content.

Workaround for nested scrolling view interop in Compose

Chris Banes shares this workaround for nested scrolling view interop in JetpackCompose. It allows you to use nested scrolling layouts in a ComposeView, so that they dispatch the correct calls to view parents (AppBarLayout, etc).

The famous and unthought MVI "misconception" alongside MVVM

You might have heard of MVC, then we have MVP, MVVM, MVI etc… if you add any letter after MV it might exist already. FunkyMuse ponders some misconceptions around these patterns.

Lazy dev: Indexed Branch Switching

Zarah Dominguez expands on her last article with this quick tip. She shows how to make it easier to switch branches among the last several used.

Gradle and AGP build APIs: How to write a plugin

In this article, Murat Yener shows how to extend your build by writing your own plugin.


Place a sponsored post

link image   Place a sponsored post & reach over 66k Android devs



Android Developer

Konrad is looking for Android developers of all experience levels to join our mobile team building native apps for the world’s most exciting companies. Our team of 200+ developers is always looking to solve challenging problems, learn, and have fun!

Senior Software Engineer - Android

Squarespace is looking for a Senior Software Engineer - Android to join our small, collaborative team responsible for the end-to-end development of our Android applications and the long-term vision of Squarespace on mobile devices. You will report to our Engineering Manager in New York City.

Android Developer

We are seeking android software developer candidates with different levels of experience ranging from junior to senior. Design and develop the world’s best in-vehicle applications for GM Infotainment systems Responsible for the entire software development process of your domain.


Libraries & Code


Mocking for Kotlin/Native and Kotlin Multiplatform using the Kotlin Symbol Processing API (KSP)


SwiftPoet is a Kotlin and Java API for generating .swift source files. Source file generation can be useful when doing things such as annotation processing or interacting with metadata files.



link image   Dokka Is In Beta – Try It Now and Share Your Feedback!

JetBrains announced that Dokka has reached Beta. They are close to making it Stable, but they need your feedback about the major new feature delivered in Beta – the new HTML output format.

KMM Plugin for Android Studio 0.3.0 Released

The KMM Plugin for Android Studio 0.3.0 was recently released! It comes with lots of new features and improvements that simplify the creation of new KMM projects and improve the process of developing iOS applications based on Kotlin Multiplatform Mobile.

Kotlin 1.6.0 Multiplatform warning for library developers

Authors of Kotlin Multiplatform libraries with Android targets please be aware that JetBrains recently discovered a couple of issues affecting the compatibility of libraries published in setups that use the most recent versions of Kotlin, Gradle, and the Android Gradle plugin


Videos & Podcasts

link image   Android Panel Discussion

A virtual panel discussion with expert Android engineers Zarah Dominguez, Kaushik Gopal, Chet Haase, and Emily Kager

Mastering Git Essentials for Beginners (the 80/20 of Git)

In this video you will learn the 20% of Git commands that will give you 80%+ of the benefit. This course starts from the ground up. No prior git experience is necessary. I'll show you how to create a repository, add commits, review the repository, branch, merge, push to remotes on GitHub and much much more.

Kotlin Roadmap Highlights November 2021

JetBrains has updated the Kotlin public roadmap to reflect plans for Kotlin 1.7 and beyond! In this video, Egor Tolstoy talks about the seven exciting highlights from this update!

Gradle and Build APIs: How to write a plugin

On this episode of Gradle and Build APIs for MAD Skills, you will learn how to extend your build by writing your own plugin.

Firebase Release Notes November ‘21

In this video, Frank van Puffelen discusses updates from the Firebase Summit 2021, run unified messaging campaigns with FCM and FIAM, automated pre-releasing testing with the App Distribution REST API, and more!

Latest Book Recommendations from Fragmented

In this episode, Donn and Kaushik talk about some of the books that they’re reading and thoughts and recommendations on each.

The Dangers of Jetpack Compose

In this episode, Gabor Varadi shares his experiences in using Jetpack Compose in real-world Android applications and explains problems we have to watch out for. He also shares his opinions on MVVM vs MVI architecture, reactive programming with Flow vs RxJava, and much more.