The day started with checking out the codelabs.
Jetpack Compose Codelab
Lightning Talks Round 1
Managing Companion Devices
What’s New in C++/Native Support in Android Studio
Advanced Haptics: The When, What, and How of New Haptic APIs
Adopt Wide Color Gamut
Turning the Page: Migrating to ViewPager2
Platform Android Studio and Tooling
Secure Your Data – Deep Dive into Encryption and Security
Jon Markoff, Nicole Borrelli
Strategies for data encryption on Android using Jetpack Security. The key takeaways include: learn to encrypt data safely on device and use the AndroidKeyStore.
Outline the challenges with data-at-rest encryption.
Best practices for data encryption and key management.
Deep dive into why and how Jetpack Security library was built.
Jetpack security Library
Hardware backed means it runs a separate memory space.
- AndroidX Library
- Recoverable errors
An opinionated guide to Dependency Injection on Android
Manuel Vivo, Daniel Santiago Rivera
Dagger has become the recommended way to do Dependency Injection on Android. However, there are many ways to use Dagger! Come hear why we recommend Dagger, the best practices including recommended setup in multi-module projects, and what plans we have to improve Dagger in Android so that you can create a solid, extensible solution for managing dependencies in your app that scales to large projects.
How The Android Team Makes Widgets Accessible
Shailen Tuli, Qasid Sadiq, Lyla Fujiwara
In this intermediate level talk, we cover accessibility using real world examples. You’ll find out about accessibility in framework and androidX code, and learn about support for accessibility in Android widgets. Along the way, you’ll discover good patterns that can make your UIs shine for accessibility/
ViewPager : Flip through
Logical Direction vs Direction
Testing for accessibility
Testing Code lab
End to end Tests
Android Studio: Debugging Tips n’ Tricks
David Herman, Justin Nieto
Level up your debugging skills! We all spend so much time in the debugger, and this session teaches you about some of the powerful debugging features available in Android Studio. This talk should appeal to all, from beginners to experts and everybody in between. No matter your level, you’ll take away something to help you chase bugs more effectively using Android Studio.
Java❤️ Kotlin, Happy Together 🎵
Murat Yener, Nicole Borrelli, Wenbo Zhu
Kotlin is awesome and you want to write all your code in it, but what about the thousands of lines of code already written in the Java programming language? Or, maybe you have a library or project that is written in Java and already has been used in so many Kotlin or Java projects.
In this talk, we will look at the best practices for writing Kotlin and Java code that works so seamlessly from the other that the only way to what language it is written in is to look at the source code.
This session covers the benefits of a declarative reactive UI system like Jetpack Compose and how it applies to real problems that Android developers have today. Additionally, this talk expands on the programming model of Jetpack Compose and some of its implementation details that help you understand how Compose works.
Permissions on Android
Sara N-Marandi, Philip Moltmann
Permissions provide the means for apps to communicate to their users why they need access to the user’s private data. In Android, we want to provide users control and transparency over their data, and have made a number of changes in Android 10 that bring greater restrictions to what data apps can access. We will review the changes in Android 10 and introduce new concepts we have been working on for future releases.
Only 18% of users allow every permission on their device.
Grant a specific feature that requires this permission.
Users share less.
Request the minimum permissions that a feature needs.
Request permissions in context for the use case.
Permissions by libraries
Minimize use of location, especially background location.
Testing Coroutines on Android
Manuel Vivo, Sean McQuillan
Coroutines simplify the way we do async programming on Android. However, testing async code has never been an easy task. In this talk, we show you how to master test asynchronicity with coroutines to get that precious green check ✔️. Which questions do you have to ask yourself before writing a line of test code? How can you test coroutines that use Dispatchers.Main? What if you want to control the timing of your events? Why shouldn’t you use Dispatchers.Unconfined? Come and learn how to test coroutines like a pro.
Android UI Coroutines First
Updated Documentation coming
Always inject dispatchers
Fast, Reliable, isolated