~/conference

DroidKaigi 2023

android developers, mobile engineers, android library authors, qa and test engineers, build and release engineers, engineering managers

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

titleauthorlength
Openingsam (@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…
Talk in English on
SharedYuichi Araki32m
Practical guide to Android intent-based sharing using AndroidX: shows how to build share intents with ShareCompat and parse incoming shared content with…
Talk in Japanese on
What makes good unit tests for Android appsNozomi Takuma44m
Explains how to make Android unit tests fast, reliable and maintainable by splitting logic into pure JVM tests, using Robolectric for framework-dependent code…
Talk in Japanese on
Understanding Compose Text FieldAlbert Chang39m
Covers detailed behavior of Jetpack Compose text fields: explains parameter meanings, common pitfalls, and concrete fixes. Demonstrates a custom Material-style…
Talk in Japanese on
Practical implementations of powerful UI expressions using Jetpack Composeyokomii36m
Shows concrete Jetpack Compose techniques: using AnnotatedString and inline content to style text and insert icons; creating gradients with ShaderBrush and…
Talk in Japanese on
Our ongoing journey from REST to GraphQL on AndroidJulien Salvi41m
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…
Talk in English on
Building Android/iOS Apps with Jetpack Composem.coder35m
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…
Talk in Japanese on
Android Open-source repositories 101: Everything you always wanted …Kikoso33m
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…
Talk in English on
Releasing a live streaming feature to YouTubeyurihondo42m
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…
Talk in Japanese on
We dropped Material 3Yuki Anzai41m
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…
Talk in Japanese on
Securing Android Applications - The not so se…Bessie Jiang, Desnos Anthony29m
Covers concrete Android failures and fixes: demonstrates accidental log info disclosure and how to use R8 strip logs to remove debug statements; reproduces…
Talk in English on
Gradle Convention PluginsJumpei Matsuda32m
Gradle convention plugins centralize module configuration but only pay off when written cache-friendly: prefer binary (standard) plugins over script plugins…
Talk in English on
Introducing Passkeys for Multiple Use Cases and UX Challengesritou42m
Introduces real-world deployments of passkeys (FIDO-based passwordless auth) across services like Yahoo! JAPAN ID, dアカウント, Google accounts on Android, Money…
Talk in Japanese on
Introduction to Bytecode Instrumentation with AGP 8Marcel Schnelle40m
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…
Talk in English on
Preventing Unintended Subscription Cancellations on iOS and AndroidRyo Yamazaki, Yuya Sato39m
Shows that enabling Play Store Grace Period and Account Hold reduces involuntary subscription churn (Play data: +57% recovery with grace; account hold cuts…
Talk in Japanese on
Mastering Jetpack Compose Side-effectsKenji Abe38m
Explains eight Jetpack Compose side‑effect APIs and what each does: LaunchedEffect (starts coroutines cancelled on key change or leaving composition, shown via…
Talk in Japanese on
Controlling Android SoundNishimy35m
Shows how to control Android audio using AudioManager, AudioAttributes, and AudioFocus and how to play sound with SoundPool, MediaPlayer, or AudioTrack…
Talk in Japanese on
Build-and-Learn: The adb Protocolntsk29m
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…
Talk in Japanese on
No Worries! Handling Don’t keep activities in the Compose eraupon40m
Shows how to handle Android low-memory activity kills in Jetpack Compose by recreating kills with Developer Options and applying concrete fixes: use…
Talk in Japanese on
Approaches to Improving Notification Opt-In RatesMiyabi Gouji41m
Addresses Android 13’s move to default notifications off, which reduced install-time opt‑ins. Describes splitting notifications into channels and lowering…
Talk in Japanese on
Surprise! Neighboring Code ReviewsSato Taichi, Okumura39m
Three internal Android apps (DMMポイントクラブ, DMMTV, DMMBOOK) present concrete code-review rules: PR size limits (~500 lines for DMMTV, ~200 for DMMBOOK), CI gating…
Talk in Japanese on
Getting Started with Material3 Colors in Jetpack Glancemochico24m
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…
Talk in Japanese on
What's New (?) in Android Text Over the Past Few YearsSeigo Nonaka40m
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)…
Talk in Japanese on
Android boot verification to ensure integrity of OS and parti…Prashant Pol28m
Explains how Android ensures OS and partition integrity from a hardware root of trust through bootloader checks to app runtime attestation, showing concrete…
Talk in English on
Using Performance Management Tools: Firebase Performance Monitoring and Macrobenchm…taimu_shimizu37m
Measures Android Jetpack Compose rollout using Firebase Performance Monitoring, Macrobenchmark, and microbenchmarks. Reports rendering slow-frames dropping…
Talk in Japanese on
Building a screenshot testing pipeline that scalesLukas Appelhans35m
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…
Talk in English on
(Unofficial) Guide to App Architecture Guide Vol. 2Saryong Kang42m
Compares Dagger Hilt’s reliability and bytecode weaving convenience with its complexity and lack of Kotlin-native APIs, proposes Anvil and Wetstone as faster…
Talk in English on
Jetpack Benchmark and where to find themPiyush Maheswari25m
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…
Talk in English on
Maintaining E2E Test Automation as We Transition from View…shinmiy, kenken45m
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…
Talk in English on
Learning How Android Controls Hardware via GPIOTakasshi24m
Demonstrates controlling hardware GPIO on a TinkerBoard 2S from Android by toggling /sys/class/gpio (export → direction=out → value) to drive a watchdog…
Talk in Japanese on
Yes You Can! Improving AccessibilityYuri Ogura38m
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%…
Talk in Japanese on
Deep dive into size configuration changesChiko41m
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…
Talk in English on
Implementing That Common UI in Jetpack Compose: X Wayswiroha38m
Practical recipes for implementing nine common UIs in Jetpack Compose using Material3 (some APIs are experimental). Covers concrete, runnable examples and…
Talk in Japanese on
Intro to Performance Improvement Through MonitoringShimizuAsami41m
Practical guidance on finding and fixing Android app performance bottlenecks using monitoring tools. It covers measuring startup time and UI jank with Android…
Talk in Japanese on
Overcoming the Challenges of Integrating an Epub Viewer into a Mo…bing-zhu32m
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…
Talk in English on
The World of Android Enterprise Every Business App Developer Should KnowYusaku Tanaka37m
Explains Android Enterprise for business apps using Google Workspace as the demo MDM environment; server-side control via Google Play and the Android…
Talk in Japanese on
Easy NFC Life with Host-based Card Emulationkeiji_ariyama40m
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…
Talk in Japanese on
Supercharging Android Testing: Scalable Environments for Larg…Damian Burke42m
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…
Talk in English on
Master of NestedScrollSuimii33m
Explains concrete nested-scroll solutions for Android: in Jetpack Compose, implement NestedScrollConnection (override onPreScroll/onPostScroll) to consume…
Talk in Japanese on
Let's Use Modifier.Nodesuji32m
Explains why Modifier.Node replaces Modifier.composed: composed causes excessive recompositions and bloated Composition (example showed a simple clickable…
Talk in Japanese on
Learning How Android Controls Hardware via GPIOTakasshi24m
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…
Talk in Japanese on
In-App Purchases in Flutter — Complete Unification for Android and iOSnacatl37m
A Flutter engineer explains migrating an existing Android in-app purchase implementation to Flutter for unified Android/iOS apps. The talk covers using an…
Talk in Japanese on
Kotlin High-Performance ProgrammingOhmae Ryosuke38m
Kotlin performance hinges on memory access: avoid unnecessary object copies and short-lived instances. The talk compares patterns (returning Pair vs out-arg)…
Talk in Japanese on
StateMachine Architecture Based on MVI: Combining KMM, Jetpack Compose and SwiftUIwasabimuffin, Sobaya41m
An MVI-style StateMachine architecture uses Kotlin Multiplatform (KMM) to share processor/reducer logic across Jetpack Compose (Android) and SwiftUI (iOS). It…
Talk in Japanese on
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.