droidcon SF 2019
| title | author | length |
|---|---|---|
| PokeLeaks: Gotta Catch 'em All | Pierre-Yves Ricau | 49m |
Hands‑on workshop that injects hidden leaks into the open‑source CatchUp app, adds LeakCanary 2, and reproduces leaks using Android Studio Canary and emulator… | ||
| Opening Keynote: Android Then & Now | Romain Guy, Chet Haase | 46m |
A concise timeline: Android shifts from Dalvik to ART (faster runtime, shorter GC pauses), adds Treble to separate vendor drivers, and builds Jetpack libraries… | ||
| ConstraintLayout 2.0 and MotionLayout Workshop | Nicolas Roard, John Hoford | 38m |
Live demo converts a ConstraintLayout to MotionLayout and uses the Motion Editor in Android Studio 4.0 Canary 4 with Constraint Layout 2.0 beta 3. The example… | ||
| Easy, Scalable Backends for Android Developers | Doug Stevenson | 40m |
Shows how to build serverless Android backends with concrete tools and steps: use Cloud Functions for Firebase (HTTP and event triggers, callable functions… | ||
| A Day in the Life of a Mobile Malware Reverse Engineer | Salvador Mandujano | 29m |
Daily workflow for Android malware reverse engineering: fetch APKs from Play Store, OEM builds or device-sent samples; unpack DEX to Smali and decompile with… | ||
| Deep Learning: a practical introduction from an Android dev perspective | Joaquim Verges | 47m |
An Android dev walks through installing Anaconda and TensorFlow 2.0 alpha, wrestling with CUDA and PyCharm, then ports a pretrained DeepLab v3_257.tflite model… | ||
| The device is running on it's own! Full-stack automation of UI testing on a custom android firmware. | Faraz M.R., Bharath MG | 15m |
A custom Karoo bike computer running a forked Marshmallow Android gets full CI/CD UI testing: an orchestrator app auto-downloads and installs OTA ROMs, runs… | ||
| The Journey From Legacy Code to Idiomatic Kotlin | Seetha Annamraju | 16m |
Outlines a practical path: choose a component, either rewrite file from scratch or use convert Java file to Kotlin then fix compiler errors, address IDE… | ||
| Buy a Plunger Before You Need a Plunger: Scalable, Flexible, Modular, Preventative Architecture | Josh Williams | 36m |
Argues that a small set of concrete patterns — presenter + interactor + transformer, clear platform/framework/implementation layers, and Dagger-style… | ||
| Creating Augmented Reality Solutions in Enterprise Verticals | Pat Narendra | 35m |
Smatphone AR frameworks open enterprise use but must solve persistence, calibration and usability. Zebra’s rugged Android devices (SD660) pass ARCore… | ||
| Kotlin Multiplatform Library Development | Kevin Galligan | 37m |
Shows a concrete approach to wrapping native SDKs by publishing a Firestore KMP wrapper that uses empty type aliases plus extension functions to avoid delegate… | ||
| The Facebook Mobile Performance Tooling Ecosystem: An Overview | Tim Mellor | 18m |
Claims that focusing on performance helped reverse declining engagement and that Facebook measures latency and jank with concrete signals: time to recent… | ||
| Android at Scale @Square | Ralf Wondratschek | 32m |
Square’s Android Point of Sale repo moves from a tangled “hairball” to a mono-repo of many small libraries by enforcing public/impl/impl-wiring modules… | ||
| State-machine Driven Payment Flow | Yisong Wu, Fernando Pereira | 36m |
Tinder replaces a legacy payment stack with a state‑machine + DSL implemented in the open source StateMachine library to make purchase flow deterministic… | ||
| Breaking Down Modularization | Zach Sweigart | 20m |
Explains a concrete multi‑module layout with layers: application, feature, application‑library, base, core, utility and shows RIBs as the chosen app… | ||
| Hands On MvRx: Building Real Apps | Gabriel Peal | 38m |
MvRx is an Android architecture library built on Jetpack and used at Airbnb for 500+ screens, claiming a new Mavericks screen daily; it is Kotlin-only, scopes… | ||
| Coroutines Zero to Hero | Paulo Sato | 31m |
Kotlin coroutines are explained with concrete mechanics: how suspend functions compile to continuations, how CoroutineContext composes Job and Dispatchers, and… | ||
| Performance in a Kotlin World | Sean McQuillan | 43m |
Shows how to find real Android bottlenecks using Android Studio profilers — CPU profiler, memory, energy and network — and system tracing (cystrace/Perfetto)… | ||
| Results of Scanning the Top 45 Android Mobile Banking Apps | Scott King | 32m |
Scans of 45 top US Android banking apps find concrete failures: about 75% fail insecure data storage, many apps contain hardcoded API keys and inline… | ||
| Learn to Think Like a Hacker | Neal Michie | 33m |
Shows exactly how attackers work: apps are easy to reverse engineer, dynamic tools like Frida let an analyst hook and control runtime, fuzzing finds remote… | ||
| Kotlin beyond Android | Guillermo Orellana | 31m |
Kotlin code runs beyond Android: a Ktor server with test application handles routes and API tests by simulating requests (no HTTP sockets), builds and deploys… | ||
| MotionLayout & Motion Editor | Nicolas Roard, John Hoford | 34m |
MotionLayout (ConstraintLayout 2.0) plus the Motion Editor in Android Studio 4.0 claim to replace manual animation code by declaring states in a separate… | ||
| Reactive Approach to Delegation in Kotlin | Aida Issayeva | 35m |
Shows how Kotlin's class and property delegation (using the by keyword) is used to build a custom button with three explicit states (showLiked, showUnliked… | ||
| Architecture Agnostic UI Development | Vinay Gaba, Marcos Paulo Damasceno | 38m |
A concrete recipe: model UI as sealed view states and events using sealed classes + data classes as view states, drive transitions with Tinder's open source… | ||
| Dagger Reflect - The circle from runtime to compile time and back to runtime | Nelson Osacky | 35m |
Dagger Reflect replaces Dagger’s heavy generated component with a reflection runtime that swaps a 10,000‑line generated component for ~20 lines so local… | ||
| Your Strengths Include: Work/Life Balance | Parth Padgaonkar | 37m |
Short, practical guide that delivers tactics not platitudes: a balance wheel self-assessment (attendee quiz crashed under load), survey of ~5 Android peers… | ||
| Structure Unit Testing with Spek | Martin Petrulak | 32m |
Spek is a Kotlin testing DSL that runs on the JUnit 5 engine and supports Android with a dedicated IDE plugin and Jacoco coverage. It provides memoized… | ||
| Voyager: Navigation and DI for Flutter | Lukasz Wiśniewski | 26m |
Voyager is a Flutter widget router that reads a YAML configuration map and turns paths into widgets via a custom plugin architecture, using dependency… | ||
| Let's Build a Dependency Injection Framework | Leland Takamine | 32m |
Live codes a DI system implemented as an annotation processor that uses JavaPoet to generate a concrete scope implementation at compile time, producing… | ||
| Jetpack Security Extension Overview, Data-at-rest and in-transit | Nicole Borrelli | 18m |
Jetpack Security provides concrete APIs for encrypting files and SharedPreferences using Android KeyStore for keys (requires API level 23 and above)… | ||
| Growing at Work with Community-oriented Development | John Li | 15m |
Organizing internal meetups, tech talks, roundtables, lightning talks, hackathons and ongoing workgroups produces concrete outcomes: one meetup contact leads… | ||
| We gave a Mouse an NDK: Non Android Developers' Experience with NDK | Armin Rocher, Bruno Garcia | 36m |
Sentry builds a production NDK crash pipeline that captures native crashes with signal handlers, unwinds frames by increasing the sigaltstack and then dump… | ||
| Kotlin Internal DSL - Create Your Own Language | Vignesh Ramakrishnan | 37m |
Kotlin features let an internal DSL compress a messy 20–30‑field data‑class setup into a short builder chain and make Android patterns like intent creation and… | ||
| Working with Alternative Build Systems | Gautam Korlam | 39m |
At Uber Gradle configuration hits five plus minutes and a full sync once took an hour and a half on a 2,000+ module codebase, so the company converts projects… | ||
| Next Generation Android UI with Jetpack Compose | Pedro Veloso | 35m |
Jetpack Compose is an experimental, Kotlin-first UI library (around v0.1.0dev) that builds UIs with composable functions like Column/Row/Flex, material… | ||
| UI Testing at Pinterest | Ryan Cooke, Freddy Montano | 45m |
Pinterest runs a scaled UI test system that shrinks a six‑hour suite into commit‑time checks by moving to Firebase Test Lab with Flank sharding, using… | ||
| ARCore: Visualizing the Invisible | Chrystian Vieyra, Rebecca Vieyra | 34m |
NSF-funded project builds a smartphone app, Physics Toolbox AR, that fuses ARCore + magnetometer readings to render floating magnetic field vectors in real 3D… | ||
| Intro to App Modularization | Mario Sanoguera | 34m |
Explains how Android apps split into application, Android library (AAR), and Kotlin/JAR modules, and shows concrete steps that cut full rebuilds from 4–5… | ||
| JUnit 5 Testing: Android Unidirectional Data Flow with LiveData | Adam Hurwitz | 33m |
Starting from Coinverse's LiveData + UDF Kotlin app, the talk shows a concrete test workflow: modularize viewmodel and repository, mock repository flows with… | ||
| Coroutines and Rx: A Battle Towards Asynchronicity | Amanjeet Singh | 26m |
Compares RxJava and Kotlin coroutines with concrete tradeoffs: Retrofit now supports suspend functions so coroutines win simple HTTP calls with no adapter… | ||
| Inside the Room | Effie Barak | 44m |
Deep dive into Room shows how it maps three layers—SQLite, Android/AndroidX and Room runtime—so readers and writers actually behave: file locks escalate from… | ||
| PokeLeaks: Gotta Catch 'em All | Pierre-Yves Ricau | ? |
Speakers: Pierre-Yves Ricau
Sources: droidcon San Francisco 2019
Bring your laptops and your investigative skills, we're going on a memory leak hunt!
We'll… | ||
| Machine Learning on Android Demystified | Tatyana Casino | 39m |
Compares cloud vs on‑device ML and shows a runnable Android path: Kotlin examples using TensorFlow Lite with GPU delegate and NNAPI to run a pose‑estimation… | ||
| Advanced & Practical MotionLayout | Jason Pearson | 40m |
ConstraintLayout 2.0’s MotionLayout is shown as a practical replacement for ad hoc animators: animations live in XML motionScene files, transitions use onClick… | ||
| Attributed Everything: Ensuring Quality for Large Apps | Anton Lopyrev, Youming Li, Ben Roman | 40m |
Snap rewrites its Android app and then builds an attribution system that maps every file and metric to a team using owners files and runtime attributed… | ||
| Navigating Android Like a Pro | Vivek Chanddru | 41m |
History of Jetpack Navigation, what changed from early alphas to 2.1/2.2/2.3, and concrete migration steps: add nav graph XML, use Safe Args plugin to get… | ||
| E2E2U: Slack’s journey to developer-driven end-to-end testing | Valera Zakharov | 44m |
Slack migrates its black‑box Calabash suite to Espresso migration, converting ~100 slow E2E tests down to ~80 stable ones and integrating them as… | ||
| Dagger 2, 2 Years Later | Matt Dupree | 38m |
Two years of Dagger 2 adoption produces specific pain points: choice of Dagger Android versus manual injection, whether to use binds vs provides, how to pick… | ||
| Going with the Flow - Using Coroutines 1.3.x | Rick Busarow | 44m |
Shows concrete migration patterns: Retrofit 2.6.0 uses suspend service methods, Flow is Flow stable in Kotlin 1.3.0, and channels change semantics. Compares… | ||
| A Lighter Layout Abstraction With Contour | Adam Erb | 31m |
Contour is an open‑source Cash App Kotlin library that replaces XML UIs with a thin DSL around Android layout APIs, using Contour layout and applyLayout… | ||
| The (not so) hidden cost of sharing code between iOS and Android | Eyal Guthmann | 33m |
Dropbox abandons sharing business logic in C++ after years of operational cost: 85,000 lines of C++ (plus 35k open source and 10k build tooling), a homegrown… | ||
| Level Up Your Extension Game | Aida Issayeva | 13m |
Shows concrete rules and pitfalls for Kotlin extension functions with examples that compile and interop with Java, including using Android KTX to replace 70+… | ||
| Consistent Design with Custom Lint Checks | Alex Lockwood | 23m |
Android teams extend Android Lint (over 300 built-in checks exist) with small, targeted detectors that enforce design rules: hard-coded hex colors in layouts… | ||
| Linux & Android Development on Chrome OS | Emilie Roberts, Adriana Jara | 23m |
Chromebooks run a Debian container via Crostini that auto downloads a VM and exposes a terminal so developers install Git, Vim, Visual Studio Code and Android… | ||
| Powering Modularization at Airbnb: Plugin Architecture | Adell Hanson-Kahn | 19m |
Airbnb implements a plugin architecture that combines an annotation processor with Dagger multibindings and a Scabbard intermediate generator so modules can… | ||
| Using the Bento Framework to Upgrade Legacy Apps | Tyler Argo | 38m |
Yelp replaces a tangled set of nested adapters and ListViews with the open source Bento framework, wrapping the legacy sectioned adapter into a… | ||
| Playing Videos on Android? ExoPlayer2 at Your Service! | Julien Salvi | 41m |
ExoPlayer 2 is a Google open source player that actually shows how to handle formats, DRM and offline playback rather than promise examples: it supports MP4… | ||
| Powering Worldwide Learning with Kotlin Multiplatform | Ankush Gupta | 45m |
Quizlet adopts Kotlin Multiplatform to share its core “secret sauce” across iOS, Android and web for over 50 million monthly users, converting the JavaScript… | ||
| Adding Flutter to Your Android App | Matt Carroll | 26m |
Shows exactly how to add a Flutter module to an Android app by creating a Flutter module, then either producing an AAR via the Android Studio Flutter > build… | ||
| Building One of the World's Largest Interactive Data Visualisation Experiences | Supratim Chakraborty | 37m |
Built VizInteract on Android-x86 by modifying the kernel to add driver support for a PQ Labs IR overlay and enable 12 simultaneous touch points on an 80‑inch… | ||
| MUwS, PHA, vulnerabilities: A walk through on what not to do | Salvador Mandujano | 42m |
Google Play Protect processes ~1.2M APKs with over 1 billion device scans per day using ~30,000 CPUs, extracting static (manifests, strings, images) and… | ||
| Get Your App to Work at Work | Aser Samak | 18m |
Android Enterprise splits work and personal data using work profiles and three components: managed Google Play, enterprise cloud APIs (EMM) and the Device… | ||
| Working Around KAPT | Vladimir Tagakov | 09m |
Lyft replaces KAPT by building NAPT which skips Kotlin stub generation and reduces annotation processing overhead, claiming much faster builds vs KAPT where… | ||
| Implementing a Design System | Nathanael Silverman | 29m |
Airbnb implements a vertical stack of row components as the primary UI unit, backed by tooling: a RecyclerView framework Epoxy to auto-generate models, a… | ||
| Magic of ADB | Wojciech Sadurski | 40m |
ADB runs as an init-started native daemon communicating with an ADB server on localhost:5037 and uses JDWP threads to expose debugable app processes so Android… | ||
| MVVM & Nested Fragments/Views: ViewModel Contracts | Marcos Paulo Damesceno, Bret Erickson | 24m |
Claim: define small interface-based ViewModel Contracts that fragments expect and pass the parent ViewModel class in their arguments so fragments obtain the… | ||
| Box Enterprise Security | Sudeep Bhowmick, Don Cung | 27m |
An enterprise Android app that enforces SafetyNet API root and CTS checks with server-side JWT validation and a default API quota of ~10,000 calls, plus IP… | ||
| Performance by Construction | Gaurav Lochan | 34m |
WhatsApp keeps a vanilla Android stack (activities, fragments, SQLite) and prioritizes simplicity and quality: it stays single-dex (<64k methods) to reduce… | ||
| Leveling Up: Panel Discussion | Sha Sha Chu, Lien Mamitsuka, Ty Smith, Romain Guy, Joaquim Verges, Gabriel Peal | 01h 32m |
A candid panel on Android leadership lays out concrete practices and tradeoffs: orgs run Android teams of eight to seventy engineers; platform teams prioritize… | ||
| Native, React Native, Flutter and More | Barlow Tucker | 21m |
Compares native Android/iOS, React Native (JS) prototype and Flutter (Dart) prototype by actually building the same Unsplash photo list app in each stack and… | ||
| nothing matches | ||