~/conference

droidcon London 2025

android engineers, kotlin developers, mobile engineering managers, build engineers, ci/cd engineers, wearable developers, app security engineers

Jetpack Compose modifiers; pausable composition in Compose; Kotlin regex techniques; Kotlinx Serialization for SavedState; Bazel on Android; custom Gradle plugins for testing; Perfetto performance tracing; coroutine suspension mechanics; lifecycle-aware coroutines APIs; Jetpack Navigation 3; AGP 9.0 updates; Android Studio AI Agent

titleauthorlength
Understanding Compose modifiers and how their order affects UIMarcin Moskała37m
Claim: Jetpack Compose modifiers are the core drivers of layout, drawing and input, not mere properties, and modifier order changes constraints and drawing…
Talk on
Make your composition pauseAndrei Shikov30m
Compose runtime adds pausable composition in Compose 1.10: compiler-generated suspension points let the runtime slice initial composition into pause/resume…
Talk on
Escape from Planet Regex - Kotlin to the RescueBen Kadel39m
Walks through Reax from literals and flags to greedy vs lazy quantifiers, character classes, capture groups and lookarounds, then shows exact Cotlin code…
Talk on
Android Screenshot Testing on AutopilotCagdas Caglak41m
Converts Jetpack Compose previews into runnable screenshot tests by using a KSP code generator that finds @Preview functions, emits JUnit 5 + Paparazzi test…
Talk on
From Parcelable to @SerializableKuan-Ying Chou21m
Shows how SavedState uses KotlinX Serialization to replace Parcelable boilerplate by annotating data classes with @Serializable and using top-level helpers…
Talk on
47 Refactorings in 45 minutesDmitry Kandalov37m
Live-coding shows 47 refactorings in 45 minutes inside IntelliJ IDEA using the K2 Kotlin plugin while counting changes with a refactoring counter and running…
Talk on
Effective collaboration with backend engineersRomain Piel34m
Defines concrete practices: write RFCs/proposals that include API-change sections and alternatives, publish OpenAPI specs to generate client and server code…
Talk on
Kotlin and Compose Multiplatform patterns for iOS interopJohn O'Reilly37m
Kotlin 2.2.20 ships experimental Swift export while production teams rely on third‑party fixes: Sky (Swift‑Kotlin Interop Enhancer) restores sealed‑class…
Talk on
Understanding keyboard shortcuts in Jetpack ComposeThomas Künneth39m
A sample app called keyboard shortcut demo demonstrates cross‑platform shortcut support by mapping a platform‑agnostic KeyboardShortcut class to Android’s…
Talk on
You are the main thread: Multiplying your productivity with agentsNelson Osacky33m
Practical guide to running parallel dev agents: use Claude or Cursor via Cloud Code, write an agents.mmd file with build and formatter rules, and connect MCPs…
Talk on
Bazel on Android: The Good, The Bad and The UglyValera Zakharov, Erik Kerber41m
Slack migrates Android builds to Bazel, builds the full app target and runs 45,000+ unit tests in CI, and measures ~70% faster test result times in CI with a…
Talk on
No More "Someone Else’s Problem": Tackling Tech Debt at ScaleFlorian Mierzejewski36m
Company with 58 engineers, ~1,000 modules and 300 PRs/week builds a visibility pipeline that extracts SonarQube issues, stores them in an internal DB and…
Talk on
Live App Architecture Debugging with Kotzilla & KoinArnaud Giuliani, Miguel Valdes Faura59m
Live demo wires the Kotzilla SDK to a Koin app with one line and an Android Studio plugin that visualizes the Koin dependency graph and session timeline. The…
Talk on
Mobile-First Setup for AI CodingMoataz Soliman26m
Shows a reproducible, mobile-first AI coding setup: cloud code with set 4.5 and opus 4.1 supply LLM power, context lives in a cloud.md inside the repo, and…
Talk on
The Benevolent Gradle Overlord: Keeping OrderAurimas Liutikas35m
Shows how convention and binary plugins reduce build.gradle churn and how a strict build.json schema limits knobs to allowed toggles; demonstrates enforcement…
Talk on
Surviving and fixing bugs in 3rd-party librariesYury Vlad, Andrei Belous39m
Step‑by‑step options for third‑party crashes: reproduce with real data, use composite builds to edit and debug a library locally, then either publish a frozen…
Talk on
Driving App Reliability with Real Time Monitoring and SLIsEnrico Bruno Del Zotto, Dawid Wiącek37m
Claims a deployable monitoring stack: a KMM library with Firebase + Google Cloud (BigQuery) that tags errors with a session ID per session so feature…
Talk on
Form Frenzy to Form FrameworkAkshay Chordiya28m
A reusable form engine called FormKit renders form models with Jetpack Compose, uses MVVM plus a pluggable navigator and validator, and stores questions…
Talk on
Building a Weather Agent on Android with KoogDean Djermanović34m
Adds the Koog Kotlin dependency and an OpenAI LLM executor, builds an agent with an executor, system prompt, and model; implements two concrete tools—search…
Talk on
Building an IDE plugin for clean code generationRoman Kamyshnikov31m
Builds an Android Studio plugin that clones API DTOs into editable domain models, recursively generates mappers, repository interface and implementation, DI…
Talk on
Measuring and enforcing app health at scaleJack Adams32m
Trainline runs 30–40 Android engineers across 12 teams, 3 million LOC and 580+ modules and measures app health with Play Console vitals, Crashlytics + Firebase…
Talk on
Advanced Techniques for Protecting Android AppsEd Holloway-George38m
Shows concrete defenses: compute a CRC check on classes.dex at startup and block launch if it differs; verify runtime signing fingerprints via the Gradle…
Talk on
How My Android App Learned to Talk to PlantsJames Gatt23m
An IoT greenhouse that collects sensor data with an ESP32S3 network of nodes and uploads JSON snapshots to a Flask API/MySQL backend routed via Cloudflare…
Talk on
Overcoming JavaScript Unsecurities in WebViewsBalázs Gerlei34m
Running JavaScript in Android WebViews is practical but risky: demos show file XHR exfiltration from app assets, JavaScript bridge token leak via timing/race…
Talk on
Monetize your Android app the right wayPerttu Lähteenlahti33m
Shows concrete numbers and a runnable path: Revenue SDK initializes, identifies (anonymous or app user ID), presents configurable native paywalls wired to…
Talk on
Understanding the Kotlin to Dalvik bytecode translationRuben Pieters42m
Walks through a Dalvik recompiler project that uncovers concrete translation bugs and debugging steps: builds go from Kotlin/Java → class files → D8 → DEX →…
Talk on
When Attackers Go Mobile-First: What Developers Need to KnowAnique Sayed21m
Claim: common defenses fail — 60% of Android devices run outdated OS, one in 400 devices is rooted, one in 2500 iOS devices jailbroken, three per thousand…
Talk on
UX & Cognitive AccessibilityFanny Demey, Marie Benoit39m
Gives six concrete design rules—clear organization, enough time, understandable, predictable, adaptability, multiple ways to understand—and shows real app…
Talk on
Low effort, High impact Android performance winsBen Weiss, Ajesh Pai38m
Shows concrete wins: enabling the R8 optimizer yields real numbers — a partner sees 40% faster cold startups, 30% fewer ANRs, 25% better rendering and 14%…
Talk on
Rebuilding Pebble: What a Difference a Decade MakesSteve Penna47m
Rebuilds the Pebble companion apps from scratch with a six‑person company and two mobile engineers using Kotlin Multiplatform, Compose Multiplatform and…
Talk on
How Hard Can a List Be? A Tale of APIs, Perf, and PeopleArtemiy Sobolev25m
A new Wear OS list component called TransformingLazyColumn provides a single dynamic height modifier that drives per‑item scaling and graphics layer…
Talk on
From Debugging to Real-World Tuning: A Practical Guide to Compose PerformanceZheng Dai, Dingkui Jiang, Qifan Zhang32m
TikTok relataes a reproducible Compose performance workflow: use Layout Inspector, BTrace-style traces and macrobenchmark to pinpoint whether bottlenecks sit…
Talk on
A Busy Android App Developers' Guide to PerfettoRahul Ravikumar38m
Perfetto traces collected via the ADB websocket and a ring buffer reveal CPU spikes, frame drops and a high-frequency binder/job churn during app startup…
Talk on
Navigating Dependency Injection with MetroZac Sweers40m
Metro is a Kotlin compiler plugin that implements compile‑time DI by mutating FIR and generating IR so builds do one compilation instead of multiple, claiming…
Talk on
Dual booting for testing and curiosityNiall Scott22m
Shows how to run a second Android installation on real hardware using GSIs and Dynamic System Updates, with step‑by‑step ADB commands to prepare a Pixel…
Talk on
Building a Mobile Game Without an Engine, a Budget, or a ClueJames Cullimore34m
Builds a one‑hand mobile RPG in native Kotlin without Unity or a backend, using Mapbox for the map, XML UI now migrating to Compose, AI plus Fiverr for art…
Talk on
Wearables and Wireless: Bluetooth Internals for the BraveNikheel Vishwas Savant41m
Covers concrete failure modes and fixes for wearables: ghost advertisements from stopping before callbacks, rapid start/stop floods that require reboots, and…
Talk on
From ImageView to Compose: Architecting Image LoadingZeyu Zhang, Rui He41m
Jetpack Compose image loading needs a different architecture: sizing, downsampling, cache keys, prefetching in lists, and scaling semantics require explicit…
Talk on
What's new in AGP 9.0 and beyondChris Warrington31m
AGP 9.0 is a breaking major release that requires Gradle 9, lands a R8 keep-class change (default constructors no longer implied but kept behind a flag for…
Talk on
3D content with Compose MultiplatformErik Hellman33m
Combining Compose Multiplatform with real 3D engines proves trickier than it sounds because Compose/Skia uses 2D orthographic rendering while 3D engines…
Talk on
Building Androidify: an AI-powered Android experienceRebecca Franks, Rob Orgiu35m
An open source Android app converts a user photo into an Android bot using Firebase AI Logic SDK plus ML Kit and a custom fine‑tuned imagine model; image…
Talk on
Crafting delightful Camera & Media experiencesKristina Simakova, Mayuri Khinvasara Khabya38m
Jetpack CameraX and Media3 deliver concrete features: Low light boost with simple one-line integration, real‑time ML effects and a green‑screen pipeline that…
Talk on
Coroutine Suspension MechanicsIoannis Anifantakis, Andrea Della Porta39m
Explains that the Kotlin compiler rewrites every suspend function into a continuation‑passing signature (adds a continuation parameter) and generates a tiny…
Talk on
A pragmatic approach to WebViewsPatrick Brochado23m
Company replaces three platform implementations with one web-rendered feature set and reports faster delivery and instant live updates deploy live updates…
Talk on
Compose at Scale: Stop Unnecessary RecompositionPeng Jiang28m
Claims that tiny code changes can create big CPU bottlenecks by breaking Compose’s skip logic, with common culprits being unstable parameter types, captured…
Talk on
App Work Ahead! Architecture Design for Design LibrariesR. Lee Creasy37m
A design library evolved over 5 years from XML to Compose, layering on Material and automating tokens for Android, web and iOS; it delivers explicit…
Talk on
What's new in Android Studio's AI AgentJose Alcérreca, Simona Milanovic42m
Android Studio Canary’s agent actually runs tools (write file, read file, find files, version lookup, get gradle artifact, get unit test, analyze current file)…
Talk on
Digging Deeper with Subcomposition + Custom Compose LayoutsHuyen Tue Dao44m
Explains when to replace rows/columns with a custom layout to move heavy math from composition into the measure phase, showing a timeline demo that drops from…
Talk on
Shaders are awesomeSebastiano Poggi18m
Shows how to use RuntimeShader with AGSL and SKSL to write fragment shaders for Compose Multiplatform UIs, using uniforms like resolution and time and UV…
Talk on
Structured Concurrency: The paradigm shiftMarcin Moskała32m
Explains structured concurrency with concrete Kotlin coroutines patterns and pitfalls: use coroutineScope/nursery semantics so child coroutines cancel and…
Talk on
A deep dive on the lifecycle-aware coroutines APIsManuel Vicente Vivo30m
Shows when UI should stop collecting (maps location example) and which lifecycle APIs actually stop work: repeatOnLifecycle, flowWithLifecycle…
Talk on
White-Labelling Your Compose and XML UI with Design TokensJoshua Hughes34m
Nutmeg builds a single Android codebase that white‑labels into Nutmeg and Chase UK by mapping Global, Semantic and Component tokens so components ask for…
Talk on
How a Single ß Can Break EverythingVladimir Jovanović31m
Android stores strings as UTF‑16 so emojis become surrogate pairs and a composed family emoji can make .length return 11, not 1; UTF‑8 dominates network IO but…
Talk on
Passkeys on AndroidMario Bodemann29m
A demo Halloween game called Trick or Treat game illustrates passkeys on Android by actually creating credentials, sending a JSON credentialCreateOptions to an…
Talk on
Custom Coroutine Contexts: Seamless TestDispatcher injectionRemco Mokveld36m
Explains a concrete technique that avoids constructor dispatcher injection by adding a custom CoroutineContext element that supplies a DispatcherProvider and…
Talk on
Build times breaking your flow? Learn how to make them fast!Louis Jacomet40m
Shows concrete wins and how they’re achieved: a worst‑case fresh Gradle build downloads and configures everything and can take ~8 minutes, a fully up‑to‑date…
Talk on
Build a modern and expressive Wear OS appChiara Chiappini22m
Material3 Expressive arrives on Wear OS via Compose for Wear 1.5 and shows concrete migration steps: use screen scaffold to get automatic time text and scroll…
Talk on
So I tried to port my app to Android XR 🕶️Julien Salvi43m
Porting an existing cloud phone app to Android XR with Compose XR + Android XR (alpha) proves partly successful: core UI runs in XR using panels, orbiters and…
Talk on
Beyond the UI: Compose as a Foundation for Multiplatform AppsAsh Davies34m
Claims that Compose runtime can manage app state (not just UI) and that Compose Multiplatform removes duplicate presentation logic across Android, desktop and…
Talk on
Mastering Text Input in ComposeMeghan Mehta24m
Shows the new state-based TextField API and replaces onValueChange with input transformation and visualTransformation with output transformation, using a…
Talk on
Prepare for Android XR with Quick Wins and Powerful FeaturesPatrick Fuentes, Jay Abi-Saad32m
Galaxy XR devices arrive and the Jetpack XR SDK is live in developer preview with over 50 published made‑for‑XR apps; use Jetpack Compose for XR (subspace…
Talk on
Compose Multiplatform for iOS: Ready for Production UseSebastian Aigner43m
Compose Multiplatform is stable on iOS with stable APIs with deprecation cycles, hits 60 and 120 fps in scrolling tests, and adds a parallel rendering mode…
Talk on
Views, Compose, Multiplatform - Oh My!Jimmy Ray, Greg Astley38m
Auto Trader moves a server‑driven UI from Views to Jetpack Compose and then Compose Multiplatform incrementally, replacing components with Compose views, using…
Talk on
Kover Your Code: A Practical guide to Android Test CoverageEyad Zebdeh14m
A simple notes app demonstrates integrating Kover into Gradle, adding filters to exclude DI and UI classes, and running cover verify in GitHub Actions to…
Talk on
How to Not Lose Your Identity in 2035Mikhail Dudarev39m
Roadmap for a working mobile digital ID: enrollment via e‑passport NFC or face/pass PIN, storage of non-extractable keys in Android hardware keystore or…
Talk on
Creative Coding with KotlinEeva-Jonna Panula37m
Shows creative coding with Kotlin using Compose Canvas and Compose Multiplatform, building a ghost animation with interactive flag-shaped options drawn on…
Talk on
Edge AI: Driving Agentic Workflows and ProductivityStuart Hubbard18m
Claims on-device AI with the AI Suite SDK running computer vision and small LLMs, cutting cloud tokens and latency while keeping data local. Demonstrations…
Talk on
Guide to Foreground Services on AndroidDomen Lanišnik38m
Step-by-step guide to implement and harden Android foreground services including manifest entries, runtime permissions, and startForeground timing rules with…
Talk on
Multi-coding agent workflowsKevin Tang34m
A background coding agent runs inside Android Studio using isolated git work tree sandboxes to build, lint and autofix merges while the main editor stays…
Talk on
Maximize CI/CD efficiency using AI and a vertically integrated stackNaveen Nazimudeen25m
Shows an actual Bitrise setup that runs an agentic AI stack which analyzes failed builds, spawns a fixer build that edits code, opens a PR and attaches an…
Talk on
Navigating the future with Jetpack Navigation 3Don Turner36m
Live-coding demonstrates Jetpack Navigation 3 by building a two-screen chat app where navigation is literally adding/removing keys from a Compose-backed list…
Talk on
Blazing Fast UI Development with Compose Hot ReloadMárton Braun36m
Live demos show Compose Hot Reload applied to a real Compose Multiplatform desktop app (Cotling Conf sample on GitHub) with about 20 successful reloads during…
Talk 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.