droidcon San Francisco 2022
2022-06-02..2022-06-03
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 |
|---|---|---|
| Android Benchmarking and other stories | Enrique López Mañas, Iury Souza | 33m |
Shows how to benchmark a real app using Jetpack micro and macro benchmarks and the Android Profiler, compares outputs (microbenchmarks for tight CPU hot spots… | ||
| Foldable, Meet Compose | Joy Liu | 29m |
Jetpack Compose integrates with foldable and large screens by shipping a hinge-aware UI component TwoPaneLayout, a window-info wrapper WindowState (built on… | ||
| Running Android emulators in Travis CI | Montana Mendy | 11m |
Provides a ready Travis CI YAML that boots a Docker container and VM, installs Android components (build-tools 22 and 30 plus extra Google Play packages), and… | ||
| Android app internationalization: users can now choose their application language | Ash Nohe | 10m |
Android 13 lets apps set per-app languages at runtime using AndroidX. Implement by declaring supported locales with a localeConfig XML in the manifest, call… | ||
| Android Developer Productivity | Nelson Osacky | 30m |
Claims that slow builds are measurable tech debt with a concrete example: 60 wasted seconds × 50 builds × 50 devs → 42 hours lost per day. Shows five build… | ||
| The Evolution of Android Graphics in Android 12/13 | Dan Galpin | 36m |
Android 12 and 13 add RenderEffect (view and Compose blur/color filters backed by Skia) and RuntimeShader (AGSL fragment shaders usable as paint brushes or to… | ||
| Taking your Android Apps to Desktop with Amazon Appstore | Anisha Malde | 20m |
Amazon Appstore delivers Android apps to Windows 11 using the Windows Subsystem for Android (WSA) so apps run as native windows, support keyboard, mouse, pen… | ||
| Security First Android Apps | Tarika Chawla | 43m |
Concrete app-hardening steps and failures: use AndroidX Security for encrypted SharedPreferences, set android:exported="false" on providers/broadcasts… | ||
| Client Tracing At Scale | Ben Romano | 34m |
Large app tracing pipeline that links AndroidX.tracing spans and counters to Perfetto UI, a custom Trace SDK that runs in-process and compresses traces to… | ||
| Performing Due Diligence as Android Developers | Ishan Khanna | 37m |
A practical checklist for bringing third‑party Android SDKs into production that claims to catch hidden costs before they hit users and build pipelines. It… | ||
| Piranha: Building a Multilingual Deadcode Deletion Bot | Murali Krishna Ramanathan, Ameya Ketkar | 34m |
Piranha is an AST‑based code‑deletion bot that runs in a pipeline and generates diffs for stale feature flags it detects via flag metadata and a tracker it… | ||
| Automated migration of Android apps to Bazel build system | Pavlo Stavytskyi | 39m |
A Gradle plugin lives in buildSrc and exposes a migrateToBazel task that scans every module’s configurations, extracts implementation/API dependencies, maps… | ||
| State Machines and Hopeful Dreams | Rikin Marfatia | 44m |
Compares Mavericks, Workflow, and planned Decompose by actually building a Compose-first hydration tracker backed by Firebase with three features (daily… | ||
| MILK: a user-centric mobile performance model | Pierre-Yves Ricau | 42m |
Block defines a user-centric model called Motion Idle Latency Kit and targets concrete thresholds: interactive taps under 200 ms (anything over 500 ms is bad… | ||
| Rock-Solid UI and Instrumentation Testing | Sinan Kozak | 42m |
Concrete recipe for reliable Espresso UI tests: build a multi-module test setup so feature teams compile and run tests in isolation, use a robot DSL like… | ||
| Building Mobile Apps At Scale | Kurt Nelson | 41m |
Defines two concrete scales: 100–200 Android engineers in a mono repo versus billions of daily active users, and measures scale by DAU/WAU and device… | ||
| Voice Enabling Mobile Apps and Custom Hardware Devices | Ognjen Todic | 36m |
Keen Research ships an on-device speech SDK (iOS, Android, Linux, Unity) used by Noggin, PBS Kids and Novel Effect to run local ASR models tuned for kids and… | ||
| Flipper: A Debugging Platform for Mobile Developers | Wajahat Karim | 26m |
Flipper is a standalone desktop app plus SDK that connects to Android iOS and React Native apps over sockets and exposes live tooling: desktop app + SDK. It… | ||
| Making apps blazing fast with Baseline Profiles | Rahul Ravikumar | 28m |
Claims that embedding Baseline Profiles into an APK yields near-instant optimized installs, using AGP’s Profgen to convert baseline.prof into compact DEX… | ||
| What does Recomposition mean to your app? | Aida Issayeva | 38m |
Explains what recomposition actually does: the runtime records reads in the slot table, the re-composer wakes on state snapshot changes, the composer produces… | ||
| Kotlin Multiplatform Mobile in production: key takeaways from developing two cross-platform apps | Lena Stepanova | 25m |
Two KMM apps get built over two years, one sharing only networking and local storage and the other sharing a coroutine ViewModel layer, and both ship… | ||
| Custom Design Systems in Compose | Ryan Harter | 36m |
Dropbox implements its DIG design library in Jetpack Compose by creating a custom DIG theme that provides its own token classes and then maps those tokens into… | ||
| The Workflow Pattern, Composed | Zach Klippenstein | 37m |
Workflow is already running nearly two thirds of Square’s flagship app and now integrates with Jetpack Compose via a composable view factory and a workflow… | ||
| How we brought down our build times. General optimization tips | Manuel Nakamurakare | 30m |
Pinterest cuts p95 Android build time ~31% (11:05→7:36) and P50 from 1:25 to 32s by combining concrete fixes: use Gradle Enterprise to surface cache misses… | ||
| Compose your Text | Sean McQuillan | 32m |
Explains how Compose text maps to the same platform stack (paragraph → Minikin → Skia) and what Compose 1.2 actually adds: Compose 1.2 brings Google Fonts… | ||
| Beyond the Basics: Performance Monitoring and User Experience for Mobile App Growth | Moataz Soliman | 19m |
Instabug describes concrete metrics and actions: track app launch as a time to interactive (cold ≤5s, warm ≤2s, hot ≤1.5s per Android Vitals), monitor screen… | ||
| Embracing commonMain for Android Development | Sam Edwards | 33m |
Claims a one-line switch lets a Kotlin JVM or Android module become multiplatform by mapping main to commonMain and JVM/implementation to common configurations… | ||
| Using ConstraintLayout in Compose | John Hoford, Nicolas Roard | 38m |
ConstraintLayout Compose 1.0 brings view‑system ConstraintLayout and MotionLayout concepts into Compose, letting code swap declarative constraint set objects… | ||
| Migrating to Kotlin State & Shared Flows | Mohit Sarveiya | 36m |
Covers concrete migration steps: replace deprecated BroadcastChannel with Shared Flow using emit/tryEmit, map capacity to extraBufferCapacity, and set replay… | ||
| Compose beyond Material | Sebastiano Poggi | 41m |
Argues that you can drop Material and reuse Compose foundation to implement a custom design system: remove the Material dependency (or hide its packages in… | ||
| Why should you add voice to your apps? | Anshaj Khare | 22m |
Smartphones outnumber smart speakers and 15% of US adults are mobile‑only, so adding voice inside apps targets a larger audience; industry examples show real… | ||
| Multiplatform Settings 1.0 | Russell Wolf | 27m |
Multiplatform Settings reaches 1.0 alpha released as a common key‑value API that delegates to platform backends; current concrete backends include… | ||
| Streamlining Success - How we went from prototyping an SDK to serving billions of customers | Filip Babić, Neevash Ramdial | 42m |
Stream explains how a Chat product grows from a prototype SDK into production libraries that serve billions of users by building UI SDKs for web, Android… | ||
| Building Apps that Scale | Kilo Loco | 37m |
Concrete practices: write KDoc comments with use cases so hover text explains KDoc, stop clever one-liners, organize code by feature packages, and add unit and… | ||
| Dagger + Anvil: Learning to Love Dependency Injection | Gabriel Peal, Ralf Wondratschek | 37m |
Anvil is a Kotlin compiler plugin that removes almost all Dagger module boilerplate by generating bindings from annotated classes, using merge component and… | ||
| Optimize your app for large screens | Alex Vanyo | 24m |
Defines three support tiers and gives concrete steps: use Jetpack WindowManager to read current window metrics, apply window size classes at 600 dp and 840 dp… | ||
| Solid Modularization - Untangling the dependency graph | Siggi Jonsson | 30m |
Tinder measures its Gradle graph with Graph Assert and visualizes it in Gephi, finding 598 modules, 4,389 dependencies and a height of 24; CI fails on rule… | ||
| You Can Be a Mentor for the Next Cohort of Android Engineers | Sumayyah Ahmed | 30m |
Argues that engineers at any level can run practical mentorship by building peer mentoring routines like weekly study groups to migrate a codebase to Compose… | ||
| How Are Other Teams Doing It? Lessons in CI/CD from 3500 Android Teams | Ben Boral | 41m |
Aggregated Bitrise data from 3,500+ Android teams shows a median PR build 13 minutes with a third under 10 and two thirds under 20; teams speed this up using… | ||
| One does not simply: migrating to Android 12 | Julien Salvi | 37m |
Step‑by‑step migration hazards and fixes for Android 12 including concrete failures and fixes: how targeting API 31 breaks builds until manifest exported… | ||
| ANR overview at Uber + Leveraging ApplicationExitInfo API | Yohan Hartanto, Francisco Aguilera | 22m |
Uber describes concrete fixes and tools: bitmap processing and heavy IO moved off the UI thread, RxJava’s blockingGet is banned after causing ANRs, and… | ||
| Kotlin Generics In Depth | Bree Hoffman | 29m |
Covers how Kotlin enforces in/out variance (why mutable List<String> ≠ MutableList<Any>), demonstrates use-site variance and star projection with concrete… | ||
| Testing Jetpack Compose UI | Dmytro Shuba | 36m |
Describes concrete recipes: use the Compose testing library with test tag instead of view IDs, set up either createAndroidComposeRule for activity flows or… | ||
| Retrofitting Legacy Code with Jetpack Compose at Scale | Ryan Simon | 34m |
Monzo adopts Jetpack Compose since alpha (Oct 2020) across 200+ feature modules with a 17‑person Android team, building a custom design system from Figma and… | ||
| KSP and Plugins. Optimizing Kotlin Multiplatform common code | Anna Zharkova | 38m |
Demo builds a KSP annotation processor that reads Kotlin AST, generates Kotlin source files for dependency registration, and compiles them into the… | ||
| Architecting Your Android Library | Amrita Pritam | 26m |
Step-by-step recipe for turning an app into a reusable Android library: split a monolithic app into modules, convert or create a library module that builds an… | ||
| Measure the Performance of your Android App with Sentry | Philipp Hofmann, Manoel Aranda Neto | 29m |
Sentry Android SDK captures app start times, frozen/slow frames, OkHTTP calls, SQLite/Room queries and Activity/Fragment render times automatically and links… | ||
| How to crash your app in production and still delight your users | Vincent Lussenburg, Daniel Graham | 17m |
Shows how to detect, deduplicate and triage native crashes ANRs and Java/Kotlin errors using the Backtrace SDK, capturing breadcrumbs attachments and debug… | ||
| A page out of Server driven UI on Android | Adit Lal | 41m |
Server-driven UI uses JSON configs to change screens, run A/B tests and flip feature flags without shipping an APK update. Implementation uses Epoxy… | ||
| Branching out to Jetpack Compose | Nacho López, Chris Banes | 42m |
Twitter integrates Jetpack Compose across a large legacy app by starting with a single component (button), mapping its design system to Material then copying… | ||
| Welcome Adress | GREG FAWSON | 08m |
By Greg Fawson | ||
| Netflix + Gradle A Journey in Developer Productivity | Emmanuel Boudrant, Rooz Mohazzabi | 37m |
Netflix runs a 180‑module Android repo with ~30 developers and 10 variants and cuts iteration time with concrete changes: an engineering build (no dynamic… | ||
| Graphics for Android Developers, Part Deux | Chet Haase, Romain Guy | 41m |
Covers concrete Android graphics APIs and tricks: constructing and chaining paths as linear/quadratic/cubic Béziers, using PathMeasure to read length and… | ||
| SDK Design and Publishing For Kotlin Multiplatform Mobile | Kevin Galligan | 33m |
Covers concrete KMP/KMM choices: use simple interface injection when possible, otherwise use C interop with headers and explicit linking, note linker failures… | ||
| Something old, something new: Adding Jetpack Compose to a large open source Android app | Maia Grotepass | 35m |
Takes Jetpack Compose into the large open‑source Habitica Android app and reports concrete results: repo shows 26 activities, 33 fragments, 12 repositories, 7… | ||
| How to effectively create and review PRs | Alessandro Mautone | 18m |
Advocates keeping PRs as small, focused units—split a feature into endpoint + models, storage/database, and UI PRs so feedback stays short and refactors are… | ||
| A Hitchhiker's Guide to Compose Compiler: Composers, Compiler Plugins, and Snapshots | Jossi Wolf, Amanda Hinchman-Dominguez | 28m |
Explains how Jetpack Compose turns Composable functions into runtime groups by augmenting Kotlin IR via a compiler plugin that intercepts Kotlin backend phases… | ||
| Why Projects Succeed: Lessons learned from the Android OS | Chet Haase, Romain Guy | 01h 10m |
Starts as a camera OS, gets bought by Google in 2005 with basically 3,000 lines of JavaScript, and the tiny team builds drivers, a Linux-based stack, and… | ||
| The Imposter’s Guide To Dependency Injection | Adam McNeilly | 30m |
Shows that constructor injection and a simple analytics tracker interface replace direct Firebase calls so unit tests can assert tracking without Android… | ||
| Build Scalable and Performant Apps with GraphQL | Ben Sklar, Wolfgang Mathurin | 28m |
Salesforce ships a public GraphQL UI API (query-only in first release, mutations coming later) that uses field selection and resource aggregation to cut… | ||
| nothing matches | ||