droidcon Berlin 2024
2024-07-03..2024-07-05
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]
who it's for
Android developers, Kotlin developers, Compose developers, mobile QA engineers, app performance engineers, security engineers, automotive app developers
topics
Android app shrinking with R8; Perfetto system tracing and jank; Kotlin coroutines in production; Kotlin binary compatibility practices; Compose multiplatform adoption; Compose UI testing and previews; On-device ML with Google AI Edge; OTA updates for Android OS; Android Automotive app development; Code obfuscation and anti-tamper; Passwordless auth with Passkeys; Video editing with Media3
| title | author | length |
|---|---|---|
| Advanced Android app shrinking techniques | Christophe Beyls | 36m |
Compares concrete builds of the FODM companion app and Tusky, using Android Studio APK Analyzer, Gradle dependency trees and R8 to measure effects: switching… | ||
| TDD with AI? | Matthias Geisler | 35m |
Shows using Gemini in Android Studio to generate tests, fixtures and a repository implementation, claiming obvious wins for simple tasks and documentation but… | ||
| Decipher users' behavior using Clarity | Ibrahim Radwan | 26m |
Microsoft Clarity shows actual evidence: session recordings that reconstruct screens from drawing commands (not screenshots), heat maps aggregated by viewport… | ||
| Perfetto Your App for Perfect Performance | Yevhen Pekutovskyi | 13m |
Perfetto is a browser-based systemwide tracer that records CPU, threads, wake locks and UI events and shows jank when a frame exceeds 16.6 ms; traces come from… | ||
| Kotlin Library API Design and Compatibility Challenges | Arkadii Ivanov | 17m |
Covers concrete compatibility failures and concrete fixes: adding a parameter to a public method creates a new signature and breaks binary compatibility… | ||
| Attack & Defend, Defend & Monitor, Monitor & Respond | Keir Storrie | 20m |
Overview of practical defenses: describes real-world Android malware families like Gold Digger/Gold Pickax, shows how repackaging and credential leakage are… | ||
| DAAS: Debugging as a skill! | Himanshu Singh | 36m |
A practical debugging recipe that names tools, numbers and outcomes: use Logcat and breakpoints to inspect runtime values, run the Android debugger to step… | ||
| Testing in Practice: Keeping Your Tests Concise and Declarative | Ash Davies | 29m |
Argues that mocks cause brittle, interaction-only tests and recommends replacing them with Kotlin idioms: factory functions for injectable constructors… | ||
| Side Project to $1k in Monthly Revenue and Beyond | Jeffrey Bunn | 34m |
One app grows to 1,000,000 installs and $50,000 monthly revenue and is sold in 2018, and industry data shows 17% of apps reach $1k/month. Practical tactics… | ||
| How easy is it to draw on GoogleMaps using Compose? | Luca Nicoletti | 28m |
Google Maps Compose is now split into three libraries and the Android Map Compose 5.0.4 composable exposes markers, marker info windows, clusters group markers… | ||
| Tips, Best Practices, and Real-world Insights | Sergei Maslov | 33m |
Saving to Room via suspend DAO fails because viewModelScope gets canceled when the screen closes, so writes never finish; use an independent repository scope… | ||
| Android Open-source repositories 101 | Enrique López Mañas | 39m |
Recommends using Apache 2.0 license for permissive use with patent protection, automating dependency updates with Dependabot or Renovate, and running automated… | ||
| Sneak Peek at the Screenshot Testing Landscape in 2024 | Sergio Sastre Flórez | 19m |
Compares six real tools (Paparazzi, Roborazzi, Compose Preview, Shot, Drop, Android Testify) with concrete tradeoffs: Paparazzi vs Roborazzi require AGP or… | ||
| Exploring Kotlin Symbol Processing: A Practical Guide | Dean Djermanović | 35m |
Builds a small peoplehub app that stores people in a local DB and uses Kotlin Symbol Processing to auto‑generate a DBMapper interface plus an implementation… | ||
| Actionable App Performance Measurement | Ben Weiss | 36m |
Practical recipe for faster apps: upgrade to AGP8, enable R8 and ship baseline profiles plus startup profiles; macrobenchmark generates profiles and measures… | ||
| Stop Debating. Start Enforcing with Lint Rules | Stelios Frantzeskakis | 33m |
Argues that architectural debates in PRs become automated checks by writing lint rules with Consist, which expresses rules as Consist lint rules as unit tests… | ||
| Test your mobile and web app with a single test suite | Pieter Snyman | 14m |
Claims a single Playwright-based suite runs mobile and web tests via an Appetize integration called Appetize App Recorder and shows a live demo uploading an… | ||
| from regular to Android Automotive app development | Sven Falk, Marc Becker | 36m |
Built an experimental arrow parking feature for the Stanara One that needed camera and sensor access and per-vehicle shared settings, and ends up using a… | ||
| On-Device Machine Learning with Google AI Edge | Paul Ruiz | 42m |
A practical walkthrough showing how to run on‑device inference with MediaPipe Task with TensorFlow Lite, covering image classification, object detection and… | ||
| Enhancing Mobile App Security | Manikanta Garikipati | 36m |
Company app fails a VAPT and reveals plaintext and recoverable ciphertext; automated Frida scripts expose key algorithms and show keys retrievable in ~30… | ||
| Distributing Over-the-Air Updates for Android OS | gor Kalkov-Streitz | 34m |
AOSP generates over‑the‑air packages directly from target files using the OTAA from target files script and the platform includes a sample updater app; full… | ||
| ZePass: Digital Badges communicating | Milos Marinkovic, Mario Bodemann | 25m |
Hardware badge runs a CircuitPython fork called ZOS driving a low‑res e‑ink display and uses Floyd–Steinberg dithering to convert images. Android control moves… | ||
| Master the Art of Code Obfuscation from Simple to Advanced | Corvin Grigutsch | 36m |
Shows that ProGuard/R8 only gives a baseline and demonstrates concrete obfuscation: renaming methods by replacing every 'i' with 'u', inserting dead bytecode… | ||
| Of Cocktails and Mocktails. | Frank Tamre | 35m |
Team of seven engineers reveals two repeatable patterns: mocktail teams (homogeneous, avoidant, low ownership) and cocktail teams (strong opinions, unresolved… | ||
| Coroutine Puzzlers | Anton Dudakov | 41m |
Interactive live quiz shows 20+ Kotlin coroutine puzzles with runnable code: exact outputs for launch vs coroutineScope, delay is suspend so tasks overlap —… | ||
| Podcasting 101 | Nicola Corti | 19m |
84 episodes, roughly 23,000 downloads total, bi-weekly schedule and two hours booked to record a 45-minute show; remote recording uses Streamyard with guest… | ||
| Conflicts in Vulnerability Management and Patching | Antonio Nappa | 23m |
Compares two concrete failure modes: baseband bugs require deep protocol knowledge and targeted radio calls so they rarely make headlines but can crash and… | ||
| Type Safety and clear error objects in Kotlin | Janusz Leidgens | 19m |
Uses a concrete updateTimer(id, minutes, seconds) example to show why three Ints lose meaning and cause silent bugs; replaces minute/second Ints with a… | ||
| Practical Patterns for Kotlin Coroutines in Production | Marcin Moskała | 37m |
Practical, actionable rules for Kotlin coroutines: never use async immediately await is pointless — start asyncs together and await later or use… | ||
| Building for the Future of Android | Niharika Arora | 28m |
Android 15 forces edge-to-edge S2H (status bar and nav gestures transparent) and expands inset handling left/right; enabling predictive back animations… | ||
| AOSP Development Environment | Viktor Mukha, Roman Illarionov | 37m |
Concrete setup for AOSP Android 14 builds using Ubuntu LTS requires ~400 GB disk and ~64 GB RAM and full builds take hours while small incremental changes… | ||
| The state of code coverage for Kotlin | Evgeny Mandrikov, Marharyta Nedzelska | 38m |
Compares actual tools and failures: JaCoCo and JetBrains Coverage generally work but mis-map compiler-generated bytecode (try-with-resources, Kotlin inline… | ||
| multi-modal AI to avoid eating takeaways | Maia Grotepass, Ivan Pletinskij | 27m |
Built an Android Kotlin Multiplatform app that sends an image and prompt and returns a structured grocery list plus a recipe, implemented with Kotlin… | ||
| Trust Yourself – How to Release to Production with Confidence | Eyal Yovel | 14m |
Compares concrete tooling and workflows: Appium: cross‑platform, multi‑language (Java, JS, Python, Ruby, C#), client‑server architecture so tests run slower… | ||
| How to train your designer? | Dora Makszy | 45m |
Argues that handing over a Figma file with connected screens, documented components and pre-handover comments cuts questions and prevents missed details that… | ||
| What everyone can learn from building a framework | Eliza Camber | 43m |
Built a reusable Android gaming framework called AGF framework that produces MVP apps by composing tested components and features, backed by a small AGF… | ||
| Hotfix Heaven: Why In-App Updates Are a MUST | James Cullimore | 35m |
Shows concrete setup: uses the Google Play Core in‑app updates library with Flexible vs Immediate flows, sets priority 0–5 and staleness/backoff days, and… | ||
| The Lazy (Meta)programmer's Guide to Hilt Extensions | Fabian Shallari | 28m |
Claim: replace repetitive Dagger binding modules with one annotation that KSP generates into installable Hilt modules. Uses KSP and KotlinPoet to implement an… | ||
| Crash course to Compose for TV | Paul Lammertsma | 23m |
Android TV claims 47% year‑over‑year growth and now reaches 220 million monthly active devices, and migrating apps to app bundles yields ~20% size reduction… | ||
| Lessons Learned from a Surprisingly Long Career in Tech | Chet Haase | 36m |
Career overview states a 35 year span in graphics programming with stints on Java Swing and Java2D, work on the Flash rendering engine and Flex (learned… | ||
| Monetization for Automotive AOSP Apps | Nikolai Glazkov, Nuno Palma | 18m |
Foria’s platform ships an OEM-embedded module plus a developer SDK that enable in‑app purchases across 23 car brands and ~200 apps now, with a worldwide… | ||
| Software Defined Vehicle and Android Automotive OS | Marius Mailat | 31m |
Claims Android Automotive moves from infotainment to core SDV workloads and forecasts that many current tier‑ones will disappear; a commercial Spark layer runs… | ||
| The Future of 3rd Party App Ecosystems in Cars | Niklas Weiss, Juhani Lehtimäki, Jose Freitas, Casper Kessels, Danny Preussler, Gerhard Grossberger, Sven Eckoldt | 35m |
OEMs are rolling out Android Automotive stores (BMW already ships a store client) while vendors offer white‑label stores and QA bridges; current tooling is… | ||
| Android in Automotive, the Real Fragmentation | Juhani Lehtimäki | 18m |
Claim: almost all cars run Android within five years, but OEM theming and API changes mean an app that works in one brand often fails in another. Polestar and… | ||
| The Future of In-Car Entertainment | Mattijs de Valk | 09m |
Frtoarts runs a white-label app store for cars, delivered roughly 200 applications since 2017 and now sits inside Forvia which supplies parts to about one in… | ||
| Build apps for Android Auto and Android Automotive OS | Ben Sagmoe | 34m |
Android Auto is phone‑powered and present in about 98% of cars sold while Android Automotive OS runs in‑car (first ship Polestar 2 in 2020, Android Automotive… | ||
| Building and Launching Android Automotive Apps to the App Store | Maxim Lebold, Saverio Labella, Matthias Ostermeier | 44m |
Builds a real Android Automotive app end to end using the Android Automotive emulator (Google/Volvo images, Pixel tablet, cuttlefish) and the Ignite portal… | ||
| Releasing an Android, iOS, and macOS app with KMP | Marco Gomiero | 34m |
FitFlow is a Kotlin Multiplatform app shipping on Android, iOS (SwiftUI) and macOS (Compose Multiplatform JVM) and it reaches stores after solving signing… | ||
| Koin vs. Kotlin-inject | Sebastian Lobato Genco | 17m |
Comparison of Koin and Kotlin‑inject for a Kotlin Multiplatform library integrated into an existing app serving ~40M users shows Koin wins here because its… | ||
| Uniting Native SDKs into KMP | Giancarlo Buenaflor | 13m |
Reuses existing Android and iOS Sentry SDKs to produce a Kotlin Multiplatform MVP that calls each native init and shares a single common API, built with… | ||
| Crime Scene InvestiGITor | Ben Kadel | 39m |
Covers Git internals (commits, trees, blobs under .git/objects) and concrete CLI workflows: git cat-file and git rev-list to inspect objects, using reflog to… | ||
| Composing an API the *right* way | Márton Braun | 39m |
Summary of actionable rules from the AndroidX Compose guidelines and JetBrains Compose Multiplatform details: use camelCase for constant-like objects and nouns… | ||
| AndroidX Lifecycle's Path to Multiplatform | Marcello Galhardo | 29m |
AndroidX Lifecycle moves to Kotlin Multiplatform by extracting shared logic (a new viewModelProviderImplementation) while keeping Android-only constructors and… | ||
| Working with NFC and smart cards | Dmitrii Romanenko | 32m |
Explains how Android talks to NFC cards using ISO/IEC 7816-4 and EMV commands, showing real SELECT (A4), GET PROCESSING OPTIONS and READ RECORD exchanges and… | ||
| Developing Android Automotive Apps for the VW Group | Saverio Labella, David Nguyen | 39m |
VW Group ships a white‑label Harmon Ignite Store app marketplace integrated into car head units, with payment via Samsung Checkout and a digital wallet, plus… | ||
| Best practices for evolving Kotlin libraries | Leonid Startsev | 36m |
Explains concrete JVM compatibility pitfalls (renaming named parameters, adding defaulted params breaks binary) and shows a practical workflow: use the binary… | ||
| Exploring Android Accessibility Malware | Tamir Daniel | 28m |
Shows a working Android proof of concept that uses AccessibilityService to automate logins on installed apps by crawling the window node tree, clicking UI… | ||
| Securing your app: Classic Android vs Other frameworks | Jordi Ventayol | 19m |
Flutter compiles Dart into a native libapp that embeds a serialized Dart snapshot, leaving plaintext strings in the read‑only data segment and only stripping… | ||
| an opinionated look at Googles library collection | Thomas Künneth | 38m |
Google's Jetpack lists 115 artifacts but many are duplicates, outdated, or poorly categorized; documentation misses subordinate modules and shows legacy… | ||
| Is This App Accessible? A Live Testing Demo | Eeva-Jonna Panula | 40m |
Live demo tests the Clue period‑tracking app with Accessibility Scanner (recording screenshots), Switch Access driven by volume buttons, and maxed font/display… | ||
| Behind the mirror, Kotlin Reflection | Danny Preussler | 37m |
Kotlin reflection exploration shows exactly what works and how: use KClass/KType/KFunction/KProperty to inspect constructors, nullability and suspend… | ||
| Our Journey to Fully Automated Weekly Releases | Marjana Karzek | 29m |
Company replaces biweekly manual validation with an automated pipeline that runs end to end tests on PRs via the GitHub merge queue and Flank, verifies UI with… | ||
| Unblocking The Main Thread: Solving ANRs and Frozen Frames | Sinan Kozak | 40m |
Apps freeze at 700 ms and ANRs trigger at 5 s; profiling shows vector drawable init costing ~78 ms each, encrypted SharedPreferences can take up to ~500 ms and… | ||
| Mobile Developer Productivity Engineering | Hakkim Alavudeen | 37m |
Zelando runs ~70 million Android installs, a 40% app-visit growth since 2018, and centralizes app platform work into a modularization effort called project… | ||
| Building a Scalable Android Platform | Monica Muntean, Adrian Cruceanu | 28m |
Deutsche Bank consolidates multiple mobile banking, 2FA and trading products into a single, modular Android platform that started in 2019 and evolves over… | ||
| What’s New in Compose Multiplatform | Márton Braun, Sebastian Aigner | 42m |
Live demo builds a working expense tracker with shared Compose UI and AndroidX ViewModel running on Android iOS and desktop, using Kotlin Multiplatform. Code… | ||
| Incoming new message for you | Sven Eckoldt, Nils Frers | 24m |
Carriad uses Android Automotive OS plus Harman’s app store to ship real car apps across VW Group brands; example: an Incoming Messenger app that consolidates… | ||
| Vehicle Abstraction with Open Source Technologies | Sven Erik Jeroschewski | 30m |
Open source Vehicle Signal Specification (VSS vehicle signal specification) provides a tree of standardized signals plus rules to extend per model, adopted by… | ||
| Feature Runners - code, build, run, repeat | Sandeep Nair | 15m |
Large apps get a fast shortcut: create a small mini app Gradle module that depends only on the target feature and shared modules so it never goes into the… | ||
| Effective App Monitoring in Production | Mauro Frezza, Alejandra Stamato | 38m |
Top-down monitoring tracks user actions from viewmodels into a system task object and pushes latency, availability and error metrics to New Relic; dashboards… | ||
| Solving Poly-Repo Dependency Nightmares | Mohamed Gamal | 34m |
SumUp confronts polyrepo dependency drift by building Gradle tooling: custom build-logic repo and published settings plugins that generate version catalogs… | ||
| Kotlin Language Features in 2.0 and Beyond | Michail Zarečenskij | 38m |
Kotlin 2.0 ships a rewritten front end (FIR) after ~5 years and ~80 subsystems changes, focused on performance and correctness; the compiler now dugars complex… | ||
| Hitchhiker’s Guide to Kotlin Multiplatform Libraries | John O'Reilly | 34m |
Five years of concrete examples: 11 KMP samples showing cross‑platform apps (Android, iOS, desktop, web) that actually run with shared view models and shared… | ||
| Getting to a green build with caching on CI | Tamás Bazsonyi | 19m |
Claimed 95% faster ideal speedups but typical real projects see 30–60% gains; a concrete test shows Amaze file manager 28:43→3:48. Setup of Bitrise remote… | ||
| Passwordless App with Passkey | Mustafa Khaled | 38m |
Claims that 81% of password breaches come from weak passwords and 34% of users reset passwords monthly, and reports of 95% fewer resets and a 4x increase in… | ||
| Your app could use a secondary screen! | Daniel Neamtu | 19m |
Android supports secondary screens since Android 7 with activities resizable by default and Android 12 changing compatibility behavior; apps should check the… | ||
| Going 100%* Compose Multiplatform | Richard Schattauer | 33m |
Practical rundown for adopting Compose Multiplatform: project setup recommends JetBrains web wizard not the Android Studio plugin; Compose Multiplatform 1.6.11… | ||
| That's not a phone... | Erik Hellman | 38m |
Survey of real, shipped Android hardware from tiny phones to cars, with hard numbers and failure causes: Xperia X10 mini forced Android to accept smaller… | ||
| The Android Experience seen from an iOS dev's perspective | Michael Hitzker | 16m |
An iOS developer implements a reusable “what’s new” popup on Android using Android Studio, Kotlin and Jetpack Compose, struggles to get a transparent activity… | ||
| SEQUEL SQL for Android Developers | Kai Koenig | 42m |
SQL is 50 years old and Android uses embedded SQLite (available since the early 2000s) with limits like concurrent reads but sequential writes, slower disk I/O… | ||
| Hardware development with KMP and Compose Desktop | Enrique Ramírez | 34m |
A working prototype called Matrix8 wires an ADG2188 8x8 switch to a Raspberry Pi and uses Kotlin Multiplatform with the JVM desktop target and Compose… | ||
| Improve the build times of your project | Antoni Castejón García | 33m |
N26 reduces full-app clean assemble from 24m → 6m (−75%) by flattening Gradle dependency graph and removing a single huge "inject legacy" model; graph height… | ||
| Speechless, droidcon edition | Chet Haase | 45m |
A live PowerPoint karaoke set uses audience prompts to invent concrete absurdities: claims include 2,300 attendees, the conference app is explicitly Droidcon… | ||
| Guide to Foreground Services | Domen Lanišnik | 38m |
Android 14 requires a mandatory foreground service type declared in the manifest and passed to startForeground or setForeground, or the app gets security or… | ||
| Three ways to use AI on Android | Marcel Pintó Biescas | 31m |
MVP is a clipboard reply app that uses the Gini SDK to generate replies, but the initial hardcoded API key is stolen from the APK and drains credits. Moving… | ||
| TIDAL App with Jetpack Compose | Vladimir Jovanović, Safal Kumar Ghimire | 35m |
TIDAL’s homepage is rewritten using Jetpack Compose and a clean repository architecture in three months, shrinking roughly 29 modules to three types… | ||
| Tap it! Shake it! Fling it! Sheep it! | Nicole Terc | 32m |
Builds a tappable, draggable, flingable and shoppable Canvas chip using Jetpack Compose and Kotlin Multiplatform with working code on GitHub. Tap toggles scale… | ||
| Jetpack Compose: Drawing without pain and recomposition | Vitalii Markus | 36m |
Shows concrete fixes that cut recomposition and allocations: replace state-read modifiers (alpha, offset, background) with versions that read state in layout… | ||
| Demystifying Pixel Shaders (AGSL) | Timo Drick | 39m |
Shows how to write AGSL pixel shaders that run compiled on the GPU and integrate into Jetpack Compose via a runtime shader → brush created in drawWithCache and… | ||
| Advanced Layout Animations in Compose | Doris Liu, Rebecca Franks | 37m |
Explains how Compose implements layout animations by adding a new lookahead pass that measures target bounds so animations chase stable layouts instead of… | ||
| Building an AR app with Compose & OpenGL ES | Pau Guillamon | 36m |
Concrete recipe for a working AR prototype: use Compose + OpenGL ES + ARCore, host GL on a SurfaceView/TextureView via AndroidView or AndroidExternalSurface… | ||
| Real-Time Communication in Android | Mehmet Burak Akgün | 14m |
Shows a Kotlin Multiplatform Android app talking to a ketor backend using HTTP, SSE and WebSockets, with a Compose UI offering three buttons for REST, SSE and… | ||
| Testing Tricks with Kotlin | Marc Reichelt | 36m |
Kotlin test hacks that speed up debugging: enable Gradle configuration cache to make repeated runs much faster, use IntelliJ’s run automatically and… | ||
| Bringing Predictive Back Gestures to your App | Tim Brüggenthies | 17m |
Timeline of platform changes (onBackInvoked in Android 13, onBackAnimationCallback in 14, enabled by default in 15) maps to a concrete recipe: use the… | ||
| Practical Tips and Tricks to Improve Your Compose Previews | István Juhos | 33m |
Shows concrete fixes: use showBackground=true and UI mode parameters to get light/dark screenshots in Android Studio, group variants with MultiPreview… | ||
| What everyone can learn from building a framework | Eliza Camber | 43m |
An internal Android framework called AGF reduces time-to-MVP by shipping reusable components and features, using a Figma design tokens with modes pipeline to… | ||
| How to keep your app awake in a GSM phone app | Peter K. Brandt | 38m |
Custom GSMR “railcom” app replaces the default dialer and implements InCallService and CallScreeningService plus a foreground service and device admin to stay… | ||
| Open Source Community Building | Andreas Itzchak Rehberg, Antonios Hazim | 40m |
An open source collective reports three developers, five apps and about a thousand community members, resurrecting three abandoned apps; a 1,000-project study… | ||
| Compose UI Testing beyond layouts | Andrei Sorokin | 38m |
Builds a Compose UI test stack that runs 400+ end-to-end regression tests with mocked network and navigation, cutting full run time from 55 to 25 minutes by… | ||
| Feature Teams vs. Platform Pain | Petar Ljubic | 33m |
Claims that swapping org structure doesn’t fix underlying issues: one company moves from platform teams to feature teams and back, creating a loop of the same… | ||
| Video Editing on Android with Media3 | Kristina Simakova | 18m |
Media3’s Transformer module provides concrete APIs for transcoding, trimming, composing and effects, with claimed device-level optimizations and support back… | ||
| Design System 3.0 with Jetpack Compose at N26 | Arne Herdick, Shivam Verma | 31m |
N26 migrates its Compose design system from rigid view entities to a slot-based API, converting about 70% migrated of components since September 2023… | ||
| How “Write-Once/Deploy Everywhere” is Becoming a Reality | Gabriel Gautron, Daniele Bonaldo, Melina Mascolo | 32m |
Claims a path to write-once/deploy-everywhere by standardizing APIs and delivery: a Kovesa SDK (ADL interface + Kotlin/Flow wrapper) plus an ADL-based mock… | ||
| nothing matches | ||