Android
Articles on Android performance, Kotlin optimization, Gradle builds, and building responsive Android apps.
Android engineering articles 721–750 of 942
Lyft's Journey Through Mobile Networking
Michael Rebello from Lyft reveals how they scaled from hand-written APIs to a unified networking architecture serving 500+ endpoints. The journey involved killing technical debt, slashing payload sizes by 50%, ...
Store Grand Re-opening: Loading Android Data with Coroutines
Dropbox just took over Store, the popular Android data loading library, and rewrote it from scratch in Kotlin. The reason? RxJava was making it too easy for developers to leak memory.
Journey to a Faster Everyday Super App
Grab cut app startup time by 60% while shipping dozens of new features. Here's how they did it without compromising velocity.
Journey to a Faster Everyday Super App: Where Every Millisecond Counts
Grab reduced their super app's startup time by 60% while shipping dozens of new features. Here's how they saved users 59,582 hours per day.
Better Android Testing at Airbnb (Part 4: Testing ViewModels)
Airbnb built a testing framework so elegant that their ViewModels tests read like plain English. Here's how they made testing actually enjoyable.
Targeted Code Coverage Reports For Android Continuous Builds
Brian Terczynski from Thumbtack reveals how their Android team solved a critical problem: developers couldn't see which specific lines in their code changes lacked test coverage. The solution? Two custom report...
Reactive Data Flow in Revolut Android App
Roman Iatcyna from Revolut reveals how they built a reactive data layer that handles offline-first architecture at scale. Their solution? A custom DataObservableDelegate that abstracts away the complexity of mu...
Improving GraphQL API performance and consistency with AWS AppSync Caching and DynamoDB Transactions support
AWS just shipped two features that solve opposite problems: making GraphQL APIs blazing fast and keeping DynamoDB writes bulletproof. Here's how they change the game for mobile backends.
React Native Doctor Diagnostic Tool
How much time does your team waste debugging React Native environment setup? The React Native Community just shipped a solution that auto-fixes your dev environment issues.
Modernizing Our Android Build System Part II: The Execution
Dropbox migrated 75 Android modules from a custom build system to Gradle without breaking their engineering team's workflow. Here's how they pulled it off.
Modernizing Our Android Build System Part I: The Planning
Dropbox's Android build system was so painful that engineers 6+ months in still couldn't create new modules. Time for a rebuild.
A Summer of Android at Strava
Artem Sharypov from Strava's Experience team rebuilt their entire Android upload service from scratch. Why throw away working code? Because sometimes technical debt costs more than a rewrite.
Building High-Performance Mobile Applications at Netflix
Netflix hosted their first mobile engineering event to tackle a problem every mobile team faces: building performant apps on resource-constrained devices.
React Native 0.61 Release
React Native's hot reloading was so broken that most developers just turned it off. The 0.61 release completely reimagined it from scratch.
Dagger and Multi-Module Architecture in Traveloka Android App
Alifa Nurani Putri and Yusuf Cahyo Nugroho from Traveloka reveal how their single Dagger component ballooned to 17,705 lines of code across 25+ products. Their refactoring journey cut initialization time and bu...
OOM Bitmap Resource Analysis and Optimization
Ansgar Lin from Grindr Engineering found a single placeholder image consuming 8.3MB of memory at runtime. On devices with only 16-32MB Java heap, that's a recipe for constant crashes.
Integrating React Native into Existing Android Applications
Callstack explores how to add React Native to existing Android apps without a full rewrite. This brownfield approach lets teams ship cross-platform features while keeping their native codebase intact.
A Day in the Life of a Mobile Product Engineer at Slack
Kevin, a Staff Engineer at Slack, shares how a distributed mobile team ships features across Vancouver and San Francisco without stepping on each other's toes. His secret? Strategic work separation and dogfoodi...
Gradle Remote Build Cache Optimization
Nelson Osacky from SoundCloud reveals how simply turning on Gradle's remote build cache got them almost zero cache hits. The real work was hunting down why.
Running Android Instrumentation Tests on Circle CI Without a Third Party Service
Doğu Deniz Uğur challenges CircleCI's own documentation. While the official docs say Android emulator tests aren't supported on their Linux VMs, he found a workaround that eliminates the need for Firebase Test ...
The Not-So-Hidden Cost of Sharing Code Between iOS and Android
Eyal Guthmann from Dropbox shares a hard truth: writing code once in C++ cost them more than writing it twice in native languages. Here's why their cross-platform strategy backfired.
Ad Metrics Quality And Testing On Mobile
Maya Reddy from Pinterest reveals how their team eliminated last-minute P1 bugs by automating ad metrics testing. The shift from bi-weekly manual QA to continuous integration transformed their release confidenc...
Transitioning to Android
Bianca Gandolfo spent 7 years mastering JavaScript—then faced an identity crisis when asked to switch to Android. Her internal debate reveals a tension every specialist faces: go deeper or go broader?
Introducing Nanoscope: An Extremely Accurate Method Tracing Tool for Android Development
Uber's Android team hit a wall: their profiling tools were either too slow or too inaccurate to debug real performance issues.
Android Inter-Module Navigation with Dagger
Robinhood's Android team cracked a tough modularization puzzle: how do you navigate between completely decoupled feature modules without creating dependencies?
Hermes JavaScript Engine for React Native
Facebook just open-sourced Hermes, a JavaScript engine built specifically for React Native on Android. This isn't just another optimization tweak. It's a ground-up rethink of how JS should run on mobile.
Handling WebP OutOfMemoryError in Android
Ansgar Lin from Grindr Engineering discovered their app was crashing with OutOfMemoryErrors, and the culprit wasn't bad code. It was a tiny WebP image causing massive runtime memory allocation.
React Native Version 0.60 Release
React Native 0.60 just dropped with changes so significant, they're calling it a migration milestone. If you're still manually linking native modules, this changes everything.
OkHttp 4 Goes Kotlin
Jesse Wilson from Square just rewrote 25,000 lines of Java code in Kotlin without changing a single feature or fixing a single bug. Here's why that matters for your Android app.
Android Jetpack Benchmark: JSON Parser Performance
Mootaz Ltaief from OLX Engineering put four popular Android JSON parsers head-to-head using Jetpack Benchmark. The results reveal a brutal tradeoff: the fastest parser costs you 1.1 MB of app size.