Issue #559

February 26th, 2023
Articles & Tutorials
Yury demonstrates how to use your own device farm to launch tests remotely in the same manner as Firebase Test Lab, and parallelize execution between multiple devices.
Sponsored
RevenueCat provides a backend and a wrapper around Apple's StoreKit and Google Play Billing to make implementing and managing in-app purchases and subscriptions easy. Integrate in minutes. Try for free.
Simon Vergauwenshows how to use Arrow’s Resource DSL to reason about resource safety in the same way we use structured concurrency to avoid leaking resources
Drew Heavner describes how Reddit adopted Anvil, a compiler plugin that allows developers to invert how to wire, hook up dependencies and keep implementations loosely coupled.
Sponsored
Building quality apps has never been easier with Instabug. Optimize the performance and stability of android apps, including memory use, network calls, app launch, and rendering performance. Get started with Instabug!
Vincent Tsen's step-by-step guide to convert a very simple Jetpack Compose Android app to use Material 3 design.
Eric Donovan's summary of what the modern android developer needs to think about when developing UIs that are expected to work across a large range of screen types.
Simona Stojanovic zooms in even more on the Layout phase and constraints and cover them from another perspective — how to harness their power to build custom layouts in Compose.
Tomáš Mlynarič shows how you can use UiAutomator in Jetpack Compose apps
Katie Barnett shares how to add pull-to-refresh to your Composable.
Arkadiusz Chmura explains in detail what Kotlin inline functions are and what problems they address, and presents some practical examples and tips.
Alex examines the Material and Material3 Compose implementations of the dropdown menu as well as the cascade library, which simplifies building nested pop-up menus.
Joe Birch takes a look at a composable that is built specifically for TV experiences, the Carousel.
Alex Styl teaches how to use Maestro Studio to automate the creation of your testing flows as well as run them to automate your UI testing.
Place a sponsored post
We reach out to more than 80k Android developers around the world, every week, through our email newsletter and social media channels. If you have a product or service that helps Android developers, you should reach out to us and place a sponsored post in our upcoming issues!
Jobs
About the role We’re looking for an outstanding engineer to play a key role in scaling our testing process by automating our manual test suite and enabling our development teams to release faster with confidence. You’ll also have a strong QA mindset with a clear understanding of which user flows are
Libraries & Code
JetBrains Compose Multiplatform UI App (Android, iOS, Desktop, Web). MVVM - Kotlin MultiPlatform (KMP)
Auto Dagger allows you to automate some Dagger setup using Hilt.
Kover - Gradle plugin for Kotlin code coverage tools: Kover and JaCoCo
Fragula is a swipe-to-dismiss extension for navigation component library for Android
cascade builds nested popup menus with smooth height animations. It is designed to be a drop-in replacement for both PopupMenu and DropdownMenu
News
If you're the author of a published Kotlin library or are working on one now, share your feedback in this JetBrains survey
A page by Alex Styl to quickly check what the latest version of Jetpack Compose is and its dependencies. You can also sign up for email notifications.
Videos & Podcasts
In this tech talk, Google Dev Library contributor Jaewoong Eum discusses Pokedex, which follows Google's official Android architecture guidance and demonstrates modern Android development with Hilt, Coroutines, Flow, Jetpack (Room, ViewModel), and Material Design based on MVVM architecture
Nicola Corti is back in the Kotlin world with Marco Gomiero and his library RSS-Parser. Marco discusses how this library helped him to get started in the OSS world and helped him land his first job!
Philipp Lackner shows how you can implement a staggered grid in Jetpack Compose with lazy loading behavior
In this session, Adam McNeilly implements a date picker using Material 3 Dynamic Theming.
Thomas Ezan shares how the Android ML team is dedicated to making TensorFlow Lite on Android the ideal platform to deploy on-device Machine Learning.
Leonid Startsev briefly reviews how modern JVM coverage tools work, then talks about the specifics of handling Kotlin code in such tools. And finally, he takes a look into Kover — a new coverage tool for Kotlin.
In this episode, Simona Stojanovic takes a look at more advanced layout concepts and how they can help you take your design implementations to the next level.
Charfaoui Younes considers potential issues using data classes in Kotlin
A Touch of Multiplatform team talks with Meetup’s Colin Lee and Annyse Davis about how their teams evaluated multiplatform options before going all in with KMM.
Specials
We followed thousands of Android developers to the Android dev Mastodon server. So if you are on Mastodon, say hello 👋