Android
Articles on Android performance, Kotlin optimization, Gradle builds, and building responsive Android apps.
Android engineering articles 571–600 of 942
Reducing Android Build Time at Scale
Patrick Brochado from BlaBlaCar turned a 13-minute Android build into a 4-minute one. His team was losing 8 hours of productivity every single day to slow builds.
Creating Airbnb's Page Performance Score
Airbnb ditched single-metric performance tracking and built something better. Here's how they unified web, iOS, and Android performance into one 0-100 score.
Android Developers Blog: Improving App Startup: Lessons from the Facebook App
Facebook's Android app serves 2.9 billion users monthly. Their startup optimization strategy cut bad starts by focusing on one counterintuitive metric.
The state of managing state (with Compose)
Cash App's Jake Wharton just open-sourced their solution to a problem every mobile team faces: state management code that's impossible to read.
The Beginner's Guide to Kotlin Coroutine Internals
Sonic Wang from DoorDash breaks down Kotlin coroutines from bytecode to scheduler. If you've ever wondered what actually happens when you call 'suspend', this deep dive reveals the magic.
Beyond Mobile First: Modern Mobile Development Strategy
Ryan O'Neill from Square reveals why 9 out of 10 mobile shoppers think their experience could be better. His team's solution? Stop thinking mobile-first and start thinking app-first.
Mobile Performance @ Lyft
Lyft was serving 17.1M riders while their Android app launched 15-20% slower than competitors. Time to fix that.
Traveloka Android Dynamic Feature Module Migration
Anisha Inas Izdihar and Yusuf Cahyo Nugroho from Traveloka cut build times by 37% and saved users 15MB of storage. Here's how they migrated 26 modules to Android's Dynamic Feature Module framework.
Making Hermes the Default JavaScript Engine
Meta's Hermes team cut app startup time in half and reduced GC pauses by 34x. Here's how they're making it the default engine for React Native.
Browse Page Refactoring on Android
Jintin from Carousell reveals how a 3,000+ line Presenter became their team's productivity nightmare. Their solution? A strategic mix of refactoring AND rewriting that didn't require months of downtime.
Android Jetpack Compose
Buğra Yetkin from Teknasyon Engineering breaks down why Android teams are ditching XML and fragments for Jetpack Compose. The promise? Less code, better performance, and a completely new way of thinking about U...
We release our Android apps every day (Android App Continuous Deployment)
Doist went from scary 2-hour manual Android releases to shipping every single day. Here's the engineering playbook that made it possible.
8 Tips Learned from Adding Payments to DoorDash's Android App
DoorDash's Android team learned the hard way that adding payments isn't just about processing transactions. It's about building a system that scales across countries, payment methods, and user expectations.
A Importância da Performance Para Apps Mobile
Victor Oliveira from Mercado Libre reveals a harsh truth: 53% of users uninstall apps due to performance issues. With 4.5 billion active Android and iOS devices worldwide, each performing differently, mobile pe...
Identifying and Handling Android Build Memory Issues
Doni Winata from Traveloka's Android Infra team reveals why constantly increasing Gradle's heap size actually makes your build problems worse. His deep dive into Android build memory issues shows how to stop fi...
Open Sourcing Thumbprint Native Design System
Mallika Potter and Kevin Beaulieu from Thumbtack reveal how they open-sourced their entire native design system—and the surprising technical challenges they had to solve first.
Designing Resilient Systems Beyond Retries (Part 1: Rate Limiting)
Grab's engineering team learned the hard way: retries and circuit breakers aren't enough when you're running hundreds of microservices at scale.
A Saga of Improvement in Android App Performance (Part 3)
Tokopedia built an internal tool that automatically finds Android performance bottlenecks. No more manual trace analysis or guessing which methods are slowing you down.
Improving Product Reliability by Imposing Constraints as a Part of CI/CD Process
Revolut built a system that automatically blocks code deployments based on security risk and bug count. Here's how they shifted security left without slowing down 165,000+ pull requests.
Tech Modernization at scale — Blog Series
Walmart's engineering team learned the hard way: breaking up a monolith without fixing team structure just creates a distributed mess.
Superpack: Pushing the limits of compression in Facebook’s mobile apps
Meta's Superpack compression tech achieves what traditional tools couldn't: keeping app size in check while developers ship code at massive scale daily.
Android Hilt Dependency Injection
Mehmet Agah Balbay from Teknasyon Engineering makes the case for ditching Dagger2's boilerplate hell. His team's switch to Hilt for dependency injection delivered real performance wins and faster development cy...
Publishing Variant-Aware Android Libraries with Source Distribution
Guillermo Mazzola from Glovo cracked a problem that's been frustrating Android library publishers since AGP 7.0: how to ship variant-aware libraries without breaking source code navigation in your IDE.
Checkmate on Compose Part 2
Zsolt Kocsi discovered that Jetpack Compose's lack of shared element transitions wasn't a limitation. It was an opportunity to build something better.
Preparing Your App for iOS 15 and Android 12
New OS releases can break your app overnight. The React Native team shares critical changes in iOS 15 and Android 12 that could impact your users.
Implementing caching for pipeline resolvers in AWS AppSync GraphQL APIs
Eric Robertson from AWS AppSync reveals how pipeline resolver caching slashed database requests by 99% for some customers. If your GraphQL API is hitting backend services too hard, this changes everything.
Checkmate on Compose Part 1
Zsolt Kocsi from Bumble built a chess app in Jetpack Compose to solve a problem that's frustrated beginners for years: engines tell you a move is bad, but never explain why.
Android App Excellence: Duolingo
Duolingo's Android app was degrading 5-10% every month. New features meant guaranteed performance regressions every 90 days.
Building Android Conversation Bubbles
Mathias Roth from Slack reveals how a hardcoded Android display name prefix saved their Conversation Bubbles implementation. What started as straightforward API work turned into a detective story involving work...
Kotlin Multiplatform: Shared Test Resources
Victoria Gonda from Square tackles a tricky KMP problem: Kotlin/Native doesn't support I/O, yet your shared tests need to read fixture files. Here's the workaround that makes it possible.