droidcon Berlin 2025
2025-09-24..2025-09-26
Berlin, Germany
[droidcon Berlin 2015, droidcon Berlin 2016, droidcon Berlin 2018, droidCon Berlin 2019, droidcon Berlin 2021, droidcon Berlin 2022, droidcon Berlin 2023, droidcon Berlin 2024, droidcon Berlin 2025]
| title | author | length |
|---|---|---|
| Live App Architecture Debugging with Kotzilla & Koin | Arnaud Giuliani | 01h 03m |
Live demos use the Now in Android sample migrated to Koin plus a JetBrains Koin plugin and the Codzilla Kotzilla platform to capture real user sessions, show a… | ||
| Edge AI: Driving Agentic Workflows and Productivity | Ole Schulenburg | 29m |
Rugged Android devices run an AI Suite SDK that ships five ready models—barcode localizer, product recognizer, text OCR, feature extractor and shelf… | ||
| How to Optimize, Validate and Deploy ML Models On Device | Ashvin Kumar, Meghan Stronach | 37m |
Qualcomm AIHub accepts PyTorch or ONNX models, runs a compile job to fuse ops and emit TensorFlow Lite or Qualcomm AI Engine Direct assets, offers an optional… | ||
| Reimagining Mobile App Testing with Vision AI-Powered Agents | Yash Varyani | 23m |
Vision-language agents replace brittle locator tests (Espresso/Appium) by acting on pixels, using models like Quen, UI Venus and TARS, a command-specific… | ||
| Driving App Stability & Performance Zero to Hero | Hakan Bagci | 44m |
Defined a single Application Quality Score (AQS) that combines seven sub-metrics (crash‑free users, ANRs, frozen frames, slow rendering, app… | ||
| Verifying LLM Input and Output for Developers | Enrique López Mañas | 35m |
Practical checklist for Android apps: sanitize user text with regex and content-moderation APIs, enforce a token budget by precomputing prompt length and… | ||
| A Guide to Loading Animations in Jetpack Compose | Kinnera Priya Putti | 17m |
Practical Compose patterns for loading: combine a circular progress and explicit status text, disable only relevant UI and add a cancel action; implement a… | ||
| Building and Shipping Android Automotive Apps | Nuno Palma, Stefán, Florian Hirschmann | 12m |
Hands‑on workshop shows a working pipeline: build Android Automotive apps with Android 14 and Android Studio, run them on the Appning emulator and tablet, and… | ||
| Chasing 60 FPS: Frame Time Profiling in Jetpack Compose | Himanshu Singh | 28m |
Contains step‑by‑step use of JankStats, Layout Inspector, system tracing and macrobenchmark tooling; explains baseline profiles and how a production‑equivalent… | ||
| Reworking a Core Feature: Migrating from XML to Compose Maps | Rene Ferrari | 29m |
Migrates Tractive’s map from XML/RxJava MVP to Compose Maps plus a Redux-style controller architecture, replacing bitmap-only markers with a composable pin and… | ||
| Turn Any Android Devices into an AI Sensor Hub | Akshaya Hassan Nagendra, Rajan Bharatkumar Mistry | 30m |
Step-by-step workflow that turns any Android handset or wearable into an on-device ML sensor hub using Edge Impulse and an Android sample app: scan the project… | ||
| Migrating to a Single-Activity Architecture in a Modular App | Manikanta Garikipati | 38m |
Migration reduces a 60+ activity monolith to a small set of hosts using Android Navigation: teams convert flows into nav graphs, merge 60→~12 then replace many… | ||
| Deploy AI with Simulink | Christoph Stockhammer, Rajan Bharatkumar Mistry | 32m |
Shows a Simulink-to-hardware workflow that generates optimized C/C++ and deploys an ONNX model to Qualcomm Hexagon NPU and ADSP using the MathWorks hardware… | ||
| User-Focused Observability 101 For Android Devs | Hanson Ho | 19m |
User-focused observability uses context and relationships to explain production telemetry changes, not just surface metrics. Example: a 25% drop in checkout… | ||
| Debugging and Performance Tuning in a Coroutine World | Marcin Moskała | 35m |
Practical checklist for coroutine bugs and slow paths: shows specific use of kotlinx-coroutines-debug and BlockHound, logs enriched with coroutine context and… | ||
| How a Single ß Can Break Everything | Vladimir Jovanović | 27m |
Shows a real bug: username length capped at 30 breaks when emojis and modifiers expand code units and initials generation picks the wrong substring. Explains… | ||
| WebViews: fast-tracking features in mobile apps | Patrick Brochado | 15m |
Claims a reproducible path to ship cross‑platform features faster by embedding mobile web pages into apps, backed by a five‑pillar capability: token forwarding… | ||
| Future-proofing your Android release process | Keegan Rush | 24m |
Runway surveys 300 mobile engineers and finds 49% cite manual steps as their biggest release frustration and teams spend 5 hours per release on low-value… | ||
| Supercharging App Startup with HTTP/3: Lessons from Foodpanda | Elvis Chidera | 34m |
Foodpanda (DeliveryHero) moves app startup traffic to HTTP/3 using Cronet and a custom bridge called okronet that keeps OkHttp APIs. Measured results: 51%… | ||
| Making the world spin, does it have to be so hard? | David Göransson | 18m |
A lightweight offline 3D globe built with Kotlin + Jetpack Compose and an OpenGL ES renderer uses Natural Earth vector data postprocessed into a ~1 MB… | ||
| Inside Android: Context, Binder IPC, Zygote | Ioannis Anifantakis | 32m |
Tapping an app icon sends a startActivity to ATMS which consults the package manager, asks AMS if the process exists, and if not the AMS requests Zygote to… | ||
| How My Android App Learned to Talk to Plants | James Gatt | 22m |
An IoT greenhouse prototype collects soil moisture, pH, CO₂, light and wind and runs actuators (PWM fan, pump at 20% moisture, linear actuator for vents, servo… | ||
| Hacking the Hackers’ Code: Inside Android Malware | Caner Kaya | 32m |
Live demo runs on a Samsung S23 (not rooted) where an app requests Accessibility permission, waits ~40 minutes, then captures username, password (even masked… | ||
| Custom Codecs with KotlinX Serialization | Marcello Galhardo | 34m |
Built a custom SaveState encoder/decoder on top of KotlinX Serialization that roundtrips serializable objects into a multiplatform SaveState (Android Bundle on… | ||
| Using platform-specific code in Kotlin Multiplatform | Russell Wolf | 38m |
Argues that full sharing isn’t the goal and that small, well‑defined platform implementations unlock real reuse: examples include a Kotlin Multiplatform… | ||
| How Agentic AI Is Reshaping Mobile App Quality | Kenny Johnston | 29m |
Claims that agentic AI plus a mobile observability stack can cut the 50–60% of team time spent on maintenance by using on-device models, agents that parse… | ||
| Optimize the Text-To-Speech experience for blind users | Alexander Hoffmann | 20m |
With TalkBack on Android the practical fixes are: add semantic headings so users can jump by section, use semantics modifier and set heading, mark errors with… | ||
| Dependencies and Kotlin/Native | Tadeas Kriz | 39m |
Kotlin/Native forces you to reconcile JVM artifacts and real native binaries: Gradle/Kotlin produce IR (klib) then a second compile+link step that emits… | ||
| Speeding up inner dev loop with Gradle Configuration Cache | Alex Semin, Mikhail Lopatkin | 42m |
Demonstrates that enabling Configuration Cache and fixing serialization issues cuts configuration time from over 15 seconds to about 1 second on their example… | ||
| Firebender's AI Coding Agent - Reverse engineered | Kevin Tang | 35m |
Firebender is an Android Studio plugin that takes a Figma URL, pulls the preview screenshot, scans the repo for color.kt and theme.kt, then iterates with… | ||
| QA Agents for Android: How AI Is Changing the Game in Testing | Sorina Weber, Ron Junior van Caan | 19m |
Claim: AskUI’s Vision Agent automates any UI by asking in natural language and a controller translates LLM reasoning into taps and keystrokes using screenshots… | ||
| Code review for Android is broken | Ayushi Gupta, Aravind Putrevu | 36m |
Claims that CodeRabbit cuts review time by 30–50% review time reduction by running a sandboxed clone of the repo, executing 40+ static and security tools… | ||
| Automating Screenshot Testing in Compose Multiplatform | Sergio Sastre Flórez | 44m |
Shows how to turn Compose Multiplatform @Previews into automated screenshot tests using an actual repo and live demo, generating files for Android, common and… | ||
| ZePatch: Embroidery on Android | Mario Bodemann | 29m |
ZePatch converts Jetpack Compose Composables into stitch-ready files: it renders a Composable to a bitmap, reduces colors to three via a histogram and CIELAB… | ||
| Privacy-First Age Verification on Android | Brahyam Meneses, Paulina Strychacz | 32m |
An EU reference implementation for privacy-first age checks is available as open source: Android/iOS apps plus backend, built on the EUDI wallet libraries and… | ||
| Deep-Diving Android Performance with Perfetto | Akniyet Arysbayev | 39m |
Perfetto recording workflows cover device developer tools, the web UI recorder and CLI automation (usable in CI) and target capture via traceur/adb/Jetpack… | ||
| Developing Wear OS Watch Faces | Garan Jenkin, Julia Samartseva | 18m |
Covers Watch Face Format v4, tools and a live demo that builds an APK on the phone, validates it, and pushes it to the watch where it installs and can be set… | ||
| AI Agents Face-Off: Same App, Multiple Frameworks | Elaine Dias Batista | 40m |
Nine Android apps get built in one week by three AI agents Claude (Cloud), Gemini CLI, Juny across Native Android, Flutter and React Native using the same… | ||
| Kotlin on CRaC – new JVM features to speed things up | Marc Reichelt | 40m |
Shows concrete numbers and how to reproduce them: CRaC (Coordinated Restore at Checkpoint) with an Azul Zulu CRaC JDK on Linux plus Docker cuts a Spring Boot… | ||
| Modern Android App Security: Protecting Code, Keys, and Data | Yang-Giun Ro | 24m |
Concrete incidents and measurable gaps: a config change in a buy‑now‑pay‑later app exposes other users’ data, a tampered SDK hits over 100 million devices, a… | ||
| Breaking the CI/CD Bottleneck: Run Smart, Not Just Remote | Ashraf Atef | 19m |
CI/CD waits shrink by moving repeatable checks to developers' laptops: configure pre-commit/post-commit hooks to run local workflows (unit/UI tests, build) via… | ||
| Maestro: Reliable E2E testing made easy | Zhanibek Marshal | 19m |
End-to-end mobile tests become readable scripts that launch an APK, tap by text or id, type inputs, assert visibility, and reuse flows with setup in under 5… | ||
| Systems Design interviews for people who hate Systems Design interviews | Chris Ward | 32m |
Practical checklist for surviving a systems design interview: focus on structuring a timebox to 45 minutes with a high-level diagram first, then one deep dive… | ||
| When MediaProjection Isn't Enough | István Juhos, Francisco Franco | 43m |
Claim: MediaProjection causes OS fragmentation and UX friction so a custom native in‑app recorder is built and shipped. Implementation uses pixel copy and… | ||
| Setup Wizard of OS | Emil Schoenawa | 19m |
Describes a working setup wizard for SumUp Android terminals that replaces the launcher by declaring home intent + priority=1 intent filter and the system-only… | ||
| Strumming up a music player with CMP 🤘 | Renaud Mathieu | 47m |
Builds a customer-facing player called Groove Box using Compose Multiplatform with a Ktor server streaming MP3s, shared Kotlin code and expect/actual platform… | ||
| Supporting stylus input on Android using Jetpack Ink | Thomas Künneth | 21m |
Jetpack Ink provides low latency inking with modular pieces for strokes, brush and rendering plus geometry authoring and storage and is used by Pixel circle to… | ||
| Android to Polyglot Backend Dev | Nelson Osacky | 29m |
Moves from Kotlin UI work to spinning up TypeScript and Python backends using Cursor, Claude and ChatGPT, then rewrites TS features into Python after an… | ||
| Breaking Up with Big ViewModels | Stelios Frantzeskakis | 35m |
Breaks a 1,376-line ViewModel into multiple, screen-scoped ViewModels backed by a shared Mediator that holds only transient UI state; a gallery example uses… | ||
| Gradle Without The Guesswork: A Guide for Kotlin Developers | Filip Dolník | 38m |
Explains why Gradle is a platform driven by plugins, shows the three-phase lifecycle and how tasks are inputs->outputs, and teaches concrete fixes: switch the… | ||
| Beyond the Noise: Effective Management of Non-Fatal Issues | Jakub Aniola | 18m |
At Qonto Android teams handle about 600,000 non-fatal events/month across ~60 developers and 550 modules, and Crashlytics shows the events but Crashlytics… | ||
| The ViewModel Performance Trap:When State Management Bites Back | Sinan Kozak | 44m |
Shows that ViewModel construction often blocks the main thread long enough to break rendering — >16 ms causes jank, >500 ms can freeze or ANR — and traces… | ||
| The Impact of Micro-Optimizations on Large-Scale Apps | Damian Burke | 35m |
Shows measured wins not theory for Android apps including 50% inflation-time reduction when replacing conditional UI with view stubs, and a measurable drop in… | ||
| How to write a mock-free app | Ronaldo Pace | 19m |
Argues that avoiding Mockito/MockK yields simpler, more reliable tests by replacing interface+fake boilerplate with Kotlin features: use fun interfaces… | ||
| Faster Feedback Cut Gradle Build and Pipeline Times in Half | James Cullimore | 32m |
Claims a reproducible 50% reduction in Gradle and CI times on a production Android app by changing gradle.properties, upgrading JDK and Kotlin, and swapping… | ||
| Blazing Fast UI Development with Compose Hot Reload | Márton Braun | 33m |
Compose Hot Reload gives live UI updates on a running Compose desktop JVM app without relaunching, keeping most mutable state while loading new bytecode via a… | ||
| Android to Full-Stack: A Devs Journey to the Great Unknown | Danny Preussler | 36m |
Claims concrete transferability: Android architecture, coroutines and Compose map to back-end and web patterns so ramp-up is fast but junior-level in new… | ||
| Maximize development efficiency with expert CI/CD strategies | Tamás Bazsonyi | 20m |
Company with 10 engineers running ~50 builds a day and 20 minute average builds uses Bitrise and Gradle to cut that time by combining three concrete changes… | ||
| Compose Multiplatform for iOS: Ready for Production Use | Sebastian Aigner | 41m |
Compose Multiplatform targets iOS as stable and production-ready with an IntelliJ/Android Studio Kotlin Multiplatform plugin that adds wizards, pre‑flight… | ||
| What’s Appning on AAOS? | Stefan Postolache, Nuno Palma | 19m |
Appning is shipping a developer payment SDK that mimics mobile billing, handles tax and invoicing, and is testable against a provided apping emulator (Android… | ||
| Next-gen video codecs and HDR formats in Android Multimedia | Raj Mankad, Vinay Pandurangi | 33m |
Claims hardware APV support on Snapdragon Gen5 with an intra‑frame, royalty‑free codec that yields about 10% smaller files than ProRes, supports 8K and… | ||
| From Dashboard to Driver Display | Bruno Vunderl | 13m |
Demonstrates shipping Android Automotive apps onto non‑Android driver clusters by streaming a chosen activity via H.264 1080p stream using Qt’s ActivityView… | ||
| Doing more with Virtualization | Abhinit Sinha, Filip Grzeszczak | 34m |
Describes a virtualization stack that runs AAOS/Cuttlefish on hypervisors, links virtual ECUs and Artos simulators, and hosts instances in cloud or PC for… | ||
| AIDL HAL by Example: Using Hardware from Android Application | Viktor Mukha | 30m |
Built an AIDL HAL for an Infineon 60 GHz radar plus a system service and app that stream processed frames and demonstrate presence and gesture detection, with… | ||
| Get more mileage out of your app with Android for Cars | Paul Lammertsma | 16m |
Android for Cars claims wide reach — 98% of new cars support Android Auto and over 200+ million cars run Android in some form, with EV charging averaging 42… | ||
| Open source and Android Automotive OS | Chris Simmonds | 37m |
Android Automotive OS sits on AOSP but major pieces are closed: BSPs, VHALs, proprietary codecs and vendor drivers force OEMs to choose between licensing… | ||
| Android for Cars third party ecosystem | Antonio Roa-Valverde | 17m |
Practical rundown of publishing Android Auto vs Android Automotive apps with concrete numbers and pain points: Google Play lists 220 published apps and shows… | ||
| TDD with AI? | Matthias Geisler | 45m |
Explores whether Claude, Cursor and agentic tools actually speed TDD workflows and reports concrete results: experienced devs see up to 12% speedup with AI… | ||
| Accessing native macOS API in Compose Multiplatform | Marco Gomiero | 36m |
Shows how to get iCloud working from a Compose Multiplatform desktop app by compiling Kotlin/Native + JNI into a macOS dynamic library, exporting methods with… | ||
| Building Automotive-Grade Experience | Qendrim Zhuniqi, Saverio Labella, Hatem Azzouni, Daniel Lueddecke, Jens Schneider | 35m |
Harman frames a full toolchain: Ready Sequence Loop spins up browser-based virtual targets and links to a device farm so developers deploy APKs, run CI-driven… | ||
| Android Wifi Under the Hood | Rish Bhardwaj | 33m |
Tracing a call from ConnectivityManager.requestNetwork to kernel reveals that a 0.1% race in driver and country‑code loading makes a car hotspot fall back to… | ||
| It's time to develop apps for Android cars | Chris Simmonds, Sabine Hofschen, Gabriel Gautron | 32m |
Android Automotive is rolling into Volvo, Ford, GM, BMW, Honda and more and the claim is 70% by 2028; app stores (Appling by Forvia and others) already host… | ||
| Navigating the Roadblocks to European Accessibility Act | Maxim Malisciuc | 36m |
Explains how a legacy Android app is brought toward EAA compliance with concrete results: EU deadline 28 June 2025 and 5‑year transition; audited against WCAG… | ||
| Reinventing App Testing with Agentic Apps | Syed Hamid | 18m |
Sophie demonstrates agentic app testing that runs ~1,000,000 tests/month and uses LLMs plus UI XML/screenshots to generate, execute and triage tests on real… | ||
| What I Learned from Publishing Libraries to Maven Central | Nicola Corti | 40m |
Ten years of publishing yields concrete rules: libraries exceed 100 million downloads per year, CI must sign artifacts with in-memory PGP keys so GPG happens… | ||
| Crafting Idiomatic APIs with Kotlin and Compose | Ash Davies | 38m |
Shows concrete Kotlin and Compose techniques: leverage DSLs, inline functions, property delegates and Kotlin idioms like default parameters, lazy and the Elvis… | ||
| It's All About Focus - and Accessibility | Eeva-Jonna Panula | 37m |
Explains that Android has two distinct focuses—input/keyboard focus and accessibility/screen‑reader focus—and shows Compose fixes: use… | ||
| Biometric Authentication, the Zebra way | Daniel Neamtu | 21m |
Zebra Identity Guardian implements a lock‑screen app that uses encrypted QR badges (public/private certificate keys) to export and import facial biometric… | ||
| Empathetic UX with progress-centric notifications | Tom Colvin | 37m |
Android 16 adds Notification.ProgressStyle so notifications show multi-stage checkpoints with colored progress points, segment lengths and a moving tracker… | ||
| info.plist and the Android manifest | Thomas Künneth | 21m |
Five concrete takeaways: info.plist must include permission dialog texts or the app crashes and App Store rejects permission strings crash the app if missing… | ||
| Integrating Kotlin Code into the Gradle Build Process | Michael Ehrmann | 22m |
Example builds Kotlin source from JSON design tokens, registers a Gradle task that runs before Kotlin compilation and writes files into build/generated/source… | ||
| Understanding the Kotlin to Dalvik bytecode translation | Ruben Pieters | 35m |
Kotlin/Java compiles to class files, D8 produces .dex, and ART may interpret, JIT or AOT compile — and concrete surprises happen: an overloaded method invoked… | ||
| Extending Android XR’s Reality | Mario Bodemann | 21m |
Claims that existing Android apps run largely unchanged in XR while spatial features require only a few APIs; uses Jetpack XR plus Kotlin Compose, ViewModel… | ||
| 2025: On‑Device AI Goes Mainstream on Android | Vivien Dollinger | 23m |
Edge AI already runs on phones: Gemma 3 4B ≈3.2 GB (4‑bit) proves small LLMs fit offline, paired with on‑device vector database / RAG for semantic search. Demo… | ||
| Writing a Kotlin Compiler Plugin | Xavier F. Gouchet | 36m |
Shows how to build a real Kotlin compiler plugin from JetBrains’ compiler-plugin-template with three modules (annotations, compiler, Gradle hook), hooks into… | ||
| Build your android app without the Android Gradle Plugin | Rafa Moreno | 44m |
Replaces AGP with a minimal custom Gradle plugin that actually runs AAPT2 to compile resources, merges manifests into a single AndroidManifest.xml, invokes… | ||
| Make your composition pause | Andrei Shikov | 27m |
Compose runtime introduces pausable composition in the upcoming Compose 1.10 that splits the heavy initial composition across frames by using compiler-emitted… | ||
| Building an app for the Multi-Device world | Francesco Romano | 28m |
Practical guide to making Android apps adapt from phones to tablets, foldables, TVs and desktop-style windows: use Jetpack WindowManager 1.5 with the new… | ||
| Monetize your Android app the right way | Perttu Lähteenlahti | 34m |
Explains concrete monetization choices for Android: use ads for scale, consumables for games, subscriptions for predictable revenue, and a new virtual… | ||
| Tracking app responsiveness at scale using JankStats | Francisco Aguilera | 20m |
Bitdrift integrates JankStats (Jetpack, ~5 KB) into production observability to record per-frame durations and categories, attach a frame listener to the… | ||
| Escape from Planet Regex - Kotlin to the Rescue | Ben Kadel | 39m |
Covers concrete regex techniques and how Kotlin actually runs them: Kotlin’s Regex wraps Java Pattern, use raw strings (triple quotes) to avoid escaping, pass… | ||
| Adapting Android Apps for Multiple Screens Compose-First Approach | Rob Orgiu | 29m |
A Compose-first approach adapts two real apps (Androidify and Jetstream) to phones, TVs, tablets, foldables, XR and external monitors by using Jetpack Compose… | ||
| The Easing Symphony: AnimationSpec in detail! | Nicole Terc | 24m |
Builds a working music visualizer using Compose Multiplatform and KMP with Android using MediaPlayer and MediaExtractor iOS using AVAudioPlayer and desktop… | ||
| Cultivating Your App: Planting the Seeds for Android 16 Success | Ataul Munim | 13m |
Android 16 corresponds to API 36 with an optional minor SDK 36.1 adds SDK_INT_FULL to detect minor-release APIs at runtime, Play will require targeting API 36… | ||
| Navigating the future with Jetpack Navigation 3 | Don Turner | 39m |
Live-coding shows Jetpack Navigation 3 integrated into a simple chat app: a backstack of route objects, a nav display that observes it, and an entry provider… | ||
| App Security from Necessary Evil to Performance Advantage | Ruben Pieters | 15m |
Explains a concrete three-step flow: R8 minify for shrinking and basic name obfuscation, running baseline profiles to get about a 30% startup improvement via… | ||
| Embracing the Chaos: Investigating Production Madness | Pierre-Yves Ricau | 41m |
Debugging process shows concrete wins: query logs in Snowflake expose slow devices tied to a USB barcode scanner froze GC path in AOSP (bug present since 2013… | ||
| Keynote - Android Exploits & Insights | Lauren Darcey | 51m |
Argues that large language models are effectively trained on community content—Stack Overflow, conference transcripts and books—and shows a concrete experiment… | ||
| Keynote - The Future of Android...And How to Prepare For It | Erik Hellman, Manuel Vicente Vivo, Sebastian Aigner, Nicole Terc, Alejandra Stammato | 44m |
Panel predicts AI will generate much UI code while humans focus on architecture, observability and testing; recommend Compose Multiplatform for cross‑shipping… | ||
| nothing matches | ||