DroidKaigi 2023
2023-09-14..2023-09-16
-- online --
[DroidKaigi 2016, DroidKaigi 2018, DroidKaigi 2019, DroidKaigi 2021, DroidKaigi 2022, DroidKaigi 2023, DroidKaigi 2024, DroidKaigi 2025, DroidKaigi 2026]
who it's for
android developers, mobile engineers, android library authors, qa and test engineers, build and release engineers, engineering managers
topics
Jetpack Compose TextField internals; Compose animations and shaders; Compose for iOS with KMP; Apollo Kotlin GraphQL migration; unit testing with Robolectric and instrumentation; Gradle convention plugins and configuration cache; android security hardening and keystore; screenshot and scalable testing pipelines; bytecode instrumentation with AGP 8; YouTube live streaming with RTMP and OAuth; Material 3 theming and token tradeoffs
| title | author | length |
|---|---|---|
| Opening | sam (@sam0n0) | 01m |
A short montage labeled Opening video introduces DroidKaigi 2023 with dates 14–16 September 2023, credits music as 100-200, and shows conference links and… | ||
| Shared | Yuichi Araki | 32m |
Practical guide to Android intent-based sharing using AndroidX: shows how to build share intents with ShareCompat and parse incoming shared content with… | ||
| What makes good unit tests for Android apps | Nozomi Takuma | 44m |
Explains how to make Android unit tests fast, reliable and maintainable by splitting logic into pure JVM tests, using Robolectric for framework-dependent code… | ||
| Understanding Compose Text Field | Albert Chang | 39m |
Covers detailed behavior of Jetpack Compose text fields: explains parameter meanings, common pitfalls, and concrete fixes. Demonstrates a custom Material-style… | ||
| Practical implementations of powerful UI expressions using Jetpack Compose | yokomii | 36m |
Shows concrete Jetpack Compose techniques: using AnnotatedString and inline content to style text and insert icons; creating gradients with ShaderBrush and… | ||
| Our ongoing journey from REST to GraphQL on Android | Julien Salvi | 41m |
Migration begins end of 2020 and moves stepwise from a REST monolith to GraphQL, with AppSync backend, Apollo Kotlin client and Retrofit coexists with Apollo… | ||
| Building Android/iOS Apps with Jetpack Compose | m.coder | 35m |
Shows using Compose for iOS alpha with Kotlin Multiplatform to build a single Kotlin codebase that runs on Android and iOS. Demonstrates a two-screen cat… | ||
| Android Open-source repositories 101: Everything you always wanted … | Kikoso | 33m |
Covers concrete repository work: chooses Apache 2.0 as default license, adds CONTRIBUTING.md and a clear README, generates docs with Dokka and publishes to… | ||
| Releasing a live streaming feature to YouTube | yurihondo | 42m |
Explains how to implement and release YouTube live-streaming from an Android app using the YouTube Data API, including use of Google OAuth 2.0 and RTMP(S) for… | ||
| We dropped Material 3 | Yuki Anzai | 41m |
Explains why the team stopped using Material 3: tonal palettes from a seed color changed exact brand hex values and made dynamic color and dark-mode behavior… | ||
| Securing Android Applications - The not so se… | Bessie Jiang, Desnos Anthony | 29m |
Covers concrete Android failures and fixes: demonstrates accidental log info disclosure and how to use R8 strip logs to remove debug statements; reproduces… | ||
| Gradle Convention Plugins | Jumpei Matsuda | 32m |
Gradle convention plugins centralize module configuration but only pay off when written cache-friendly: prefer binary (standard) plugins over script plugins… | ||
| Introducing Passkeys for Multiple Use Cases and UX Challenges | ritou | 42m |
Introduces real-world deployments of passkeys (FIDO-based passwordless auth) across services like Yahoo! JAPAN ID, dアカウント, Google accounts on Android, Money… | ||
| Introduction to Bytecode Instrumentation with AGP 8 | Marcel Schnelle | 40m |
AGP 8 provides an official bytecode instrumentation API that hooks Gradle variants to ASM via the Android components block and replaces the old Transform API… | ||
| Preventing Unintended Subscription Cancellations on iOS and Android | Ryo Yamazaki, Yuya Sato | 39m |
Shows that enabling Play Store Grace Period and Account Hold reduces involuntary subscription churn (Play data: +57% recovery with grace; account hold cuts… | ||
| Mastering Jetpack Compose Side-effects | Kenji Abe | 38m |
Explains eight Jetpack Compose side‑effect APIs and what each does: LaunchedEffect (starts coroutines cancelled on key change or leaving composition, shown via… | ||
| Controlling Android Sound | Nishimy | 35m |
Shows how to control Android audio using AudioManager, AudioAttributes, and AudioFocus and how to play sound with SoundPool, MediaPlayer, or AudioTrack… | ||
| Build-and-Learn: The adb Protocol | ntsk | 29m |
Reimplements an Android Debug Bridge (ADB) client in Kotlin that connects over plain TCP to a device IP:port and exercises the full protocol, including the… | ||
| No Worries! Handling Don’t keep activities in the Compose era | upon | 40m |
Shows how to handle Android low-memory activity kills in Jetpack Compose by recreating kills with Developer Options and applying concrete fixes: use… | ||
| Approaches to Improving Notification Opt-In Rates | Miyabi Gouji | 41m |
Addresses Android 13’s move to default notifications off, which reduced install-time opt‑ins. Describes splitting notifications into channels and lowering… | ||
| Surprise! Neighboring Code Reviews | Sato Taichi, Okumura | 39m |
Three internal Android apps (DMMポイントクラブ, DMMTV, DMMBOOK) present concrete code-review rules: PR size limits (~500 lines for DMMTV, ~200 for DMMBOOK), CI gating… | ||
| Getting Started with Material3 Colors in Jetpack Glance | mochico | 24m |
Jetpack Glance brings Compose-style UI to app widgets and includes a Jetpack Glance 1.0.0 Material3 theme that enables dynamic color on Android 12+. The demo… | ||
| What's New (?) in Android Text Over the Past Few Years | Seigo Nonaka | 40m |
Describes Android text features added between Android 9 and 13: API 29 adds custom font fallback allowing different fonts per script (e.g., Latin vs Japanese)… | ||
| Android boot verification to ensure integrity of OS and parti… | Prashant Pol | 28m |
Explains how Android ensures OS and partition integrity from a hardware root of trust through bootloader checks to app runtime attestation, showing concrete… | ||
| Using Performance Management Tools: Firebase Performance Monitoring and Macrobenchm… | taimu_shimizu | 37m |
Measures Android Jetpack Compose rollout using Firebase Performance Monitoring, Macrobenchmark, and microbenchmarks. Reports rendering slow-frames dropping… | ||
| Building a screenshot testing pipeline that scales | Lukas Appelhans | 35m |
Pipeline uses Paparazzi to generate screenshots and reg-suit to diff them against a baseline stored in a GCS bucket, producing a web report and a PR comment… | ||
| (Unofficial) Guide to App Architecture Guide Vol. 2 | Saryong Kang | 42m |
Compares Dagger Hilt’s reliability and bytecode weaving convenience with its complexity and lack of Kotlin-native APIs, proposes Anvil and Wetstone as faster… | ||
| Jetpack Benchmark and where to find them | Piyush Maheswari | 25m |
Shows using Jetpack Benchmark (micro and macro) to find and fix a RecyclerView scroll bottleneck that drives app startup from about 6s down (users report… | ||
| Maintaining E2E Test Automation as We Transition from View… | shinmiy, kenken | 45m |
Mercari payment features run on a one‑week release cycle with ~22.6M monthly users, ~254B JPY GMV, ~40 Android engineers and 100+ PRs/week, so automated E2E is… | ||
| Learning How Android Controls Hardware via GPIO | Takasshi | 24m |
Demonstrates controlling hardware GPIO on a TinkerBoard 2S from Android by toggling /sys/class/gpio (export → direction=out → value) to drive a watchdog… | ||
| Yes You Can! Improving Accessibility | Yuri Ogura | 38m |
An Android team improved accessibility for a paid app (87 paid, 612 total members) by prioritizing TalkBack and Switch Access support, fixing Android 14 200%… | ||
| Deep dive into size configuration changes | Chiko | 41m |
Large-screen and multi-window use makes window size change frequently and unpredictably; an example run shows activity restarts 4 vs config changes 100+, so… | ||
| Implementing That Common UI in Jetpack Compose: X Ways | wiroha | 38m |
Practical recipes for implementing nine common UIs in Jetpack Compose using Material3 (some APIs are experimental). Covers concrete, runnable examples and… | ||
| Intro to Performance Improvement Through Monitoring | ShimizuAsami | 41m |
Practical guidance on finding and fixing Android app performance bottlenecks using monitoring tools. It covers measuring startup time and UI jank with Android… | ||
| Overcoming the Challenges of Integrating an Epub Viewer into a Mo… | bing-zhu | 32m |
Shows a working integration of an EPUB viewer into Jetpack Compose using Esky EPUB SDK and AndroidView in Compose, with a concrete app that supports paging, a… | ||
| The World of Android Enterprise Every Business App Developer Should Know | Yusaku Tanaka | 37m |
Explains Android Enterprise for business apps using Google Workspace as the demo MDM environment; server-side control via Google Play and the Android… | ||
| Easy NFC Life with Host-based Card Emulation | keiji_ariyama | 40m |
Shows how to build a real Host-based Card Emulation (HCE) NFC card on Android by implementing HostApduService, registering AID filters, and testing with PC/SC… | ||
| Supercharging Android Testing: Scalable Environments for Larg… | Damian Burke | 42m |
Describes a concrete pipeline: build a device Matrix from Play Store user data to pick OS versions, screen sizes and foldables; mark device-specific tests with… | ||
| Master of NestedScroll | Suimii | 33m |
Explains concrete nested-scroll solutions for Android: in Jetpack Compose, implement NestedScrollConnection (override onPreScroll/onPostScroll) to consume… | ||
| Let's Use Modifier.Node | suji | 32m |
Explains why Modifier.Node replaces Modifier.composed: composed causes excessive recompositions and bloated Composition (example showed a simple clickable… | ||
| Learning How Android Controls Hardware via GPIO | Takasshi | 24m |
Shows how to control hardware GPIO from Android to implement a watchdog reset on a TinkerBoard2S by toggling pins with adb shell (export, direction=out… | ||
| In-App Purchases in Flutter — Complete Unification for Android and iOS | nacatl | 37m |
A Flutter engineer explains migrating an existing Android in-app purchase implementation to Flutter for unified Android/iOS apps. The talk covers using an… | ||
| Kotlin High-Performance Programming | Ohmae Ryosuke | 38m |
Kotlin performance hinges on memory access: avoid unnecessary object copies and short-lived instances. The talk compares patterns (returning Pair vs out-arg)… | ||
| StateMachine Architecture Based on MVI: Combining KMM, Jetpack Compose and SwiftUI | wasabimuffin, Sobaya | 41m |
An MVI-style StateMachine architecture uses Kotlin Multiplatform (KMM) to share processor/reducer logic across Jetpack Compose (Android) and SwiftUI (iOS). It… | ||
| nothing matches | ||