~/conference

droidcon London 2024

titleauthorlength
Ten things you heard about testing that might be wrongDanny Preussler39m
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…
Talk on
Tools that can help you to target newer SDK levelFung Lam32m
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…
Talk on
Unblocking The Main Thread: Solving ANRS and Frozen FramesSinan Kozak39m
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…
Talk on
Upgrading Meta's Kotlin Infrastructure to K2Ruslan Latypov26m
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…
Talk on
Text in Compose: Beyond the BasicsAnastasia Soboleva39m
Explains how Compose turns characters into pixels via StaticLayout → Minikin → HarfBuzz → Skia/FreeType and why Unicode, ligatures, bidi and shaping matter…
Talk on
Your App Could Use a Secondary Screen!Daniel Neamtu18m
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…
Talk on
Wireless protocols for the next generation IoT devicesErik Hellman41m
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…
Talk on
Monetizing Your Side Project to $1k in Monthly RevenueJeffrey Bunn36m
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…
Talk on
The Future of Android, Kotlin and EverythingKevin Galligan42m
🎤 Talk: The Future of Android, Kotlin and Everything 👤 Speaker: Kevin Galligan 📍 Event: droidcon London 2024 📅 Date: October 31st - November 1st…
Talk on
[REDACTED]: How to keep your app's secrets, secretEd Holloway-George41m
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…
Talk on
A journey in Android's BLE worldPaolo Rotolo34m
Practical walkthrough of Android BLE behavior: permission splits (scan/advertise/connect), scanning quirks across OEMs, and why libraries smooth differences…
Talk on
Cutting-Edge-to-Edge in Android 15Timo Drick38m
Android 15 forces edge-to-edge so apps must handle window insets; this session shows concrete fixes in Jetpack Compose: use WindowInsetsPadding and…
Talk on
Developing Trusted Applications for Trusted Execution Environments and vTEEsMikhail Dudarev38m
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…
Talk on
Deep Dive into the Compose CompilerMohit Sarveiya41m
Shows exactly how Compose transforms code into a runtime data structure and what actually changes during recomposition, with concrete numbers and APIs: the…
Talk on
Demystifying Code SigningNeal Michie22m
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…
Talk on
Designing scalable Compose APIsSimona Milanovic38m
Guidelines for building a reusable Jetpack Compose chip: design for one problem, split variants into low-level basic and higher-level opinionated layers, and…
Talk on
Building Auto Trader's SDUI platformHarriet Taylor, Jimmy Ray40m
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…
Talk on
Embracing 16 KB Page Sizes in AndroidChrystian Vieyra Cortes38m
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+…
Talk on
Dynamic Flow, the Wise approach to server driven UIPhellipe Silvar41m
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…
Talk on
Exploring Android Accessibility MalwareGil Hartman32m
Shows a working Android malware prototype that uses accessibility service hooks to perform credential stuffing from infected user devices: a background…
Talk on
Exploring Kotlin Symbol Processing: A Practical GuideDean Djermanović36m
Demonstrates using Kotlin Symbol Processing (KSP) plus KotlinPoet to auto‑generate mapper interfaces and implementations (Peoplehub: Person ↔ PersonEntity)…
Talk on
General Purpose GPU computing in simple stepsKonstantin Zolotov30m
Shows how to get realtime CameraX filters by using CameraX surface processor (ImageProcessor is capture-only; SurfaceProcessor requires Vulkan/OpenGL or native…
Talk on
Don't Build to Last: Strategies for Designing and Productionising ExperimentsKate Moksina19m
Runs about two experiments per month, argues for backend-driven deep link variant routing on Android to decouple releases, recommends caching assignment at…
Talk on
Elevated Dependency Injection: Going Beyond the Basics with Custom Hilt ComponentsSteven Kideckel28m
Patreon integrates a custom Hilt component called user component that scopes dependencies per signed‑in user, providing a per‑user coroutine scope and…
Talk on
Effective App Monitoring in ProductionMauro Frezza, Alejandra Stamato42m
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…
Talk on
Gradle: The Build System That Loves To Hate YouAurimas Liutikas44m
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…
Talk on
Passwordless Future!!Ayushi Gupta26m
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…
Talk on
Let's build a performance measuring tool from scratchAlexandre Moureaux40m
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…
Talk on
Rethinking Apps with Local-First ArchitectureRichard Das18m
Shows a concrete local-first stack: the Ditto SDK creates a self-organizing mesh with a “rainbow” multitransport connection (Wi‑Fi, Bluetooth, cellular…
Talk on
Mistakes you make using Kotlin CoroutinesMarcin Moskała39m
Lists the concrete pitfalls and fixes: using async with immediate await (no parallelism), wrapping work in a child launch inside coroutineScope (redundant)…
Talk on
Fortify the Fort: Think outside the securityGoran Minov21m
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…
Talk on
Enter the Metaverse: Android Apps on Meta Horizon OSJonathan Wendorf27m
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…
Talk on
Overcoming Insecurities in WebViewsBalázs Gerlei34m
Walks through concrete WebView fixes and demos: demonstrates a breakout from an embedded map to Google Search, shows JavaScript running in‑process on…
Talk on
Navigation in a Multiplatform WorldAsh Davies40m
Kotlin Multiplatform reaches production maturity (stable since 1.9.2) and ecosystem size jumps to roughly 1,200 KMP libraries in 2023, Jetpack Compose…
Talk on
Improving App Performance With Custom Thread PoolsTin Novakovic11m
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…
Talk on
Personalizing AccessibilityEeva-Jonna Panula37m
Shows concrete, working Android examples: a settings-backed toggle that switches between icon‑only buttons with contentDescription and buttons with text labels…
Talk on
Jetpack Compose: Drawing without pain and recompositionVitalii Markus39m
Jetpack Compose performance improves by deferring state reads out of composition into measurement or drawing so rapid animations don’t trigger full…
Talk on
Hardware Development with KMP and Compose DesktopEnrique Ramírez34m
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…
Talk on
How to Optimize, Validate and Deploy ML Models on DeviceBhushan Sonawane, Meghan Stronach01h 01m
Platform compiles, quantizes and profiles models into deployable artifacts for Android using TF Lite, ONNX or Qualcomm AI Engine (QNN) runtimes, running each…
Talk on
Level up Your SDKs With KMP - no rewrite required!Wojtek Kaliciński41m
PubNub builds a Kotlin Multiplatform wrapper that delegates to existing native SDKs so one codebase publishes Kotlin, Swift and JS APIs; iOS integration uses…
Talk on
How We Build Spotify for Android AutomotiveWalid Mazout, Danielle Vass30m
Build process focuses on concrete constraints and integrations: Spotify supplies mostly data to Android Automotive media templates, owning only login and…
Talk on
Scalable Testing StrategiesJose Alcérreca, Adarsh Fernando35m
Introduces a five-layer testing pyramid that separates unit, component, feature, application and release-candidate tests, recommends matching test size to…
Talk on
Rewind and Resolve: A deep dive into building Session Replay for AndroidRoman Zavarnitsyn47m
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…
Talk on
Securing Android: Tackling Advanced Threats and Enhancing App SecurityMohamed Kerroumi34m
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…
Talk on
Seamless mobile real-time communication with WebRTCRenaud Mathieu44m
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…
Talk on
Streamlining Android app development and release processesTamás Bazsonyi21m
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…
Talk on
Securing the Unseen: Advanced Threats, Best Practices & Challenges in Mobile App SecurityMohamed Kerroumi21m
Analysis of 1 million apps shows roughly 80% unprotected against reverse engineering or tampering, with Magisk forks (300+ contributors) and Frida scripts used…
Talk on
User Initiated Data Transfer JobsTushar Varshney23m
Explains how Android’s User Initiated Data Transfer jobs (Android 14+) let user-started uploads/downloads run longer than normal background work by using…
Talk on
Project Sparkles: How Compose is Changing Android StudioSebastiano Poggi, Chris Sinco31m
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…
Talk on
Rethinking HomeDaniel Horowitz31m
Spotify Home migration rewrites a monolithic, server‑driven surface into a client-first reusable architecture with content‑unaware components and local…
Talk on
Video Editing On Android With Media3Kristina Simakova19m
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…
Talk on
Why WhatsApp Uses ListViewHadi Tok27m
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…
Talk on
Streamlining Permission Request in Jetpack ComposeMayowa Egbewunmi36m
Builds a reusable Compose flow that removes boilerplate by centralising permission logic: a permission state manager plus a permission UI wrapper coordinate…
Talk on
Why is Adaptive Layout a Nightmare?Gerard Paligot, David Ta38m
A conference app is reworked into an adaptive layout using WindowManager, WindowSizeClass and Google’s two-pane scaffolds (supporting pane and list-detail) to…
Talk on
Run it Locally! How to run your emulators in the cloud.Petras Vičiūnas25m
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…
Talk on
The Gesture Animations DanceNicole Terc32m
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…
Talk on
What's New in Compose MultiplatformMárton Braun, Sebastian Aigner43m
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…
Talk at Stage 2 on
Swift Cheatsheet for Android/Kotlin DevelopersDomen Lanišnik39m
Practical side‑by‑side mapping of Swift features to Kotlin equivalents with concrete code patterns and gotchas, covering optionals and if let mapping, early…
Talk on
What's New in Android 15 Security?Scott Alexander-Bown36m
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…
Talk on
AndroidX Lifecycle's Path To MultiplatformMarcello Galhardo39m
AndroidX Lifecycle becomes Kotlin Multiplatform compatible and reaches stable after a focused January–May 2024 effort that removes Android-only dependencies…
Talk on
Building State Holders in Compose with MoleculeJack Adams27m
Argues that Molecule uses the Compose runtime to build state holders (presentation logic, not UI), letting composable functions be turned into StateFlow via…
Talk on
Asynchrony and the infinite conveyor belt: Advanced Coroutines and FlowsTom Colvin36m
Coroutines are tasks that can suspend and cancellation happens only when they yield — cancellation is implemented by cancellation throws CancellationException…
Talk on
Crime Scene InvestigitorBen Kadel35m
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…
Talk on
Creating Narratives: Shaping TalkBack with Compose SemanticsSachin Sapkale19m
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…
Talk on
Creating a Custom Compose Layout, Step-By-StepHuyen Tue Dao41m
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…
Talk on
A Snapshot Preview of Paparazzi 2.0John Rodriguez39m
Preview shows Paparazzi 2.0 rewrites resource loading to stop depending on AGP, adds application and dynamic feature support, localization, accessibility…
Talk on
Android driver - application of Android device in RC vehicle developmentTomasz Słuszniak32m
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…
Talk on
Click-free releases & the making of a CLI appAdam Ahmed30m
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…
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.