droidcon San Francisco 2023
2023-06-08..2023-06-09
San Francisco, United States
[droidcon San Francisco 2017, droidcon San Francisco 2018, droidcon San Francisco 2022, droidcon San Francisco 2023, droidcon San Francisco 2024]
| title | author | length |
|---|---|---|
| Passkeys: A password-less future with Jetpack Credential Manager | Kateryna Semenova | 11m |
Passkeys use public/private keys with the private key stored on-device and biometric or PIN unlock to sign transactions, the public key sent to the server… | ||
| Build Health and Velocity Score: How Pinterest tracks the state of builds | Manuel Nakamurakare | 24m |
Pinterest defines a Build Health Score by multiplying measurable signals: percentage of local builds under 10 minute local / 45 minute CI thresholds, CI… | ||
| Mobile Feature Flags and Experiments at Uber | Arun Babu ASP, Mahesh Hada | 37m |
Uber runs 25,000 feature flags and ~4,000 active experiments across 10+ apps and builds an in-house library with annotation processors that auto-generate… | ||
| From Chaos to Consistency: Managing Build and Release for 25+ Android Repos with Github Actions | Shrikant Ballal | 33m |
Migrates 25+ Android repos from ad-hoc Jenkins pipelines to a central CI/CD repo using reusable workflows on GitHub Actions, builds and publishes AARs to… | ||
| Tactics for Moving the Needle on Broad Modernization Efforts-Case Study Android Platform @ Reddit | Lauren Darcey, Savannah Forood, Steven Schoen, Catherine Chi | 46m |
Platform work at Reddit focuses on concrete wins: modularization cuts the app-module surface from 28% to an 86% smaller monolith, yields sample apps 10x faster… | ||
| Evolution of Location Permission in Android From Install Time to Runtime and Beyond | Sreekumar Anjali Bhavan Vijayan, Eddy Gann | 18m |
Traces Android permission changes from install‑time manifests to runtime prompts: Marshmallow (Android 6) introduces runtime permissions, Android 10 splits… | ||
| Improving Developer Experience with Gradle Build Scans | Nelson Osacky, Rooz Mohazzabi | 42m |
Shows how Gradle Build Scans capture full build metadata (console, test reports, timeline) and speed triage by sharing a unique URL and using the d-scan… | ||
| Panel Discussion Adopting Jetpack Compose @ Scale | Alejandro Sanchez, Christina Lee | 43m |
Teams start with a proof of concept and monorepo integration (using basil and buck), build component libraries first, then pilot full‑screen usage; one… | ||
| Let Standards Light Your Way Best Practices for App Developers | Michael Krueger | 44m |
80% of tested apps fail their first assessment, 75% misuse crypto libraries, 85% suffer vulnerable third‑party dependencies and 4 out of 5 offending SDKs… | ||
| Gaining the Benefits of Monorepo in a Polyrepo World | Kyle Lehman | 33m |
A concrete recipe for getting monorepo benefits while keeping many repos: use Gradle convention plugins to publish shared build logic, Gradle composite builds… | ||
| AI for Android on- and off-device | Craig Dunn | 43m |
Live demos show an Android app using Onnx Runtime for on-device inference (a 12 MB object detector that misses some statues) and a local build of Whisper… | ||
| Reimagining text fields in Compose | Zach Klippenstein | 37m |
Reworks Compose text fields around a new state object and mutable edit buffer so updates are atomic and efficient, adds a composable filter API (chainable, can… | ||
| Pruning Your App: Good Practices for Reducing App Size | Chrystian Vieyra | 32m |
Converts large PNG assets to WebP and cuts binary size with a concrete case where a 1.66 MB PNG becomes 48 KB (≈3% of original) and a full-app asset conversion… | ||
| Practical Compose Navigation with a Red Siren | Nick Dipatri | 31m |
Live-codes a small Compose app that remotely toggles a physical red siren using navigation-compose: builds a top nav, navController + NavHost routes, and a… | ||
| Frida as debugging tool for Android | Aleksandr Efremenkov | 35m |
Uses Frida to attach over ADB to a rooted emulator by running frida-server in /data/local/tmp and a desktop frida client; injects a JS script using… | ||
| What's up with Android's back | Nav Singh | 24m |
History and migration path for Android back navigation with concrete guidance: use onBackPressedDispatcher (backward-compatible to API 21) or platform… | ||
| Securing Android Applications - The not so secret guide explained | Olivier Tuchon, Desnos Anthony | 01h 22m |
Workshop provides APKs and live exercises that use JADX, APKTool, ADB and Android Studio to find real flaws: a debug build that logs credentials (login checks… | ||
| Identify Android App Startup time issues | Sagar Das | 40m |
Defines cold/warm/hot startups and gives concrete thresholds: Play Console: cold >5s, warm >2s, hot ~1.2–1.5s counts as slow. Recommends measuring TTID (first… | ||
| Find your way with GoogleMap() {} | Brian Gardner | 30m |
Build shows ATMs and retail cash deposit points using compose-maps 2.11.4 plus Play Services Maps; markers animate to camera updates and camera idle triggers… | ||
| Demystifying Baseline Profile | Boon Wai Hoong | 26m |
Baseline profiles get read from APK assets, transcoded to match the device profile version, and write baseline profile at startup via the profile installer… | ||
| Common Cache issues in Android projects - 2023 Edition | Inaki Villar, Nelson Osacky | 41m |
Practical checklist of reproducible cache failures and fixes for Android Gradle builds: absolute paths and live-edit live literals embed user-specific paths… | ||
| Balancing Speed and Reliability The Double-Edged Sword of Third-Party Libraries | Ty Smith | 39m |
A Google Maps SDK server change on April 23, 2020 causes app crashes for days, prompting rollbacks and two hotfixes and requiring teams to delete three files… | ||
| A shortcut for your productivity in Android Studio | Zhenlei Ji | 35m |
Shows how to learn and customize Android Studio shortcuts by example: use Shift Shift / Shift+Cmd+A to search actions and Option+Enter to assign or enable… | ||
| We want go fast Performance at Faire | Zachary Sweigart | 28m |
Defines TTI as end-to-end interaction to interactive UI and sets goals: app load <2s and TTI under 1s 95%. Builds in-app tracing for navigation and Jetpack… | ||
| The Subtle Art of Profiling Android Apps | Pierre-Yves Ricau | 37m |
Local profiling workflow for Android apps that reproduces issues on a real device using a release profilable build then records traces with Perfetto… | ||
| The GPT-ification of Mobile App Testing | Syed Hamid | 28m |
Claims a no‑code mobile test platform called SofiSense that integrates ChatGPT to generate test cases and Appium code, demos live conversion of a functional… | ||
| How we reduced startup time of Turo Android app | Pavlo Stavytskyi | 38m |
Turo cuts app cold-start by 77% improvement by removing a 1s splash animation, replacing a separate splash activity with a single home activity using… | ||
| Go with the Flow | Akshay Chordiya | 37m |
Explains how Kotlin Flow is built on suspend functions and two interfaces (emitter + collector), shows operator internals, and demonstrates concrete patterns… | ||
| Deep Dive Into Size Configuration Changes | Alex Vanyo | 26m |
Explains that size configuration values represent an activity window, not the physical screen, and that insets and DPI rounding produce concrete bugs (Pixel 7… | ||
| Building Multiprocess Android Applications | Tatiana Solonets | 29m |
Life360 keeps a multiprocess architecture to isolate the sensor-backed foreground service and reduce crashes and security risk, and engineers build a… | ||
| Animating content changes with Jetpack Compose | Kinnera Priya Putti | 17m |
Crossfade and animateContentSize handle simple content swaps and expand/contract transitions; crossfade gives a one-line fade, animateContentSize animates size… | ||
| We Hear You! Audio & Voice Testing on Android Devices | Shannon Lee | 17m |
Demo shows a remote workflow that makes real Android devices appear local to Android Studio so developers can debug audio input/output and mic issues using… | ||
| Securing Sensitive Data Android Keystore vs Whitebox Cryptography | Neal Michie | 20m |
Argues that cryptographic keys must never be in the clear because static and dynamic analysis extract them; hardware options include secure elements (embedded… | ||
| Seamless mobile code merges | Nikhil Ramakrishnan | 21m |
Uber Android infrastructure migrates from Jenkins and slow Gradle builds to a modern CI plus Buck and a speculative merge queue that reruns and reorders… | ||
| Innovating with Health Connect a deep dive into its key benefits | Gastón Kosut | 11m |
Health Connect provides an on-device Health Connect APK and SDK that unifies Google Fit Samsung Health and Fitbit data into a single API, supports 50+ data… | ||
| Going on a road trip with Android Auto | Carlos Mota | 21m |
Porting the Confetti conference app to Android Auto using the Android Car App Library (alpha) produces a working in-car APK that uses list and grid templates… | ||
| Getting rid of the REST Migrations to GraphQL from REST | Adam Greenberg | 16m |
Pinterest migrates 878 endpoints and 7,000+ fields for 450M+ users using Apollo Kotlin and a normalized cache to avoid a full REST-to-GraphQL model rewrite. A… | ||
| Fantastic tests and where to find them | Daniel Horowitz | 30m |
Explains concrete rules: use FIRST and Kent Beck’s 12 test properties to prioritise speed, isolation and repeatability; prefer lightweight fakes over mocks to… | ||
| Building a component library in Compose for a large-scale banking application | Odin Asbjornsen | 33m |
Large bank UI team migrates to Jetpack Compose by wrapping Material to match Efemeria Design, mapping custom color/typography/shape classes and using… | ||
| Putting a Jetpack on your legacy codebase | Kurt Nelson | 32m |
Pinterest platform team is actively replacing a custom reflection‑based navigation called ScreenManager reflection and migrating core pieces to AndroidX… | ||
| Navigating the Unknown Tips for Efficiently Learning a New Codebase | Colin Marsh | 19m |
Suggests getting an early teammate walkthrough, mapping the code with an architecture diagram, and using a debugger to trace real execution paths; shows a… | ||
| Meta-programming with Kotlin compiler plugins | Tadeas Kriz | 38m |
Shows how a real Kotlin compiler plugin is built, registered via META-INF/services, and debugged by setting Kotlin.compiler.execution.strategy = in-process so… | ||
| Gradle under a microscope profiling and optimizing builds | Aurimas Liutikas | 38m |
Gradle build time splits into configuration and execution; Android X runs ~16,500 builds and ~9,500 pre-submits monthly so saving seconds multiplies. Concrete… | ||
| Crash Course in building your First Gradle Plugin | Lury Souza | 32m |
A minimal Gradle plugin is built that converts a project graph into Mermaid JS diagrams and is published as a module called module-graphing; implementation… | ||
| Combating sampling bias in production How to collect and interpret performance data to drive growth | Hanson Ho | 36m |
Production perf metrics suffer three concrete sampling biases: overrepresentation of heavy users (data points ≠ users), underrepresentation of churned or… | ||
| The Network Latency Tax (on your build cache) | Ben Boral | 18m |
Bitrise builds a global, CDN-backed build cache with a Gradle plugin that uses gRPC streaming over HTTP/2, putting a primary cache in-datacenter and replicas… | ||
| Journey to the Center of the Room Generating Kotlin | Elif Bilgin | 21m |
Room 2.6 alpha1 adds Kotlin code generation by switching to KSP for accurate Kotlin symbols, introducing XProcessing to unify Java and Kotlin annotation… | ||
| Developing Apps optimized for Wear OS with Jetpack Compose | Kenichi Kambara | 20m |
Shows a concrete Wear OS app built with Jetpack Compose using Android Studio Flamingo (or Hedgehog for previews) and only emulators; replaces LazyColumn with… | ||
| Beyond the Basics Performance Monitoring and User Experience for Mobile App Growth | Moataz Soliman | 11m |
Instabug monitors performance across 2.7 billion devices for 25,000 companies and moves beyond crashes to measure app launch, per-screen time‑to‑interactive… | ||
| Be Aware & Prepare Grow Downloads & User Trust with a MASA Validation | Michael Krueger | 16m |
Google Play now recognizes an industry-run MASA validation that maps to 32 MASVS controls and surfaces a Play Store badge valid for one year, so mobile teams… | ||
| The joys and challenges of building a paywall with BillingClient 5 | Andy Boedo, Mark Villacampa | 25m |
Explains migrating a Play Billing Client paywall from v4 to v5/6 with concrete deadlines (new apps blocked August, existing app updates blocked November), the… | ||
| Opening the shutter on snapshots | Zach Klippenstein | 53m |
Claim: snapshots act like git for your variables, letting threads make isolated, ACIDlike edits (minus durability) and then merge or abort. Implementation uses… | ||
| Introduction to On-Device Machine Learning for Android with MediaPipe | Paul Ruiz | 42m |
Runs full ML inference on-device using MediaPipe Tasks and TFLite models rather than cloud calls, with concrete code for image classification, object… | ||
| Meet Store5 - A Kotlin Multiplatform Library For Building Network-Resilient Applications | Mike Nakhimovich | 30m |
A Kotlin Multiplatform data library that extends Store 4 with write support, conflict handling via a bookkeeper delegate, and chained fallback fetcher… | ||
| Material You Review | Mike Wolfson | 44m |
Timeline of four working apps shows evolution from handbuilt UIs to a Compose-first Material 3 stack using Jetpack Compose and the Android support library for… | ||
| Creative Coding with Compose The Next Chapter | Tasha Ramesh | 36m |
Uses Jetpack Compose canvas and polar math to generate polygons, adds randomness and repetition to produce hundreds of layered variations, and implements a… | ||
| Compose-View Interop in Practice | István Juhos | 28m |
Shows how to host existing view libraries like MPAndroidChart inside Compose with AndroidView, and how to embed Compose into XML using ComposeView and the… | ||
| Unlocking the Power of Shaders in Android with AGSL and Jetpack Compose | Rikin Marfatia | 33m |
AGSL fragment shaders compile as raw strings and plug into Jetpack Compose via shader brush vs render effect; examples include noisy, grainy gradients built… | ||
| Tricky Back-Compatible Localization | Vitalii Markus | 37m |
Android 13’s per-app language preference is backported via AppCompat 1.6 and implemented by calling AppCompatDelegate.setApplicationLocales to install a new… | ||
| The New Modern Data Persistence on Android - Meet Jetpack Datastore | Madona Wambua | 45m |
Explains why Jetpack DataStore replaces SharedPreferences by showing working code that writes and reads a Task object using preferences DataStore, a… | ||
| Managing State Beyond ViewModels and Hilt | Ralf Wondratschek | 39m |
Migrates from Hilt to Anvil and replaces Android-controlled ViewModel lifecycles with an app-managed scope system that ties Dagger components and coroutine… | ||
| Kotlin Multiplatform From “Hello World” to the Real World | Russell Wolf | 39m |
Kotlin Multiplatform is usable in production (beta) and is used at Touchlab since pre‑alpha; Android and iOS targets are the focus with KMM plugin templates… | ||
| Keynote- Android Developer Productivity | Tor Norbye | 44m |
Android Studio tips focus on concrete wins: keyboard shortcuts (find action cmd‑shift‑A, F2 for errors, F7 for diffs, F8 step over) and plugins like Key… | ||
| Android App Quality - A Google Perspective - Daniel Galpin.mp4 | Daniel Galpin | 29m |
Covers concrete Android 14 and Play Console guidance: how to enable predictive back, add baseline profiles and dex layout optimizations, and use the App… | ||
| Accelerating Mobile Development with Server Driven Technologies | Nehal Kumar | 30m |
Mobile release takes ~four weeks to land and up to two weeks–six months for 99% adoption, so Uber builds a homegrown server-driven platform composed of backend… | ||
| nothing matches | ||