droidcon New York 2023
2023-09-14..2023-09-15
New York, United States
[droidcon New York 2022, droidcon New York 2023, droidcon New York 2024, droidcon New York 2025]
| title | author | length |
|---|---|---|
| Getting your apps ready for Material 3 | Odin Asbjornsen, Fatih Giriş | 39m |
A bank app migrates its design system to Material 3 and documents concrete steps: tonal palette of 13 tones drives surface hierarchy and accessibility, there… | ||
| Web and Android United- Kotlin-Powered Cross-Platform Excellence | Etienne Caron | 38m |
Builds a Kotlin Multiplatform inventory for thousands of vinyl records that reuses the same Kotlin Multiplatform UX/editor logic across Android, web and a… | ||
| Modern Compose Architecture with Circuit | Kieran Elliott | 30m |
Circuit is a Compose-first UDF library that moves presenter state into the Compose runtime and replaces Flow boilerplate with a simple presenter interface, a… | ||
| Adopting Jetpack Compose @ Scale | Vinay Gaba, Christina Lee, Lauren Darcey, Alejandro Sanchez, Zach Klippenstein | 01h 08m |
Large apps describe concrete wins and pain points: Airbnb started experimenting in April 2020, open sourced showcase, and ported a Compose design system over… | ||
| Bootstrapping Simple Server Driven Ui from a Design System | Abdulahi Osoble, Ahmed El-Helw | 42m |
Careem builds a server-driven UI layer on top of its design system using Jetpack Compose and SwiftUI and a polymorphic payload model that deserializes into a… | ||
| Getting ready for Kotlin Context Receivers | Brent Watson | 34m |
Experimental Kotlin context receivers require enabling -Xcontext-receivers and compile to functions that the JVM sees as extra parameters — bytecode adds… | ||
| Supercharging IDE and Sync Performance | Ben Schwab | 32m |
Airbnb replaces inactive Gradle modules with published AARs versioned by content hash, stores a version-map in S3 tied to main branch commits, and CI publishes… | ||
| Improving Android Developer Experience with Gradle Build Scans | Nelson Osacky, Rooz Mohazzabi | 36m |
Shows how Gradle Build Scans (free at scans.gradle.com) captures full console logs, environment and dependency graphs so CI failures no longer need 20… | ||
| 90s Website … in 2023 on mobile in Compose … for science | Maia Grotepass | 42m |
Recreates a '90s GeoCities aesthetic using Compose Multiplatform, web‑safe palettes (216 colors), Comic Sans/Times New Roman, tiling image brushes and shader… | ||
| Monitor App performance using Jetpack Benchmark | Sagar Das | 40m |
Jetpack Benchmark (stable since 2022) measures real results: macrobenchmark for cold/warm/hot startup and frame timing (initial vs full display) and… | ||
| Plugging into Anvil and powering up your dependency injection | Ben Dowden, Drew Heavner | 40m |
Explains extending Anvil with a custom code generator that reads Kotlin PSI, uses KotlinPoet to emit merge subcomponents and parent interfaces, and registers a… | ||
| Coroutine-Driven Android Billing- Use Cases, Fallbacks, and Functional Programming | Ryan Newsom | 23m |
Coroutine-based wrappers convert the listener APIs into suspending calls so the billing client is withGoogleBillingClient wrapper that guarantees a connected… | ||
| Unlocking Mobile App Security- Key Insights for Navigating a Rapidly Evolving Threat Landscape | Krishna Vishnubhotla | 21m |
Zimperium Labs assessed a million apps and finds OWASP failures even in the top 100–150 titles, with OWASP violations through the roof across sectors; a… | ||
| Managing state beyond ViewModels and Hilt | Ralf Wondratschek | 39m |
Migrates from Hilt to Anvil to enable custom scopes and stop relying on Android ViewModel lifecycles, replacing scattered coroutine scopes and init leaks with… | ||
| Kotlin-Native for Android developers | Tadeas Kriz | 41m |
Compares Kotlin/JVM and Kotlin/Native with concrete build steps: source-to-object compilation, linker producing executables, and runtime dynamic loader… | ||
| Major Savings with App Startup Shaving | John Li | 20m |
Claims a concrete win: TTI for a first screen drops from 5.9s to 1.88s — a 69% TTI reduction — by moving expensive work out of startup and using caching and… | ||
| Balancing Speed and Reliability- The Double-Edged Sword of Third-Party Libraries | Ty Smith | 40m |
An April 2020 Google Maps update causes widespread crashes, leaving millions of users blocked and costing tens of millions of dollars while teams deploy… | ||
| What's new in Paparazzi? | John Rodriguez | 39m |
Paparazzi replaces its deprecated resource repository with an IDE-style resource loader that points at actual res folders so it now supports app module… | ||
| Coupling Compose- Interoperability in a Legacy Codebase | Dan Peluso | 36m |
Starts Compose with a low-risk Wear OS app, then ports a Peloton tablet settings/profile screen by breaking UI into atomic components, reusing existing XML… | ||
| Building Shared UIs Across Platforms With Compose | Mohit Sarveiya | 34m |
A sample SwiftUI app converts a single image list to shared UI using Kotlin Multiplatform and Compose, rendering on iOS via Skia bindings (SECO) through a… | ||
| Migrating Android apps from Fragments to Jetpack Compose with Nibel | Pavlo Stavytskyi | 32m |
Library Nibel generates entry classes so Jetpack Compose screens interoperate with fragments: add UI Entry annotation and KSP emits either a fragment wrapper… | ||
| Multiplatform USB- How to Communicate Seamlessly | Mario Bodemann | 31m |
Kotlin Multiplatform code sends binary images over USB to a Badger 2040 e‑ink badge, using expect/actual boundaries and an int‑buffer image abstraction so the… | ||
| Performance Monitoring- 0 to 60 in 40 Minutes | Eder Bastos | 37m |
Blueprint for getting from zero to useful performance monitoring: measure cold start under 5s (use force-stop or ADB to reproduce), track warm ~2s / hot <1s… | ||
| The GPT-ification of Mobile App Testing | Syed Hamid | 26m |
Sophie is a no‑code mobile testing platform that provisions real devices under 10 seconds from Seattle and Dallas, runs tests at scale on Android and iOS, and… | ||
| Fireside Chat with Google Developers Expert | Madona Wambua, Moyinoluwa Adeyemi, Sierra O’Bryan, Sumayyah Ahmed | 23m |
Four people describe how the Google Developer Expert path actually works: community mentoring, conference talks, blogs and open‑source contributions that… | ||
| Trio- Compose Architecture with Mavericks | Yvonne Wong, Eli Hart | 43m |
Airbnb describes Trio as a Compose-first feature framework built on Mavericks that moves navigation into view‑model state and guarantees type-safe cross‑module… | ||
| SBA- Journey to a New Architecture | Christina Lee | 43m |
Pinterest replaces flexible MVP with a concrete State-Based Architecture (SBA) that enforces sealed-event schemas per feature, an event handler as the only… | ||
| Designing for Disconnection- The Mental Model of Offline Apps | Matt McKenna | 23m |
Argues that online and offline are a single latency spectrum and proposes a local first architecture that writes to on-device storage and relies on a… | ||
| Boosting Compose UI from Sluggish to Snappy | Akshay Chordiya, Tasha Ramesh | 44m |
A Tinder-clone card stack shows UI frames exceeding 300 ms against the 16 ms target; GPU rendering bars and Android Studio profilers plus the composition… | ||
| Unlocking the Power of Shaders in Android with AGSL and Jetpack Compose | Rikin Marfatia | 34m |
Shows how AGSL runtime shaders plug into Jetpack Compose via a RuntimeShader and ShaderBrush or as a renderEffect, with concrete code: uniforms for resolution… | ||
| Reap the benefits of Android Studio | Sweety Bertilla Francis Xavier | 39m |
Android Studio Electric Eel and later add-ins let developers do real work inside the IDE: view Firebase Crashlytics in App Quality Insights without visiting… | ||
| Powering up Dagger for Less Code and Cleaner Architecture | Sumayyah Ahmed | 30m |
Explains that Dagger compiles into real Java objects that generate factory provider classes and a component object that owns all bindings and their lifecycles… | ||
| Material You Review | Mike Wolfson | 44m |
Walks through Android’s UI evolution with concrete artifacts: a 2010 MVP app (Droid of the Day) that later gets a Material refresh and a 4.5‑star feature at… | ||
| Building graphs in Jetpack Compose with Canvas | Cameron Jump | 28m |
Builds custom line and bar charts with Jetpack Compose Canvas using a composable base that computes coordinates and accepts pluggable draw lambdas via the… | ||
| Putting a Jetpack on your legacy codebase | Kurt Nelson | 38m |
Pinterest runs a single large 2012 app with ~100 monthly committers and legacy custom screen manager code that mimics fragments and blocks libraries like… | ||
| Pruning Your App- Good Practices for Reducing App Size | Chrystian Vieyra | 33m |
Practical recipe: convert PNGs to WebP and vectors to drop image weight (one photo 1.6 MB → 830 KB with lossless WebP, then to 48 KB at 80% lossy), enable R8… | ||
| Practical Magic with Animations in Compose | Rebecca Franks | 36m |
Shows step-by-step implementation of a nonstandard navigation drawer in Jetpack Compose that translates, scales to 0.8 and rounds corners using graphicsLayer… | ||
| Top Build Performance issues in Android projects - 2023 Edition | Nelson Osacky, Inaki Villar | 36m |
Shows concrete causes and fixes for slow Android builds: repeated build caching misses from path sensitivity (KSP, Room), a JDK bug where URL.hashCode changes… | ||
| Reimagining text fields in Compose | Zach Klippenstein | 35m |
A redesigned text field API ships in 1.6 alphas with a new basic text field two that hoists internal state into a mutable text field state and a mutable text… | ||
| Kotlin Multiplatform- From “Hello World” to the Real World | Russell Wolf | 36m |
Kotlin Multiplatform moves from a KMM plugin Hello World to production patterns: Touchlab reports multi-year production use, a Gradle plugin KMMBridge to… | ||
| Coroutines, Flow & Android- The Good Parts | Bill Phillips, Stephen Edwards | 45m |
Concrete rules and gotchas: avoid no heap allocated coroutine scope references because storing a scope (transaction.executeIn example) silently drops launched… | ||
| Unlock Your App’s Potential | Michael Genewich, Praveen Chavan | 31m |
Qualcomm maps actual device features to developer APIs: a QSSI single system image promises a common Android API across Snapdragon tiers; Camera2 + API level… | ||
| Shared mobile UIs with Compose Multiplatform | Sebastian Aigner | 51m |
Compose Multiplatform from JetBrains lets teams write one Compose UI that runs on Android and iOS, with examples shipped (DroidCon app) and production use… | ||
| JDKs and SDKs | Michael Bailey | 42m |
Explains concrete mismatch failures and fixes: JDKs ship every ~6 months with LTS (8,11,17,21), the TCK is ~100,000 tests, and class file versions matter (for… | ||
| Beyond the Mockery- Why We Should Embrace Testing Without Mocking Frameworks | Ash Davies | 31m |
Argues that heavy use of Mockito creates brittle, slow, and hard-to-read tests: Mockito returning nulls and mocks returning mocks hide failures, suffer… | ||
| The joys and challenges of building a paywall with BillingClient 5 | Jonny Hatch, Dan Pannasch | 26m |
Shows migrating from legacy SKU-style Billing Library 4 to Billing Library 5 where subscriptions become hierarchical: one subscription with multiple base plans… | ||
| Measuring and Improving Performance- Insights from One of Cash App's Main Screens | Colin Marsch | 25m |
Built a central applet provider model that timestamps when each applet enters loading and finishes in adopted, unadopted, unavailable or error states, enabling… | ||
| Case Study- How Android Platform @ Reddit learned to stop worrying and embrace DevX | Lauren Darcey, Geoff Hackett, Eric Kuck, Fano Yong | 40m |
Reddit’s Android platform converts multi-hour builds and week-long PR cycles into local builds measured in seconds or single-digit minutes by issuing M1… | ||
| Beyond the Basics- Performance Monitoring and User Experience for Mobile App Growth | Sean Higgins | 14m |
Instabug runs on nearly 3 billion devices and serves over 25,000 mobile app teams, and the talk shows concrete monitoring additions: session replay with logs… | ||
| Walk, Run, Fly - Take your build pipeline to the next level! | Nick Sanjines | 23m |
Claim: an Android CI build drops from 45 minutes to 1 minute 23 seconds by using a remote build cache and incremental task avoidance. Uses Gradle (or Bazel for… | ||
| Composing Creatively with Custom Layouts | Huyen Tue Dao | 40m |
Argues that custom layouts in Jetpack Compose are often simpler and clearer than ConstraintLayout, using the layout composable and layout modifier with a… | ||
| Best practices for shielding mobile apps from emerging threats | Jan Vidar Krey | 22m |
Defines app shielding as runtime and at‑rest defenses, claims Promon tech is integrated into 1 billion end users, and demonstrates concrete attacks: reverse… | ||
| Be Aware & Prepare- Independent Security Reviews Build User Trust | Jonathan Seals | 16m |
Independent MASA validation offers a Play Store badge after a 2–3 day level‑one assessment against OASp MASVS, with testing showing 150 apps tested and those… | ||
| Why ANRs are Hard to Solve and What You Can Do to Make it Easier | Fredric Newberg | 29m |
Embrace monitors mobile apps and argues ANRs are broader than UI-thread blocks, with Google enforcing a 47% DAU threshold (only ~1 in 213 users can have an… | ||
| The Art of KMP: what you need to know as a multiplatform developer | Lena Stepanova | 35m |
Describes using Kotlin Multiplatform to build two production apps that shorten time and cut costs while KMP is still experimental, requiring Gradle multimodule… | ||
| Interception | Sam Edwards | 36m |
Demonstrates concrete interception techniques: adding OKHttp interceptors to an HTTP client (pass-through, logging, modifying headers, short-circuit, caching)… | ||
| The Unyielding Spirit of Android | Adam McNeilly | 45m |
A concise history and status report: Android community origins trace to Droidcon Berlin 2009 after Android’s first public demo in London 2008, community work… | ||
| Deep Dive Into Size Configuration Changes | Alex Vanyo | 30m |
Size configuration values represent the activity’s window, not the physical screen, and can differ because of dynamic insets and integer rounding (example… | ||
| nothing matches | ||