Using DI in our applications forces us to decouple the whole system into single-purpose components. Lukáš Sztefek shows how this approach leads to great testability.
Bevan Steele shows how navigation in the Compose world still uses Jetpack Navigations classes but is extended to support @Composable functions.
This article series is for developers and designers interested in learning more about accessibility, particularly related to the Android platform. In this article, Pamela Hill educates developers on a few simple implementation details to consider when coding their Android apps.
ExoPlayer is a very powerful library for playing various video and audio content on Android. Julien Salvi shows how we can build our own extension by developing a custom DataSource for playing content from an SMB server.
This tutorial shows how to set up Android Studio on Google Cloud in just a few minutes.
In this third part of the Jetpack Compose navigation series, Ziv Kesten shows how to pass multi typed data using the compose navigation components while using its SafeArgs feature.
Sometimes you need a UI that just can't be built with the standard controls. Vlad Sonkin shows how Android gives us the possibility to create everything we need with the help of Custom Views.
Margaret Maynard-Reid starts an end-to-end TensorFlow Lite tutorial on how to combine multiple ML models to create artistic effects by segmenting an image and then stylizing the image background with neural style transfer.
John O'Reilly enumerates some gotchas when switching from LiveData to StateFlow when using Jetpack Compose for your UI.
Waseef Akhtar step by step tutorial on publishing your open-source library to MavenCentral.
Should you be migrating your current app to Hilt? Manuel Vivo shares some reasons whether your team should invest migrating from Dagger to Hilt.
In this post, Burhanuddin Rashid shows how we can manually generate an APK using Github actions.
In this tutorial, John Codeos show you how to implement View Binding in Activities, Fragments, and RecyclerView Adapters.
Amit Shekhar teaches about the Terminal Operators in Kotlin Flow.
Chet Haase wrote this article to explain more about performance, startup testing, and the reasons behind the pieces he used for testing startup.
Mark Allison shows how AsyncLayoutInflater can help us improve our app's startup times.
Py continues his series on Android app vitals, this time with a bunch of great techniques for profiling your app's startup times.
Fed up with typing ContextCompact, resources, and context all over your apps to access your resources? Kite is an Android Resources Wrapper Library.
A tool to generate well-defined, but essentially random, input following the idea of constrained non-determinism.
Kotlin 1.4.20 is here with numerous fixes and improvements for existing features and new experimental features for you to try.
Kotlin Android synthetic view binding is now deprecated in Kotlin 1.4.20.
What if it were possible to generate your test data using real objects without hard coding fixed values? Matthew Dolan looks at using random values through "constrained non-determinism" - what it is, why use it, and the new KotlinFixture library.
Suspend functions in Coroutines are meant for one-shot calls that could return a result. But, how can you create a stream of data to return multiple results over time? In this video of Kotlin Vocabulary, Manuel will give us the benefits of Kotlin Flow, and much more!
In this first ever episode in English, Yannick and Benjamin have a chat with Benjamin Baxter from Google about Android TV and the new Chromecast with Google TV
Lukas Lechner's 9+ hours Video Course "Mastering Kotlin Coroutines for Android Development"