droidcon San Francisco 2017
2017-11-05..2017-11-06
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 |
|---|---|---|
| Despaghettifying the hairball | Pierre-Yves Ricau, Ella Polo | 39m |
Starts from a single monolithic module and shows concrete steps to split it: use Dgraph and Gradle dependency trees to surface package clusters, take actual… | ||
| Make Your App Instant! | Yuliya Kaleda | 48m |
Jet.com ports a full Android app into a URL-launched Instant App using multi-module Gradle (com.android.feature, com.android.instantapp), splitting code into… | ||
| Optimizing Android Build Performance | Hans Dockter, César Puerta | 48m |
Twitter instruments Android Studio 3.0 and Gradle features to cut build time: enable the Gradle daemon, use the build cache (local + CI remote) and incremental… | ||
| Canvas Drawing for Fun and Profit | Ryan Harter | 41m |
Shows how Android Canvas APIs draw a fully parametric donut: base circle + clipPath difference for the hole, icing generated by a compose PathEffect (discrete… | ||
| Generating Kotlin Code | Jake Wharton, Alec Strong | 37m |
Kotlin generation moves many runtime checks into compile time (nullability, readonly lists, constructor-enforced fields) and often replaces Java builders; the… | ||
| In-depth path morphing w/ Shape Shifter | Alex Lockwood | 39m |
A web app called Shape Shifter auto-generates Android path morphs by adding dummy points, converting lines to cubic beziers, and reordering vertices so SVG… | ||
| Change Can be Good: The New World of Android Oreo | Dan Galpin | 34m |
Android Oreo enforces real background and location limits: background services throw IllegalStateException unless moved to startForegroundService and promoted… | ||
| Efficient Lazy Loading for RecyclerView with Room | Yigit Boyar, Chris Craik | 41m |
Shows why SQLiteCursor’s built-in paging (a 2MB cursor window that even does a one-third overlap on reloads) causes wasted work and inconsistent views, and… | ||
| Litho: A Declarative UI Framework for Android | Lucas Rocha | 45m |
Litho is an open source UI framework (open sourced April 2017) that shifts layout off the main thread and reduces view inflation by calculating bounds in a… | ||
| Stay Calm and Modularize | Lyla Fujiwara | 44m |
Modularizing a simple app takes less than a day using Android Studio’s refactor modularize tool and splitting into an instant app module, an installed module… | ||
| UI testing is so easy - said no developer ever | Valera Zakharov, Kevin Lai | 43m |
Slack builds a power pack pattern to make Espresso UI tests hermetic and targeted, replacing repetitive Mockito setup and Dagger wiring with pack classes that… | ||
| Thinking Beyond the REST API: gRPC for Android | Samantha Bobra | 35m |
VSCO moves client analytics from fragile JSON hashes to an IDL-backed contract (shared .proto) that generates Java stubs, uses Protocol Buffers (lite) for… | ||
| Clean app design with Architecture Components | Chuck Greb | 47m |
Shows a concrete migration: keep an MVP passive‑view presenter as pure display logic, add a ViewModel to hold UI state that survives configuration changes so… | ||
| Mocks, Stubs, and Spies, Oh My! | Brian Gardner | 36m |
Covers five concrete test doubles — mocks, stubs, spies, dummies, fakes — and shows when to use each: mocks verify interactions and use mock()… | ||
| Codelab: Hands-on with Branch Deep Links, Instant Apps, and Instant Links | Evan Groth | 20m |
Branch demonstrates a hands‑on Branch SDK integration in Android Studio that wires web → instant app → full app routing, passing context via the show install… | ||
| Advanced animations with ConstraintLayout | John Hoford, Nicolas Roard | 43m |
Demonstrates using Android Studio 3.0 and ConstraintLayout 1.1 beta to animate UIs by changing constraints at runtime, either via direct manipulation… | ||
| Architecting Amp: Android integration with embedded systems | Pierce Johnson | 15m |
Lyft builds a BLE LED device called Amp that uses a 26-page device protocol of byte commands (op code + args) to start/stop animations, report battery and… | ||
| Blazing Fast Android Development: Hot-Swapping Modules with Buck | Josiah Gaskin | 36m |
Open-source build system Buck adds a debug-only hot reload that pushes only changed secondary dex files via exopackage, replaces a throwaway classloader… | ||
| Understanding and Implementing Audio on Android | Caren Chang | 16m |
Explains Android audio pipeline from file → resampling/effects/mixer → DAC and why kernel-timed consumption creates strict deadlines that cause dropouts… | ||
| Boost the Quality of Your App with Firebase | Doug Stevenson | 46m |
Crashes drive one-star reviews — about 50% of one-star ratings mention stability — so use Firebase Test Lab to run Espresso instrumentation, Robo test crawls… | ||
| view to pixel | Britt Barak | 41m |
Explains exactly how a View becomes pixels: input → animation → measure → layout → draw runs on the main thread choreographed by Choreographer and Looper, with… | ||
| API Design as an Art | Zac Sweers | 39m |
AutoDispose is an RxJava2 utility for automatic stream disposal built and rewritten about six times to solve real Java pains: leaking disposables, generics… | ||
| Rx Concurrency: A Prescription for Multi-threading | Blake Meike | 39m |
Compares AsyncTask pitfalls to RxJava by showing concrete fixes: replacing 18 lines with four lines of Rx keeps parsing logic unchanged, moves network work off… | ||
| Ok Google, we need to talk | Eliza Camberogiannis | 40m |
Covers building a booking-style Google Assistant agent using Dialogflow (formerly API.ai) with a concrete pipeline — list actions, draw decision trees, decide… | ||
| Codelab: Build an Android app with Firebase and Cloud Firestore | Abe Haskins | 36m |
Builds an Android restaurant app using Cloud Firestore and Firebase Authentication, with a provided FriendlyEats sample app. Code writes restaurants (add… | ||
| Transitions without Activities or Fragments | Chris Horner | 40m |
Shows how to run Android Transitions without Activities or Fragments by wiring TransitionManager.beginDelayedTransition with custom TransitionSets (Fade +… | ||
| Codelab: Optimizing Usage of Bluetooth Peripheral Devices | Manuel Caicedo | 51m |
Covers Android Bluetooth Classic and BLE APIs and a Zebra SDK that folds the messy native stack into three classes (connection, device, printer) so discovery… | ||
| Rewind capture format on IG Stories | Will Bailey | 23m |
Built pinned stickers that follow tracked regions in video using a native C++ region tracking C++ lib from Facebook applied machine learning, decoding frames… | ||
| Magical App-to-App Integrations | Ty Smith | 42m |
Covers concrete patterns and gotchas for app-to-app work: implementing HTTP deep links plus Android assetslinks.json and Play Store referral handling to… | ||
| Fun with Native Code on Android | Eric Butler | 37m |
Builds a working Android TV emulator front end by wiring C libraries to Kotlin with Java Native Access (JNA) instead of JNI, using generated bindings (JNAator)… | ||
| The Creative Technologist | Corey Leigh Latislaw | 40m |
Argues creativity is a trainable engineering skill backed by neuroplasticity and practical habits: daily sketching roughly five times a week, a three-month… | ||
| The Reactive Workflow Pattern Update | Ray Ryan | 47m |
Square’s Point of Sale app refactors its tangled 300‑screen, ~750k‑line codebase (200 contributors, 7+ years) into Rx‑based Reactive Workflows made of small… | ||
| Kotlin: Uncovered | Victoria Gonda | 33m |
Uses IntelliJ/Android Studio Show Kotlin Bytecode → Decompile to turn Kotlin into Java and inspects the results. Shows that data classes generate componentN… | ||
| Inside Instant Apps | Eric Lafortune | 38m |
Deep dive into Instant Apps internals with concrete results: an implementation that automates conversion from 4 weeks to 4 minutes, converted 25 open-source… | ||
| Improve user experience and retention with the Android Autofill Framework | Felipe Leme | 45m |
Android O adds a platform Autofill Framework that replaces accessibility hacks by sending a sanitized view structure from the app to the system which forwards… | ||
| Make Your Build Great Again | Jared Burrows | 55m |
Optimizes a large multi‑dex Android build for Yammer by changing Gradle properties, plugin versions and JVM args, enabling Gradle build cache, using parallel… | ||
| Instant Apps + Deep Linking 101 | Evan Groth | 28m |
Branch claims Branch links can carry JSON payloads through installs and deliver them instantly to installed apps (the team says payloads return in zero… | ||
| Android Battery @ Facebook | Abhishek Choudhary, Kunal Bhalla | 37m |
Shows how Facebook measures battery in production by instrumenting CPU frequency, radio bytes and tail time, camera open time, location accuracy and wake… | ||
| Write once, ship multiple times | Zeljko Plesac | 41m |
A practical guide to building Android white‑label apps: aim for 90–95% shared code, prefer a thin client architecture over fat clients to avoid forced updates… | ||
| Hella-Parallel Compute with RenderScript | Lydia Schiff | 39m |
VSCO’s Android imaging pipeline runs almost entirely on RenderScript for over three years, processing 12 million pixels (4K) images without blowing the Java… | ||
| Serial: Improving Data Serialization on Android | Alison Fauci | 36m |
Twitter for Android replaces Java Serializable with a custom framework called serial that uses explicit object serializers and static instances to write… | ||
| The lesser-known world of Spans | Saket Narayan | 23m |
Explains that Android uses Spannable types (SpannableString, Spanned) so getString strips spans while getText can return a Spanned, details that… | ||
| One for all, all for one: The Journey to Android Monorepo at Uber | Gautam Korlam | 31m |
Uber migrates 100+ repositories into a single monorepo over 2–3 months while preserving Git history, shrinking checked-in files to ~75k and repo size to… | ||
| Looper.loop() - Understanding Android's Message Queue | Tony Lenz | 29m |
Explains how Android really calls app code: the system boots a zygote forked process, ActivityThread runs a main Looper.loop that processes one message at a… | ||
| Building Modern Cross-Platform Apps with Flutter | Vinay Gaba | 35m |
Flutter claims native‑speed 60 fps mobile apps by compiling Dart ahead‑of‑time into native code, avoiding a JavaScript bridge and shipping its own rendering… | ||
| Redex, Your Build, And You | Chris Sarbora | 32m |
Redex is a Dalvik (.dex) optimizer that runs after DX on APKs, works alongside Proguard, and Facebook measures roughly a 25% reduction in cold-start time and… | ||
| Doppl Code Sharing | Kevin Galligan | 34m |
Doppel is a build tool and library set that uses J2ObjC to convert Java to Objective‑C so business logic, Room DB, Retrofit, RxJava, Dagger and Android… | ||
| Break your app before someone else does | Ana Baotić | 43m |
Shows how to extract an APK with ADB pull, inspect permissions and manifest, and use apktool rebuild to add or remove assets then re‑sign with a custom… | ||
| A/B Testing From The Ground Up | Jonathan Maltz | 45m |
Yelp’s Android experimentation platform uses repeatable bucketing by hashing an identifier with an experiment-specific salt to avoid correlated assignments… | ||
| Lint for Life: Your Customizable Guard On the Go | Snow Zhao | 46m |
Demonstrates a custom Android Lint rule that flags constructors with more than two parameters and suggests a generated builder, implemented with UAST/PSI… | ||
| Creating the Lyft Driver App: Reduce, Reuse, Recycle | Ryan Tempas | 31m |
Lyft splits one unified app into separate Passenger and Driver APKs by modularizing features, moving deep links and long‑running jobs into feature modules, and… | ||
| Building Camera Apps on Android Today | Praveen Chekuri | 35m |
Covers three concrete approaches: fire an intent for quick profile/photo capture; drop in a library like Photoapparat or CameraView for an embeddable UI; or… | ||
| Optimizing Android apps for desktop experience | Victor Okunev | 42m |
Demo of Samsung DeX shows Android N multi-window actually running as resizable desktop windows with taskbar, keyboard shortcuts (Ctrl+C/V/A), mouse support… | ||
| Building a DSL… in Kotlin! | Pablo Guardiola | 34m |
Kotlin plus KΛTEGORY builds a real DSL by modeling operations as a sealed class algebra lifted into a free abstraction, then interpreting that AST into… | ||
| ShapeShifting: Creating delightful icon animations | Or Bar | 31m |
Explains how Android VectorDrawable maps SVG path data to animatable parts, shows that morphing requires paths with the same number and type of commands (so… | ||
| A Practical Guide To master Rx Streams | Mayank Mehta | 37m |
Capital One Wallet runs a reactive MVVM on RxJava 2 and replaces callbacks with Singles, fromCallable and Single.create to model API and heavy work… | ||
| Android like a (reliable) Rock Star - All About Android Continuous Integration | Mark Scheel | 36m |
Practical roadmap for Android CI that names tools and outcomes: run a build on every commit, run tests, lint and code-style checks, save artifacts, and deploy… | ||
| Debunking Android Security Myths with Data | Dan Quagliana | 32m |
Claims that Android is uniquely broken get countered with data and concrete fixes, not platitudes: the infamous Stagefright headline (950 million devices… | ||
| Android History, from the Inside | Chet Haase, Romain Guy | 59m |
Insider chronology from pre-1.0 through Oreo names concrete milestones: the M3 emulator running on the internal “Sooner” device, the T‑Mobile G1 launch, live… | ||
| Upgrading to Moshi | Eric Cochran | 49m |
Moshi bills itself as Gson 3 and claims a smaller, safer replacement: it uses Okio to share buffer segments and cut method count roughly in half (binary ~188… | ||
| Make Your App Instant! | Yuliya Kaleda | 48m |
Jet.com’s team builds a multi‑module Instant App using Gradle plugins (android‑feature, android‑instantapp), APK Analyzer and ProGuard, plus WebP, Smart Lock… | ||
| UI testing is so easy - said no developer ever | Valera Zakharov, Kevin Lai | 43m |
Slack proves reliable Android UI testing at scale by making tests targeted and hermetic and automating state setup. They run 555 functional UI tests, use… | ||
| Hot Off the Open-Source Grill: RIBs, Scalable Multiplatform App Architecture | Brian Attwell | 36m |
Uber outgrows its old single-activity app and builds RIBs as a multiplatform framework (Java and Swift) that isolates state in a hierarchical tree, scoping… | ||
| Android Internals for Developers | Effie Barak | 43m |
Android runs on the Linux kernel but adds phone-focused changes: an aggressive OOM killer that trims background apps (example: processes drop from 30 to 26… | ||
| nothing matches | ||