~/conference

droidcon San Francisco 2024

android developers, kotlin multiplatform engineers, mobile platform engineers, mobile architects, engineering managers, developer productivity engineers, mobile security engineers

Jetpack Compose UI; Kotlin Multiplatform (KMP); Gradle configuration cache; Android Studio plugin development; Room KMP database; WebRTC signalling with Ktor; session replay for debugging; gRPC migration strategies; passkeys and digital identity; LeakCanary heap trimming; K2 compiler plugins; CI/CD pipeline optimization

titleauthorlength
Stop Debating. Start Enforcing with Lint RulesStelios Frantzeskakis33m
Argues for replacing architecture debates in PRs with executable lint rules written as unit tests using Consist and Kotest, run via Gradle and GitHub Actions…
Talk on
Speed Trap Ahead - Avoiding Costly Security and Privacy Issues in SDK IntegrationMichael Krueger23m
Now Secure pentests show third‑party SDKs cause most problems: a study for the App Defense Alliance finds 85% failed due to integrated SDKs. Concrete failures…
Talk on
Type safe experimentationPatxi Bocos22m
Generates type-safe Kotlin accessors for Optimizely features and experiments to eliminate string-typo bugs and make unused flags discoverable, using Optimizely…
Talk on
Iteration Speeds with Gradle Configuration CacheAurimas Liutikas38m
Gradle stores and reuses the configuration phase to cut iteration overhead: AndroidX (786 projects) drops a 42s configure+run into about 4s, roughly 32x faster…
Talk on
The Tech Migration Playbook: A Reddit Case StudyLauren Darcey42m
Reddit’s platform team describes how a staged migration actually cuts risk: they attack a 2.5‑hour buildtime problem with targeted big steps, run hackathon…
Talk on
Supercharge Android Studio: Developing Your First PluginIdan Nakav21m
Explains how to build an Android Studio/IntelliJ plugin using the plugin XML, extensions, services, actions and listeners, and the PSI for code inspection…
Talk on
Safe Network API Migration TacticsChris Francis, Ashok Varma27m
Uber migrates high‑QPS JSON HTTP endpoints to gRPC with a requirement of zero downtime and QPS increase under 2% and uses Retrofit/OKHttp, gRPC over HTTP3…
Talk on
Solve your Mobile Bugs with Session ReplayMichelle Zhang19m
Sentry’s mobile session replay sends screenshots from the SDK (default one frame per second) and stitches them with a custom video replayer plus rrweb to…
Talk on
Seamless mobile real-time communication with WebRTCRenaud Mathieu44m
Shows a working WebRTC stack end-to-end: a Ktor websocket signalling server that exchanges SDP and ICE, a client handling ICE/STUN/TURN (uses Google TURN by…
Talk on
Room RenovationsElif Bilgin17m
Room now ships as Room KMP v2.70-alpha1 supporting Android, JVM desktop and native (iOS, macOS, Linux) and requires the Room Gradle plugin, KSP, schema export…
Talk on
Jetpack Compose is Swift (UI).Siamak Ashrafi41m
Argues that Jetpack Compose maps directly to SwiftUI and that knowing Android gets you most of iOS: Jetpack Compose ≈ SwiftUI. Compares Kotlin and Swift…
Talk on
MVWTF: Demystifying Architecture PatternsAdam McNeilly36m
Compares MVC, MVP, MVVM and MVI using a concrete task‑list implementation in Compose with coroutines, StateFlow and Android Architecture Component ViewModel…
Talk on
Why testing is a developer's problemScott Erlanger, Blake Reynolds32m
Argues that test automation must match Agile speed and shows a working solution: Testim/Testm with a virtual mobile grid, record‑and‑replay authoring, variable…
Talk on
Demystifying Pixel Shaders (AGSL)Timo Drick32m
Shows actual AGSL code compiled into a RuntimeShader + ShaderBrush and used as a Compose modifier, passing uniforms like uniform float2 size and animating via…
Talk on
How we brought the Uber Driver App to Android AutoVictor Cervantes, Bhargav Maniyar19m
Ports the Uber Driver app to Android Auto by extending the existing RIBs framework into car screen RIBs, keeping the same interactors and a single data source…
Talk on
Creating websites in Kotlin leveraging Compose HTMLDavid Herman40m
Kobweb is a Kotlin web framework built on Compose HTML that demonstrates live reloading with a dev server and a CLI, automatic routing from a pages folder, and…
Talk on
Mobile Developer Productivity PanelRooz Mohazzabi, Junking Qiu, Ty Smith, Aida Issayeva, Ben Schwab49m
Large orgs report concrete wins: Android teams range from ~95 monthly contributors to 350–400 monthly (600–800 over six months) and monorepos exceed 10M LOC…
Panel on
Reimagining Pagination in Kotlin MultiplatformMatt Ramotar23m
StoreX Paging implements a UDF‑first, normalized store built on Store and Molecule (Compose runtime) that exposes a stateflow of id lists and per‑item…
Talk on
ModularizationDavid Chang, Manuel Nakamurakare30m
Pinterest moves from a monolith to ~450 modules and sees surprising tradeoffs: caching gives 9x faster local builds (450s → 50s) and 3x faster clean builds…
Talk on
Passkeys and digital identity best practicesKateryna Semenova24m
Passkeys replace passwords with public key cryptography and reduce phishing risk; Verizon data shows 80% of breaches are linked to passwords and 58% of US…
Talk on
Module Mayhem: Tales From Shared Business LogicDan Peluso39m
Peloton migrates from two modules to 2 to 2,000 modules to cut build bottlenecks that once caused 30+ minute builds, using Gradle, DTOs and utility modules as…
Talk on
Reldex: scoring the efficiency of app release cyclesPratul Kalia09m
Reldex defines a single release-process score built from six metrics (overall time to release, time to stabilize, stage rollout time, hot fixes during rollout…
Talk on
Lifecycles at Scale: with MultiplatformDinorah Tovar38m
Announces that Lifecycle 2.8.0 is now stable and ships a Kotlin-MVU model with multiplatform compatibility, and demos using Compose Multiplatform to share…
Talk on
Kotlin Multiplatform in an MVVM WorldZachary Sweigart26m
Fair uses Kotlin Multiplatform to share its MVVM domain and data layers, publishing KMP artifacts as Android AARs and a single iOS XCFramework via Jenkins to…
Talk on
Drawing without pain and recompositionVitalii Markus36m
Shows concrete fixes that cut needless recompositions and allocations by moving reads out of composition into layout or drawing phases, with working examples…
Talk on
How Slack mobile does accessibilityHye Jung Choi18m
Slack Mobile runs with one Android accessibility engineer, no dedicated iOS hire yet and plans to recruit one, and no manual QA so engineers own accessibility…
Talk on
Exploring Android Accessibility MalwareAviv Gil-Ad20m
Demonstrates a working Android accessibility service malware that automates credential stuffing by parsing combo lists, using a C2 to receive target app names…
Talk on
DevSecOps: Balancing development and securityPat Shueh34m
Claims that Zimperium scans every Play Store app and finds 80% of Android apps lack obfuscation, demos showing APKs decompiled to reveal API keys and SSL…
Talk on
Distributing big AI models in mobile appsBeatriz Vinal Murciano33m
SwiftKey is a billion‑download keyboard that keeps the APK small (20 MB download / 55 MB installed) while adding AI by choosing between cloud and on‑device…
Talk on
Build KMP Offline-First AppsBen Chatelain39m
Claims ability to get iOS and Android syncing in about two days by wiring a Ditto SDK into a Kotlin Multiplatform app; core uses a Rust engine exposed via C…
Talk on
Extending kotlin-inject for fun & profitRalf Wondratschek38m
Company replaces Dagger+Anvil with kotlin-inject + KSP to get compile-time DI across Kotlin Multiplatform, writes a custom KSP processor using KotlinPoet and…
Talk on
Deriving derived state: derivedStateOf explainedZach Klippenstein39m
derivedStateOf is a custom Compose state that reduces invalidations and caches per-snapshot results so expensive or lazily-used calculations (example: sorting…
Talk on
Improving Developer Experience On Byte At a TimeIshan Khanna36m
Build system middleware ByteX uses the Android Gradle Transform API and ASM to host isolated bytecode plugins that run as a single transform task, process…
Talk on
Deploying Android AOSP at ScaleKristian Golding17m
AOSP-based, headless solar cameras with LTE Wi‑Fi and Bluetooth run on 71,000 devices across 45 states and process up to 6 billion images per day with ~500…
Talk on
Reexamining Developer Advice from the First droidconLauren Darcey, Shane Conder33m
Compares advice from 2009 to 2024 and finds which rules still matter: keep long work off the UI thread, use StrictMode for thread/resource issues, test on real…
Talk on
Adaptive Layouts in ComposeAlex Vanyo35m
Explains why Compose’s composition/layout/draw phases force tradeoffs between first frame correctness and switching which composables run, and shows practical…
Talk on
Gamifying Reduction of Technical DebtValera Zakharov47m
A config-driven Code Health Score system quantifies and gamifies technical debt by merging Android lint and Detect SAR outputs, applying weighted checks, and…
Talk on
How to make Kotlin compile 2x faster?Penguin Jiao36m
Aiming to halve Kotlin compile time on a huge monorepo, the team uses Gradle + Kotlin compiler tweaks: remove unused dependencies and split modules to raise…
Talk on
Goodness, Gracious, Great Builds of GradleEric Kuck26m
Gradle at Reddit is replaced by a layered internal plugin set that enforces consistent build files, migrates dependencies, and speeds CI: a settings plugin…
Talk on
How we automated code maintenanceAmeya Ketkar, Gautam Korlam25m
Describes a production system that generates ready to merge PRs to automate refactors and cleanups across Kotlin, Java, Swift, JS, Go and more using a…
Talk on
Meta-programming with K2 compiler pluginsTadeas Kriz42m
Builds several K2 compiler plugins: a declaration checker that enforces lowercase class names (reports warnings), an assignment transformer that rewrites…
Talk on
Jetpack Compose Navigation: Beyond The BasicsMiguel Kano02m
Covers making navigation-compose routes type-safe by replacing string routes with type-safe route classes, cutting boilerplate and preventing runtime ID…
Talk on
Artifact TransformsNelson Osacky, Inaki Villar38m
A Gradle/Android build often runs far more transformation work than tasks: an assembled debug can execute ~5,000 artifact transforms versus ~2,000 tasks, and…
Talk on
Better, Faster, and Stronger CI/CD PipelineYohan Hartanto43m
Overview of Uber's Android CI: monorepo with ~12,000 modules, dual build systems migrating from Bazel+Bazel? (transcript says basil) and Gradle, moved CI from…
Talk on
Universal heap trimming with LeakCanary 3Pierre-Yves Ricau37m
Adds a heap-diff detector to LeakCanary 3 that runs during automated scenarios (Espresso, Robolectric, UIAutomator or JVM tests) and takes periodic heap dumps…
Talk on
Creating delightful camera experiencesJayant Chowdhary, Jag Saund, Kailiang Chen41m
Recommendation: prefer CameraX for common apps and Camera2 only for raw reprocessing or high‑speed capture; CameraX simplifies setup to ~15–20 lines. New APIs…
Talk on
Android Studio Tips and Tricks Part 3Michael Bailey41m
Shows concrete Studio shortcuts and inspections: enable presentation assistant and IDE full zoom for live demos; use change signature refactoring (or Alt‑Enter…
Talk on
400 fragments in 40 daysAdam Greenberg27m
Pinterest migrates roughly 445 fragments in 40 days from a bespoke screen manager into Jetpack Navigation by pivoting from a full rewrite to a phased plan…
Talk on
Add Generative AI capabilities to your Android appTerence Zhang, Thomas Ezan39m
Gemini Nano runs on device via AI Core in Android 14 and targets small models for local GenAI, Gemini Nano (2–3B params), benefiting from LoRA fine‑tuning…
Talk on
Simple Recipes to Enhance Developer ProductivityAida Issayeva40m
Large monorepo of ~2 million lines and 294 modules with ~150 builds/day and 110 contributors reduces PR build time from ~68 to ~27 minutes — a 61% total win —…
Talk on
Building for the Future of AndroidDan Galpin, Ash Nohe43m
Android 15 enforces edge‑to‑edge when you move to targetSdk 35, so handle window insets for custom composables (three‑button nav is translucent); enable…
Talk on
20 Nuggets in 20 Minutes - Get more from your CIBen Boral20m
Shows concrete CI moves: run an LLM code review on diffs using Bitrise+OpenAI; benchmark runners—4‑core 27m → 16‑core 10m and an M1 Max Android build is…
Talk on
Complement your media editing pipeline with Media3Nevin Mital15m
Media3’s Transformer module provides concrete APIs for transcoding, trimming, custom GL shader effects and compositions built from edited media item sequences…
Talk on
Boosting Compose UI from Sluggish to SnappyAkshay Chordiya, Tasha Ramesh40m
A Compose card stack that initially misses frame deadlines by ~50–60 ms gets rebuilt as a sandboxed “Janky Tinder” and profiled with macrobenchmark frame…
Talk on
Exploring Navigation Libraries for ComposeRikin Marfatia46m
Compares three concrete Compose solutions by building the same multi‑module app three times with a bottom nav, a feed→detail flow, and deep links so you can…
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.