droidcon London 2024
2024-10-31..2024-11-01
London, United Kingdom
[droidcon London 2019, droidcon London 2022, Droidcon London 2023, droidcon London 2024, droidcon London 2025]
| title | author | length |
|---|---|---|
| Ten things you heard about testing that might be wrong | Danny Preussler | 39m |
Argues that most unit test failures come from implementation changes not bugs, so tests should verify behavior not structure; warns that heavy mocking and DI… | ||
| Tools that can help you to target newer SDK level | Fung Lam | 32m |
Tools and checks that actually change work include the SDK Upgrade Assistant that scans a project and lists Android 15 behavior changes, Android Studio lint… | ||
| Unblocking The Main Thread: Solving ANRS and Frozen Frames | Sinan Kozak | 39m |
Defines slow render as >60 ms, frozen frame as >700 ms and ANR as >5 s and shows concrete fixes: replace heavy vectors with WebP and async image loading via… | ||
| Upgrading Meta's Kotlin Infrastructure to K2 | Ruslan Latypov | 26m |
Meta upgrades Kotlin front end to K2 across a heavy Buck-based Android toolchain, migrating 95% of models and achieving 20% faster builds on average. Migration… | ||
| Text in Compose: Beyond the Basics | Anastasia Soboleva | 39m |
Explains how Compose turns characters into pixels via StaticLayout → Minikin → HarfBuzz → Skia/FreeType and why Unicode, ligatures, bidi and shaping matter… | ||
| Your App Could Use a Secondary Screen! | Daniel Neamtu | 18m |
Explains how to run Android apps on a secondary display using DisplayManager and WindowMetrics API, and how to launch an activity onto another screen with… | ||
| Wireless protocols for the next generation IoT devices | Erik Hellman | 41m |
Compares 2.4 GHz Wi‑Fi and Bluetooth: Wi‑Fi uses wide channels for higher throughput while Bluetooth does frequency hopping for robustness, hence lower speed… | ||
| Monetizing Your Side Project to $1k in Monthly Revenue | Jeffrey Bunn | 36m |
Shows a repeatable path: apps hit $1k/mo in ~17% of cases per RevenueCat, and one meal‑planning app reaches 1 million installs and $50k/month then sells; ASO… | ||
| The Future of Android, Kotlin and Everything | Kevin Galligan | 42m |
🎤 Talk: The Future of Android, Kotlin and Everything
👤 Speaker: Kevin Galligan
📍 Event: droidcon London 2024
📅 Date: October 31st - November 1st… | ||
| [REDACTED]: How to keep your app's secrets, secret | Ed Holloway-George | 41m |
Claim: roughly 55% of mobile apps have hard‑coded secrets; about 30% use Firebase and ~5% of those expose data; ~0.5% leak AWS keys. Practical fixes shown: run… | ||
| A journey in Android's BLE world | Paolo Rotolo | 34m |
Practical walkthrough of Android BLE behavior: permission splits (scan/advertise/connect), scanning quirks across OEMs, and why libraries smooth differences… | ||
| Cutting-Edge-to-Edge in Android 15 | Timo Drick | 38m |
Android 15 forces edge-to-edge so apps must handle window insets; this session shows concrete fixes in Jetpack Compose: use WindowInsetsPadding and… | ||
| Developing Trusted Applications for Trusted Execution Environments and vTEEs | Mikhail Dudarev | 38m |
Claims that embedding a TEE inside an app via a virtual TEE removes vendor lock and lets developers run Java Card-style trusted apps without special hardware… | ||
| Deep Dive into the Compose Compiler | Mohit Sarveiya | 41m |
Shows exactly how Compose transforms code into a runtime data structure and what actually changes during recomposition, with concrete numbers and APIs: the… | ||
| Demystifying Code Signing | Neal Michie | 22m |
Demonstrates using APK Signer to sign and resign an APK, unzipping the APK to show META-INF/manifest.mf contains SHA‑256 hashes of every file, and reinstalling… | ||
| Designing scalable Compose APIs | Simona Milanovic | 38m |
Guidelines for building a reusable Jetpack Compose chip: design for one problem, split variants into low-level basic and higher-level opinionated layers, and… | ||
| Building Auto Trader's SDUI platform | Harriet Taylor, Jimmy Ray | 40m |
Auto Trader builds a server-driven UI platform called composable that serves JSON schemas from a Spring Boot front end and shares Kotlin data models across… | ||
| Embracing 16 KB Page Sizes in Android | Chrystian Vieyra Cortes | 38m |
Android 15 introduces 16 KB page sizes and apps with native .so files must be rebuilt or risk crashes; rebuilding means updating to Gradle plugin 8.5.1+… | ||
| Dynamic Flow, the Wise approach to server driven UI | Phellipe Silvar | 41m |
Wise builds a server-driven UI called Dynamic Flow that ships UI instructions (layout array) plus a data contract (JSON Schema) so the backend makes decisions… | ||
| Exploring Android Accessibility Malware | Gil Hartman | 32m |
Shows a working Android malware prototype that uses accessibility service hooks to perform credential stuffing from infected user devices: a background… | ||
| Exploring Kotlin Symbol Processing: A Practical Guide | Dean Djermanović | 36m |
Demonstrates using Kotlin Symbol Processing (KSP) plus KotlinPoet to auto‑generate mapper interfaces and implementations (Peoplehub: Person ↔ PersonEntity)… | ||
| General Purpose GPU computing in simple steps | Konstantin Zolotov | 30m |
Shows how to get realtime CameraX filters by using CameraX surface processor (ImageProcessor is capture-only; SurfaceProcessor requires Vulkan/OpenGL or native… | ||
| Don't Build to Last: Strategies for Designing and Productionising Experiments | Kate Moksina | 19m |
Runs about two experiments per month, argues for backend-driven deep link variant routing on Android to decouple releases, recommends caching assignment at… | ||
| Elevated Dependency Injection: Going Beyond the Basics with Custom Hilt Components | Steven Kideckel | 28m |
Patreon integrates a custom Hilt component called user component that scopes dependencies per signed‑in user, providing a per‑user coroutine scope and… | ||
| Effective App Monitoring in Production | Mauro Frezza, Alejandra Stamato | 42m |
Shows a concrete monitoring implementation: a small monitor class that emits system tasks from ViewModel, domain and data layers into New Relic, with KPIs like… | ||
| Gradle: The Build System That Loves To Hate You | Aurimas Liutikas | 44m |
Android X doubles from ~400 to ~800 Gradle projects and grows Java/Kotlin from ~1M to >3M LOC while CI assemble-debug averages ~11s, but maintaining that… | ||
| Passwordless Future!! | Ayushi Gupta | 26m |
Claims that passkeys (FIDO-style key pairs) eliminate passwords by storing a private key in device hardware and sending only the public key to servers, with… | ||
| Let's build a performance measuring tool from scratch | Alexandre Moureaux | 40m |
Live demo shows how to measure per-thread CPU by calling adb shell top -H and by reading /proc entries (parsing /proc/<pid>/task//stat ), converting clock… | ||
| Rethinking Apps with Local-First Architecture | Richard Das | 18m |
Shows a concrete local-first stack: the Ditto SDK creates a self-organizing mesh with a “rainbow” multitransport connection (Wi‑Fi, Bluetooth, cellular… | ||
| Mistakes you make using Kotlin Coroutines | Marcin Moskała | 39m |
Lists the concrete pitfalls and fixes: using async with immediate await (no parallelism), wrapping work in a child launch inside coroutineScope (redundant)… | ||
| Fortify the Fort: Think outside the security | Goran Minov | 21m |
Octa blocks about 3 billion attacks per month and Google once mitigated a DDoS peaking at 398 million requests per second. A conference app built without login… | ||
| Enter the Metaverse: Android Apps on Meta Horizon OS | Jonathan Wendorf | 27m |
Meta Quest runs Android-based Meta Horizon OS on Snapdragon XR2 Gen 2 hardware (Quest 3 and 3S) and supports 2D panels plus immersive apps; 30% of users run at… | ||
| Overcoming Insecurities in WebViews | Balázs Gerlei | 34m |
Walks through concrete WebView fixes and demos: demonstrates a breakout from an embedded map to Google Search, shows JavaScript running in‑process on… | ||
| Navigation in a Multiplatform World | Ash Davies | 40m |
Kotlin Multiplatform reaches production maturity (stable since 1.9.2) and ecosystem size jumps to roughly 1,200 KMP libraries in 2023, Jetpack Compose… | ||
| Improving App Performance With Custom Thread Pools | Tin Novakovic | 11m |
A small app that fetches Flickr images every 200m reveals dozens of threads: coroutines ~5, OkHttp ~5, Room ~4 plus OS and Google services — easily 60+ threads… | ||
| Personalizing Accessibility | Eeva-Jonna Panula | 37m |
Shows concrete, working Android examples: a settings-backed toggle that switches between icon‑only buttons with contentDescription and buttons with text labels… | ||
| Jetpack Compose: Drawing without pain and recomposition | Vitalii Markus | 39m |
Jetpack Compose performance improves by deferring state reads out of composition into measurement or drawing so rapid animations don’t trigger full… | ||
| Hardware Development with KMP and Compose Desktop | Enrique Ramírez | 34m |
Project builds a hardware guitar-pedal switcher that actually routes analog pedals and proves the whole stack works end to end: a custom PCB with an ADG2188… | ||
| How to Optimize, Validate and Deploy ML Models on Device | Bhushan Sonawane, Meghan Stronach | 01h 01m |
Platform compiles, quantizes and profiles models into deployable artifacts for Android using TF Lite, ONNX or Qualcomm AI Engine (QNN) runtimes, running each… | ||
| Level up Your SDKs With KMP - no rewrite required! | Wojtek Kaliciński | 41m |
PubNub builds a Kotlin Multiplatform wrapper that delegates to existing native SDKs so one codebase publishes Kotlin, Swift and JS APIs; iOS integration uses… | ||
| How We Build Spotify for Android Automotive | Walid Mazout, Danielle Vass | 30m |
Build process focuses on concrete constraints and integrations: Spotify supplies mostly data to Android Automotive media templates, owning only login and… | ||
| Scalable Testing Strategies | Jose Alcérreca, Adarsh Fernando | 35m |
Introduces a five-layer testing pyramid that separates unit, component, feature, application and release-candidate tests, recommends matching test size to… | ||
| Rewind and Resolve: A deep dive into building Session Replay for Android | Roman Zavarnitsyn | 47m |
Builds a session replay that captures 1 FPS screenshots, masks sensitive text per line using view layout and compose semantics, and stitches 5‑second segments… | ||
| Securing Android: Tackling Advanced Threats and Enhancing App Security | Mohamed Kerroumi | 34m |
Shows a demo ripping an APK (RootBeer) to reveal clear strings, then compares R8/ProGuard obfuscation to a commercial approach that converts Java into native… | ||
| Seamless mobile real-time communication with WebRTC | Renaud Mathieu | 44m |
A cloud‑gaming remote‑controller prototype uses WebRTC data channels for low‑latency input and video over UDP, a tiny Ktor websocket signaling server (five… | ||
| Streamlining Android app development and release processes | Tamás Bazsonyi | 21m |
CI/CD advice with concrete numbers and tools: use a crawl/walk/run/fly roadmap (automate, parallelize, cache, remote cache), run UI tests across devices with… | ||
| Securing the Unseen: Advanced Threats, Best Practices & Challenges in Mobile App Security | Mohamed Kerroumi | 21m |
Analysis of 1 million apps shows roughly 80% unprotected against reverse engineering or tampering, with Magisk forks (300+ contributors) and Frida scripts used… | ||
| User Initiated Data Transfer Jobs | Tushar Varshney | 23m |
Explains how Android’s User Initiated Data Transfer jobs (Android 14+) let user-started uploads/downloads run longer than normal background work by using… | ||
| Project Sparkles: How Compose is Changing Android Studio | Sebastiano Poggi, Chris Sinco | 31m |
Project Sparkles migrates key Android Studio UI to Compose for Desktop using the Juul component library, shipping task-based profilers in Koala 2 (built with… | ||
| Rethinking Home | Daniel Horowitz | 31m |
Spotify Home migration rewrites a monolithic, server‑driven surface into a client-first reusable architecture with content‑unaware components and local… | ||
| Video Editing On Android With Media3 | Kristina Simakova | 19m |
Media3’s Transformer module claims to cut editing boilerplate (example: grayscale drops from ~300 to ~30 lines) and already sees broad usage (v1.0.0, ~30% of… | ||
| Why WhatsApp Uses ListView | Hadi Tok | 27m |
WhatsApp keeps a legacy ListView with CursorAdapter on the chat screen because it supports dozens of message layouts, reads pages from the DB on demand, and… | ||
| Streamlining Permission Request in Jetpack Compose | Mayowa Egbewunmi | 36m |
Builds a reusable Compose flow that removes boilerplate by centralising permission logic: a permission state manager plus a permission UI wrapper coordinate… | ||
| Why is Adaptive Layout a Nightmare? | Gerard Paligot, David Ta | 38m |
A conference app is reworked into an adaptive layout using WindowManager, WindowSizeClass and Google’s two-pane scaffolds (supporting pane and list-detail) to… | ||
| Run it Locally! How to run your emulators in the cloud. | Petras Vičiūnas | 25m |
Builds an emulator-as-a-service on Kubernetes that uses scrcpy sockets instead of WebRTC, exposes control via a gRPC API and an EMU CLI connect which… | ||
| The Gesture Animations Dance | Nicole Terc | 32m |
Builds a dancing chip using Kotlin Multiplatform and the Jetpack Compose Animatable API, with concrete code for tap-to-scale (toggle 1 → 1.2), drag using… | ||
| What's New in Compose Multiplatform | Márton Braun, Sebastian Aigner | 43m |
Live demo builds a shared Compose UI expense tracker that actually runs on Android, iOS and desktop and persists data with Room (multiplatform) via DAOs and… | ||
| Swift Cheatsheet for Android/Kotlin Developers | Domen Lanišnik | 39m |
Practical side‑by‑side mapping of Swift features to Kotlin equivalents with concrete code patterns and gotchas, covering optionals and if let mapping, early… | ||
| What's New in Android 15 Security? | Scott Alexander-Bown | 36m |
Android 15 raises the minimum installable target API to Android 7 so apps must target Nougat+ to install, tightens non‑SDK access (run static analysis like… | ||
| AndroidX Lifecycle's Path To Multiplatform | Marcello Galhardo | 39m |
AndroidX Lifecycle becomes Kotlin Multiplatform compatible and reaches stable after a focused January–May 2024 effort that removes Android-only dependencies… | ||
| Building State Holders in Compose with Molecule | Jack Adams | 27m |
Argues that Molecule uses the Compose runtime to build state holders (presentation logic, not UI), letting composable functions be turned into StateFlow via… | ||
| Asynchrony and the infinite conveyor belt: Advanced Coroutines and Flows | Tom Colvin | 36m |
Coroutines are tasks that can suspend and cancellation happens only when they yield — cancellation is implemented by cancellation throws CancellationException… | ||
| Crime Scene Investigitor | Ben Kadel | 35m |
Explains Git internals (commits, trees, blobs, objects in .git/objects) and shows concrete CLI tools to investigate and fix repo crime: using git cat-file and… | ||
| Creating Narratives: Shaping TalkBack with Compose Semantics | Sachin Sapkale | 19m |
Shows how Jetpack Compose and Android TalkBack interact via the semantic tree and demos using mergeDescendants to collapse a row so users swipe once instead of… | ||
| Creating a Custom Compose Layout, Step-By-Step | Huyen Tue Dao | 41m |
Step‑by‑step builds a schedule UI with a layout composable that measures sessions by duration, uses constraints and placeables to position items, and applies… | ||
| A Snapshot Preview of Paparazzi 2.0 | John Rodriguez | 39m |
Preview shows Paparazzi 2.0 rewrites resource loading to stop depending on AGP, adds application and dynamic feature support, localization, accessibility… | ||
| Android driver - application of Android device in RC vehicle development | Tomasz Słuszniak | 32m |
An Android phone acts as the primary controller while an Arduino acts as a USB-host serial adapter powering sensors from the phone battery and driving motors… | ||
| Click-free releases & the making of a CLI app | Adam Ahmed | 30m |
A travel‑app team replaces a brittle Ruby Fastlane workflow with a Kotlin JVM CLI called Kronos, adds unit and integration tests (including fake file‑system… | ||
| nothing matches | ||