iOS
Articles on iOS performance, Swift optimization, Xcode tooling, and building fast Apple platform apps.
Recent Releases
Version history →Articles about iOS (699)
Shorebird's Ongoing Performance Work for Flutter 3.44+
Shorebird is tackling Flutter performance head-on with their work on version 3.44+. If you're shipping Flutter apps, this matters.
Revisiting the Just Eat Takeaway iOS Modular Architecture in 2026
Alberto De Bortoli from Just Eat Takeaway reveals how a simple UI component exposed a 7-year-old architectural blind spot. The fix? Stop organizing by graph position, start organizing by purpose.
Building a NavigationStack-Like SwiftUI Navigation Layer for Lower iOS Versions
Gishantha Darshana from PickMe Engineering built a NavigationStack-style router that works on iOS 15. No more hidden NavigationLinks cluttering your SwiftUI views.
How to Test iOS Apps in Different Time Zones on a Physical iPhone
Antoine van der Lee just cracked a problem that's plagued iOS developers for years: how do you test time zone changes on a real device without boarding a plane?
The Mistake That Taught Me to Use Flutter Flavors
Abdelrahman Khalil accidentally shipped a production app pointing to staging servers. That painful mistake led him to master Flutter Flavors—and he's breaking down exactly how to avoid the same fate.
Deep Dive into iOS Automation at Grab - Continuous Delivery
Grab's iOS team ditched Fastlane for custom bash scripts and built a Slackbot named Iris (reverse of Siri) to automate their entire build pipeline. Sometimes simpler really is better.
How AI Learned to Investigate Mobile Build Failures Like an Experienced Support Engineer
Archana Indran's team at Salesforce turned years of mobile debugging expertise into AI that investigates build failures like a senior engineer. Eight people now support 60+ repositories with less firefighting.
Memberwise Initializer in Swift explained with Code Examples
Antoine van der Lee explores a subtle Swift 6.4 change that eliminates a common source of boilerplate code. If you've ever written manual initializers just to hide private properties, this one's for you.
How We Automated iOS Unit Test Generation with AI
Kush Agrawal from Duolingo just shared how they generated 85,000 lines of iOS test code with almost zero manual effort. The bottleneck in software development has officially flipped: it's no longer writing code...
Swift 6.4: What's New in Concurrency
Antoine van der Lee breaks down Swift 6.4's concurrency updates so you don't have to parse through Evolution proposals yourself. These aren't just theoretical improvements: they solve real friction points in as...
SwiftUI Best Practices, straight from Apple's Xcode 27 Agent Skill
Antoine van der Lee reverse-engineered Apple's official SwiftUI Agent Skill from Xcode 27 and found something surprising: it's laser-focused on performance, but leaves out huge chunks of everyday SwiftUI develo...
Building Arrive's Confetti in React Native with Reanimated
Joel Besada from Shopify reveals how they built a delightful confetti animation in React Native that runs at 60 FPS without blocking the JavaScript thread. The secret? Declarative animations that execute entire...
API Testing in Mobile Apps: The Backbone of Digital Experiences
Hafsa Amanulla from PickMe reveals why your beautiful mobile UI means nothing if your APIs are broken. A delayed menu load or failed promo code isn't just annoying—it's a business killer.
Using Xcode Instruments to optimize Swift Concurrency Code
Antoine van der Lee makes a bold claim: AI-generated Swift code might look fine, but Xcode Instruments reveals the hidden performance disasters lurking beneath. Even experienced developers are getting lazy abou...
Flutter's multiplatform value for agentic development
Michael Thomsen from Google's Flutter team makes a bold claim: AI-driven development works better with a single codebase than platform-specific code. Here's why Flutter might be the secret weapon for agentic wo...
Recording a Physical iPhone for App Preview Videos
Creating App Store preview videos from physical iPhones has been a pain. QuickTime gives you square videos without bezels, and manually adding device frames is tedious.
Surviving Production: The Performance Gauntlet
Berkay Özdemir from Getir's Market Discovery Team cut category page load times from 8 seconds to 2 seconds. Then production traffic hit, and everything started crashing.
AI-Powered Xcode Simulator Automation (token-efficient)
Antoine van der Lee just shipped a CLI that makes AI agents 19% faster at controlling Xcode Simulator while using 63% fewer tokens. If you're building with AI coding assistants, this changes the game.
Never Miss a Critical App Crash Again: Integrating Firebase Crashlytics with Google Chat
Chamod Lakmal shares how discovering hundreds of weekend crashes on Monday morning pushed him to build an automated alert system. No more silent failures destroying your app's reputation while you're offline.
Unexpected Task suspension points in Swift Concurrency
Antoine van der Lee uncovered a sneaky Swift Concurrency bug that was silently destroying his app's performance. The culprit? An innocent-looking Task that was secretly hopping on and off the main thread hundre...
Saying goodbye to CocoaPods: Swift Package Manager is soon the default in Flutter!
Jenn Magder from Google's Flutter team just announced the end of an era: CocoaPods is out, Swift Package Manager is in. If you're building Flutter apps for iOS, this changes everything about your dependency man...
Immediate tasks in Swift Concurrency explained
Antoine van der Lee tackles a subtle but powerful new Swift 6.2 feature that most developers will misuse. Task.immediate promises faster execution, but it can easily freeze your UI if you're not careful.
That's a wrap: Everything Flutter at Google Cloud Next
Emma Twersky from Flutter just dropped the biggest news for cross-platform developers: full-stack Dart is here. If you've been context-switching between languages for frontend and backend, this changes everythi...
Record, generate, run: AI-powered UI test generation for iOS
Grab Engineering just turned a days-long iOS testing nightmare into a 10-minute workflow. Their AI-powered system records your app interactions and auto-generates complete UI tests, including mocks, feature fla...
Maintaining a Swift and Objective-C Hybrid Codebase
Adrianna Chang from Shopify reveals how to write new Swift code in legacy Objective-C apps without rewriting everything. The secret? Strategic bridging patterns that let both languages coexist.
Leveraging AI to build a faster iOS CI system
Muhieddine EL Kaissi from Thumbtack cut iOS CI time in half using runtime coverage instead of running every test. His Smart Test Selection system proves you don't need faster tests—you need fewer tests.
Xcode Instruments Time Profiler: Improve performance with AI
Antoine van der Lee just achieved a 25x performance improvement using AI agents and Xcode Instruments. His workflow shows how AI can analyze profiling data and iterate on optimizations faster than manual debugg...
Flutter vs. Kotlin Multiplatform: 2026 Architecture Guide
The article content appears to be just promotional copy for Shorebird rather than the actual Flutter vs. Kotlin Multiplatform architecture guide. Without the real article content, I cannot provide an accurate s...
Network Requests Optimization using Xcode's Simulator & Agents
Antoine van der Lee reveals how combining AI agents with continuous network monitoring caught bugs he'd been missing for years. The secret? Stop opening proxies only when you need them.
Flutter vs .NET MAUI in 2026: Architecture, Tooling, CI/CD, and Migration Trade-offs
The article content appears to be just a promotional snippet for Shorebird's integration tool, not the full Flutter vs .NET MAUI comparison promised in the title. Without the actual article content, I cannot pr...
From Idea to Reality: Behind Flip Slip, 3-Finger Capture, and the Pinch-to-Zoom PoC #MAKEbyKBank
Weera Youngnam from KBTG turned a personal pain point into a feature that caught executive attention. His journey from gyroscope experiments to production reveals how small PoCs can create outsized impact.
How Dart and Flutter are thinking about AI in 2026
Mariam Hasnany from Google's Flutter team just dropped their AI strategy, and the numbers reveal a massive shift: 79% of Flutter developers already use AI assistants. But there's a trust problem.
Xcode Build Optimization using 6 Agent Skills
Antoine van der Lee just open-sourced an AI agent skill that saved one iOS team 87% on incremental build times. That's 61 seconds per build, translating to 5 hours saved monthly at just 10 builds per day.
Swift 6.3 Released
Holly Borla and Joe Heck announce Swift 6.3, bringing the language to Android officially for the first time. This release fundamentally expands where Swift can run, from embedded firmware to mobile apps across ...
Performance as a Core Product Feature
Snapchat treats performance as a core product feature, not just a requirement. Their custom tracing system catches regressions that off-the-shelf tools completely miss.
Maestro at Scale: Architecting a Deterministic Mobile Test Platform
Emre Erkek from Getir reveals how they turned Maestro from a simple testing tool into a deterministic platform that runs thousands of tests daily. Most teams fail at E2E testing scale—here's the architecture th...
Expo UI in SDK 55: Jetpack Compose now available for React Native apps
Kudo Chien, Nishan Bende, and Aleksander Mikucki from Expo just made it possible to use native SwiftUI and Jetpack Compose components directly in React Native apps. No JavaScript reimplementation required.
How to Make Your Mobile App Faster
Essam Fahmy from Deloitte reveals why 70% of users abandon slow apps—and shares the exact techniques that cut load times by up to 70%. If your mobile team treats performance as an afterthought, this breakdown w...
Is SwiftUI finally as fast as UIKit in iOS 26?
Jacob Bartlett puts SwiftUI and UIKit through the ultimate stress test: a feed of 22,000 animated GIFs running at 120fps. The results might surprise you.
Building Privacy-First Analytics with Swift
TelemetryDeck is processing analytics for 16 million users monthly using Swift on the server. The infrastructure costs and performance gains are making Python and Node developers take notice.
How We Claudified Our iOS App Without Wrecking Our Codebase
Dan Federman from Tolan reveals how Claude now writes 55% of their iOS commits. And their crash-free rate improved while doing it.
Swift Combine: A Guide to Apple's Reactive Framework
Dilek Eminoğlu from Teknasyon breaks down Apple's Combine framework—the reactive programming tool that's been quietly transforming iOS async code since WWDC 2019. If you're still wrestling with callback hell, t...
Using an MCP to perform product optimizations
Antoine van der Lee stopped guessing what to build next. By connecting his AI coding agent to Amplitude analytics via MCP, he now makes product decisions backed by real user data without leaving his IDE.
XcodeGen and the Quest to Modularize the Wealthfront iOS App
Wealthfront's iOS team eliminated merge conflicts entirely and cut build times by breaking their 10-year-old monolith into modules. Here's how XcodeGen made it possible.
The 5 Numbers That Decide Whether Users Keep or Delete Your App
Half of all users uninstall an app after a single performance issue. A peer-reviewed paper puts specific numbers on the thresholds that separate apps people keep from apps they delete.
Vision-Based Mobile App Testing CLI for Claude Code
Revyl introduces a CLI tool that gives Claude Code vision-based mobile app testing capabilities. The tool interacts with apps like a human — no scripts, selectors, or element IDs needed — enabling a full write-...
Pro Tip: Use Xcode Instruments Time Profiler with AI for Performance Analysis
Antoine van der Lee (@twannl) found a quick way to get performance fixes from Xcode Instruments: deep copy the Time Profiler call tree and paste it into an AI agent.
Do you need an MCP to build your native app?
Sentry ran 1,350 trials to answer an uncomfortable question: does their newly acquired XcodeBuildMCP tool actually beat a simple markdown file for iOS development?
Swift Testing Agent Skill: Write high quality tests with AI
Antoine van der Lee from SwiftLee just open-sourced an Agent Skill that teaches AI to write Swift tests the right way. No more serialized tags killing your test performance.
Why Apple Is Secretly Betting Against Native iOS Development
Apple is quietly pushing developers away from the native iOS stack they've championed for over a decade. The evidence? Look at what they're building, not what they're saying.
Haptics with Swift: A comprehensive guide for haptic feedback with Core Haptics
Ravindu Wataketiya from PickMe makes the case that haptic feedback is the silent hero of mobile UX. It's the detail users don't notice until it's missing—and it can elevate a mediocre app to exceptional.
React Native Version 0.84 Release
React Native 0.84 just dropped with automatic performance wins for every app. No migration needed, no config changes required—just faster execution and lower memory usage out of the box.
Building Type-Safe Metrics API in Swift Part II
Phil Niedertscheider from Sentry reveals how Swift's type system can catch metric API bugs before they compile. No more sending garbage data like memory addresses to production.
Meta Distinguished Eng (IC9) On Influencing Engs, Failures, and Learnings
Adam Ernst, Meta's IC9 Distinguished Engineer, spent two years building a framework that completely failed. His brutally honest postmortem reveals more about reaching the highest IC levels than most success sto...
Building Type-Safe Metrics API in Swift Part I
Phil Niedertscheider from Sentry reveals why designing a public API took longer than building the actual feature. His deep dive into Swift's type system shows how the right language features can make or break d...
How We Release the Spotify App: A Look Under the Hood (Part 2)
Spotify's release managers were drowning in Jira tabs, juggling dozens of tickets while fielding Slack questions. One dashboard changed everything.
Core Data Agent Skill: Now available open-source
Antoine van der Lee just open-sourced a Core Data Agent Skill that could save you from rookie persistence mistakes. If you're still working with Apple's older framework, this is a game-changer.
Why Your Mobile App Is Not as Secure as You Think
Pavithra Chamod J from PickMe Engineering drops a hard truth: your mobile app's security measures are probably theater. Once an APK hits a rooted device, all bets are off.
Common Mistakes When Shifting Left in Mobile Testing
Russell Morley reveals why most mobile teams think they're shifting left in testing, but are actually just moving their pain earlier in the pipeline.
Protecting Your GraphQL
Stas Kravets shares how a Python GraphQL service's P99 timeout detection was so unreliable that only P50 requests actually timed out as expected. The culprit? IO operations under heavy load can bring down your ...
SwiftUI Agent Skill: Build better views with AI
Antoine van der Lee from SwiftLee introduces an open-source Agent Skill that teaches AI to write better SwiftUI code. No more fixing the same mistakes over and over in your AGENTS.md file.
What's New in Swift: January 2026 Edition
Nick Sloan from Studioworks processed millions in invoices with Swift on the server and saw fewer production bugs than in 20 years of web development. Here's what's happening in the Swift ecosystem this month.
Optimizing GRDB in Todoist for iOS
Todoist's iOS app became nearly unusable for some users after migrating from Realm to GRDB. The culprit? A SQL query generating 128,136 intermediate rows from just 399 actual records.
AI App Development: What I Learned in One Month
Antoine van der Lee shipped an AI-powered app in one month and hit a wall so hard he almost killed the project. His biggest mistake? Moving too fast.
Improving the Usability of C Libraries in Swift
Doug Gregor from the Swift Language Steering Group reveals how to transform clunky C library APIs into elegant Swift code without touching a single line of the original C headers.
11 Things I learned after using AI Agents full-time
Antoine van der Lee went all-in on AI agents for iOS development and jokes that 'Arie and Ingrid (AI) are doing my work while we're having lunch.' After months of daily use, his workflow has changed more than i...
Performance-Focused UIKit Rendering and Animation Flow
Rabia Mercan from Teknasyon reveals why your smooth UIKit animations are secretly destroying performance. The culprit? Offscreen rendering you never knew was happening.
Compose Multiplatform 1.10.0
Elvira Mustafina from JetBrains just dropped Compose Multiplatform 1.10.0, and it's solving one of the most annoying pain points in cross-platform development. Three different @Preview annotations? Gone.
Xcode 26: Enhanced Security for iOS Apps
Timothy Werquin from Guardsquare reveals why Apple's new Xcode 26 'enhanced security' features miss the most common iOS app threats. While exploit mitigation sounds impressive, the real danger lies elsewhere.
The Journey to Compose Hot Reload 1.0.0
Sebastian Sellmair and Azat Abdullin from JetBrains reveal how they built Compose Hot Reload 1.0.0—a zero-config tool that lets you update Kotlin UI code instantly while preserving app state. The engineering be...
Agent Skills explained: Replacing AGENTS.md with reusable AI knowledge
Antoine van der Lee reveals why he ditched AGENTS.md files across all his projects. The replacement? A reusable AI knowledge system that's already supported by Cursor, Claude, and Gemini.
Swizzling SwiftUI View Body
Noah Martin from Sentry cracked a problem that seemed impossible: swizzling pure Swift code to automatically track SwiftUI view performance. The technique is wild.
Project Butter: A Journey for App Performance Improvement
Gojek's Android app was taking 14.35 seconds to launch. With 500+ modules and millions of lines of code, something had to change.
Unlock Native Power in Flutter Part 2
Flutter developers: still treating native integration like a black box? You're leaving serious performance on the table.
Mastering Location Services in Mobile Apps — A Guide for Android (Jetpack Compose) & iOS (SwiftUI)
Pavithra Chamod J from PickMe Engineering breaks down the biggest challenge in mobile dev: making location services work seamlessly across Android and iOS without draining batteries or violating privacy.
The State of Agentic iOS Engineering in 2026
Thomas Ricouard spent only 2% of his time in Xcode last year while shipping more iOS code than ever. His secret? Treating AI agents as tireless coworkers, not autocomplete tools.
Unlock Native Power in Flutter Part 1
Flutter's cross-platform magic hits a wall when you need native APIs. Here's how to bridge that gap without losing your mind.
Demystifying user journeys: Revolutionizing troubleshooting with auto tracking
Ever tried debugging a mobile app crash without knowing what the user actually did? You're flying blind.
What's New in Swift: December 2025 Edition
Tim Sneath reflects on Swift's explosive growth: from a simple blog post 10 years ago to 70+ repositories with hundreds of weekly contributors. The language now runs everywhere from Pebble watches to AWS Lambda...
How Mobile Development Teams Use Kotlin in 2025
José Luis González, a JetBrains-certified Kotlin Trainer, reveals the production bugs that still plague mobile teams in 2025. One tiny mistake in exception handling can silently break your entire app's lifecycl...
Kotlin 2.3.0 Released
Kotlin 2.3.0 just dropped with some serious multiplatform firepower. If you're building cross-platform apps, this release fundamentally changes how you work with Swift, Wasm, and native code.
Preventing Performance Regressions on iOS Apps
JioHotstar was stuck in a frustrating cycle: fix performance issues, ship the update, watch them resurface weeks later. Sound familiar?
Exploring KotlinX Benchmark Results with Kotlin Notebooks
Filipp Zhinkin and Teodor Irkhin from JetBrains show how staring at raw benchmark tables is costing you insights. Kotlin Notebooks turn those text dumps into interactive visualizations that actually tell a stor...
React Native Version 0.83 Release
React Native 0.83 just dropped with a historic first: zero breaking changes. The team is finally delivering on their promise of predictable, painless upgrades.
How to implement iOS widgets in Expo apps
Arthur Spalanzani built an affirmations app where the widget IS the product, not a companion feature. His widget-first approach achieved 80.7% adoption and unlocked organic social sharing that traditional app s...
The Ultimate Kotlin Multiplatform Watchlist
Ekaterina Petrova curated 10 KotlinConf talks that show how Duolingo, McDonald's, and StoneCo achieved massive scale with Kotlin Multiplatform. Skip the beginner mistakes and learn from teams already shipping t...
Orchestrating our UI test suite with Maestro
Doist's Android team faced a brutal reality: their UI test suite was so flaky that only 50% of runs passed on the first try. PRs sat idle for hours waiting for reruns.
Going Universal: From a brownfield React Native and Next.js stack to one Expo app
Gunnar Torfi shares how a single developer maintained 40+ mobile screens AND a full web app by merging them into one universal codebase. No big rewrite required.
Enhancing HDR on Instagram for iOS With Dolby Vision
Chris Ellsworth, Cosmin Stejerean, and Hassene Tmar from Meta reveal how Instagram became the first Meta app to support Dolby Vision. The catch? Their initial A/B test showed people watched LESS video with the ...
Enhancing HDR on Instagram for iOS with Dolby Vision
Chris Ellsworth, Cosmin Stejerean, and Hassene Tmar from Meta reveal how Instagram became the first Meta app to support Dolby Vision. The catch? Their initial A/B test showed people watched LESS video with the ...
Embedded Swift Improvements Coming in Swift 6.3
Swift is coming to microcontrollers, and the latest 6.3 release is making it production-ready. Embedded Swift now handles everything from memory-mapped I/O to proper debugging on resource-constrained hardware.
What's New in Flutter 3.38
Kevin Chisholm from Google's Flutter team just dropped Flutter 3.38, and it's packed with the kind of productivity wins developers have been asking for. Dot shorthands alone will save you countless lines of boi...
Reverse Engineering iOS to Fix SDK Crashes
Phil Niedertscheider from Sentry reverse-engineered Apple's private frameworks after iPadOS 26 broke a fundamental assumption: that successful type casts guarantee the object is actually that type.
Grab’s Mac Cloud Exit supercharges macOS CI/CD
Grab moved 250+ Mac minis from a US cloud to a Malaysian data center. The results? 40% faster builds and $2.4M saved.
Scaling Mobile UI Testing with AI
Trendyol scaled from 4,869 to 10,400 UI tests in under a year — while keeping execution under one hour. Here's how AI became their test generation engine.
What's New in Swift October 2025
Joe Heck and Dave Lester just dropped the first edition of a new monthly Swift digest, and it's packed with signals that Swift is expanding way beyond iOS. Server-side Swift is heating up with performance gains...
I Tried to Reduce My App Size by 50%. Here's What Actually Worked
A 260 MB productivity app? One developer spent a week cutting it to 95 MB and learned most optimization advice is wrong.
Evolving Mercari's iOS codebase into a multi-product monorepo
Shingt from Mercari reveals how they transformed a single-product iOS codebase into a monorepo supporting multiple apps—without halting work for 50+ active engineers. The result? A 38.8MB binary despite 900+ mo...
Delivering Mobile App Updates Faster
Manoj Kumar Gubba from Mercari's iOS team reveals how they ship mobile updates in just 3-7 days. Most teams take 1-2 weeks, but Mercari's approach cuts that in half while maintaining stability.
How to add native code to your app with Expo Modules
Jacob Clausen from Expo shows how to break free from SDK limitations. Building custom native modules doesn't mean abandoning Expo's developer experience.
Advanced NavigationStack Patterns in SwiftUI
NavigationStack in SwiftUI works great until you're hunting through ten files to figure out why Settings opened the wrong screen. The coordinator pattern changes everything.
A Guide to Generating Swift Code with Swift Syntax and Swift OpenAPI (Part 2)
Esraa Eid from Deloitte UK tackles Swift code generation with a deep dive into SwiftSyntax and OpenAPI. If you've ever struggled with generating type-safe models from specs, this comparison will change how you ...
Kotlin Multiplatform Contest 2026
Students and recent grads: JetBrains is offering free trips to Munich for building Kotlin Multiplatform projects. The 2026 contest is open now, and the bar might be lower than you think.
Flutter for Enterprises: Everything CTOs and Engineering Leaders Need to Know
Very Good Ventures reveals why global leaders like Disney, Toyota, and BMW are ditching fragmented native development for a single framework. The shift isn't just technical—it's transformational.
React Native Version 0.82 Release
React Native just dropped its most significant release ever. Version 0.82 completely removes the Legacy Architecture, marking what the team calls 'the start of a new era' for mobile development.
A Guide to Generating Swift Code with Swift Mustache (Part 1)
Esraa Eid from Deloitte UK reveals how to make Swift code generate Swift code—no low-level languages required. She explores three powerful approaches to transform JSON schemas into production-ready Swift struct...
Introducing Swift Profile Recorder: Identifying Performance Bottlenecks in Production
Apple just open-sourced the profiling tool they've used for years to debug Swift services at massive scale. No special privileges, no eBPF, no system dependencies required.
Accelerating Mobile App Development at Zalando with Rendering Engine and React Native
Zalando is migrating 90+ screens across iOS and Android to React Native without rebuilding their entire app. Here's how they're pulling it off for 52M+ customers.
Cross-Platform TV Apps with React Native for tvOS, Android TV, and Tizen
Callstack just dropped their Ultimate Guide to React Native TV Development 2026. If you're building streaming apps, this changes the game for cross-platform TV.
How Uber Standardized Mobile Analytics for Cross-Platform Insights
Uber runs 50+ mobile apps across iOS and Android. How do you get consistent analytics when every team tracks things differently?
Scaling Swiggy's Mobile Ecosystem [1/n]
Tushar Tayal from Swiggy reveals the hidden complexity behind managing 6+ consumer apps (Snacc, Instamart, Toing, Dineout, Crew) in production. Spoiler: it's not just about shipping faster.
Compose Multiplatform 1.9.0 - Compose for Web Beta
Ekaterina Volodko and Alejandra Pedroza Marchena from JetBrains announce a game-changer: Compose Multiplatform for web just hit Beta, powered by Wasm. Your Android Compose skills now work in the browser with mi...
Swift 6.2 Released
Holly Borla from Apple's Swift Core Team just dropped Swift 6.2, and it's tackling the biggest pain point in modern development: making concurrent programming actually approachable. This isn't just another incr...
Understanding and Improving SwiftUI Performance
The article link appears to be broken or unavailable. This SwiftUI performance piece from Airbnb Engineering isn't loading, returning a 404 error instead.
React Native Version 0.81 Release
React Native 0.81 just dropped with a game-changing performance boost: iOS builds up to 10x faster. But there's a catch that'll affect every Android developer.
Thumbtack's Journey to Swift 6
Scott Southerland from Thumbtack just shared what most iOS teams won't tell you: migrating to Swift 6 took 16+ months and broke their entire test suite. Here's the battle-tested playbook they wish they'd had.
The evolution of native engineering at Tripadvisor: Part 2
Tripadvisor's mobile team was drowning in nearly-identical UI components. Their server-driven UI framework promised speed but delivered the opposite.
Our Buildkite Brings All the Devs to the Yard: (Re)Building Reddit Mobile CI in 2025
Reddit's mobile team had zero professional CI experience. Then they cut build times in half and transformed developer happiness.
Introduction to MetricKit: Are You Measuring Your App's Performance the Right Way?
Ninikvatchantiradze from Teknasyon Engineering reveals why most iOS teams are measuring performance completely wrong. Your simulator tests and CPU averages are hiding the issues that make users uninstall your a...
Measuring App Performance with MetricKit
Ninikvatchantiradze from Teknasyon Engineering reveals why most iOS developers are measuring app performance completely wrong. If you're only testing locally or tracking basic CPU metrics, you're missing what's...
Building Reusable Custom Views with SwiftUI
Max Roche from Grindr Engineering just solved one of SwiftUI's most annoying problems: why do custom components require massive initializers while Apple's native views stay clean and simple?
Revamping PickMe Driver App: From UIKit to SwiftUI — A Technical Journey
Kcrdissanayake from PickMe reveals how their team migrated an 8-year-old ride-hailing driver app from UIKit to SwiftUI while maintaining iOS 15 compatibility. The bold rewrite wasn't just about modern code—it w...
Accelerating on-device ML on Meta’s apps with ExecuTorch
Meta just shared how they moved billions of daily users to their new on-device ML framework. The performance gains are substantial.
Debugging OOMs: SQLite Query Optimization
Brian Terczynski from Thumbtack tracked down a brutal Android OOM bug that was crashing apps at startup—and the culprit wasn't a memory leak. It was hiding in plain sight: their SQLite queries.
How we used Macros to Promote MVVM architecture adoption
Duolingo's iOS team turned a boilerplate problem into a Swift Macros showcase. Their codebase grew, but developer friction didn't have to.
Understanding and Improving SwiftUI Performance
Airbnb's SwiftUI features were re-rendering way more than they should. The culprit? SwiftUI's hidden diffing algorithm was working against them.
Cross-Platform Web3 dApps With React Native
Callstack explores how React Native is becoming the unexpected bridge between traditional mobile development and the Web3 ecosystem. Building decentralized apps just got a lot more practical.
Swift at Apple: Migrating Password Monitoring Service from Java
Apple's Password Monitoring team just shared something remarkable: they rewrote their entire backend service from Java to Swift and the results are staggering. This isn't a client-side migration story—it's bill...
Microapps architecture in Swift. Scaling.
Majid Jabrayilov explores how microapps architecture can solve the scaling nightmare that plagues large iOS codebases. His approach turns monolithic apps into composable, independently testable modules.
How We Decomposed Tinder's Monolith
Maxwell Elliott and Connor Wybranowski from Tinder turned what seemed like a 12-year project into a 6-month sprint. Their secret? Letting the compiler do the heavy lifting instead of manually untangling 150,000...
The evolution of native engineering at Tripadvisor: Part 1
Tripadvisor's iOS team was drowning in coordinator spaghetti. Navigation paths were impossible to trace, and even senior engineers couldn't debug their own flows.
Real-time audio processing with Expo and native code
Braulio Ríos built a production-ready guitar tuner app using React Native that processes audio in real-time with near-native performance. Here's how he combined TypeScript, C++, Swift, and Kotlin to solve a pro...
SwiftUI Scroll Performance: The 120FPS Challenge
Jacob Bartlett from Jacob's Tech Tavern puts SwiftUI scroll performance under the microscope. Can it really hit 120fps with complex infinite feeds, or does the magic come at too high a cost?
Memory Safety, Ecosystem Talks, and Java Interoperability at FOSDEM 2025
Swift just made a major statement at FOSDEM 2025, and it's not just about iOS anymore. The language is pushing hard into memory safety, embedded systems, and even Java interoperability.
Swift Thread Safety: NSLockThreadSafeAccess vs DispatchQueueSafeAccess
Kcrdissanayake from PickMe Engineering breaks down a critical choice every Swift developer faces: how to safely manage shared state across threads without killing performance.
A Behind-the-Scenes Look at How We Release the Spotify App (Part 1)
Spotify ships weekly releases to 675 million users across iOS and Android. Here's how they balance speed with quality at that scale.
Swift 6.1 Released
Swift 6.1 just dropped with some seriously practical upgrades. If you've been wrestling with concurrency boilerplate or data-race safety warnings, this release is for you.
Using Remote Config with Property Wrappers in Swift
Timotius Leonardo Lianoto from IDN Engineering just solved a problem most iOS teams don't even realize they have: Remote Config is quietly eating memory and creating testing nightmares.
Can we talk about the current state of Xcode?
While web developers enjoy Claude integration and free Copilot, iOS developers are stuck with Xcode's basic code prediction. The tooling gap is getting embarrassing.
How server-driven UI is revolutionizing mobile app experiences
Careem was losing weeks waiting for app releases just to update a banner. During Ramadan, when customer behavior shifts daily, that delay was killing their food business.
How 40 Lines of Code Sped Up iOS End to End Tests by over 50%
Wealthfront's iOS team cut E2E test time in half with just 40 lines of code. The culprit? A 1-second polling interval nobody questioned.
SecureStorage in Swift: A Safer Alternative to AppStorage
Kcrdissanayake from PickMe Engineering reveals why SwiftUI's AppStorage is a security risk for sensitive data. Their solution? A custom property wrapper that encrypts everything before it hits storage.
Skyscanner’s journey to effective observability
Skyscanner was drowning in observability chaos: multiple vendors, fragmented tools, and engineers losing confidence in their ability to debug production issues.
Revamping PickMe iOS App: From Objective-C to SwiftUI
PickMe rebuilt their entire iOS app from Objective-C to SwiftUI in just 6 months. Here's how a team that started with 1 developer scaled to 10 engineers and shipped a complete rewrite.
Exposing SwiftUI Views to React Native: An Integration Guide
Callstack reveals how to bridge SwiftUI's modern declarative views directly into React Native apps. This is the integration pattern brownfield teams have been waiting for.
How the Tinder iOS App reduced the size of our localizations by 95% using Emerge
Tinder ships their iOS app to 190+ countries in 50+ languages. That localization overhead was costing them 51MB of install size.
Mobile Payments SDK General Availability and Terminal API Features
Square just launched their Mobile Payments SDK to GA with a twist: your phone becomes the card reader. No external hardware required for contactless payments.
Profiling Native Code in React Native with Tracy
Profiling React Native apps just got a serious upgrade. Tracy, the real-time profiler that game developers swear by, now works seamlessly with React Native's native layer.
The Quest to Understand Metric Movements
Your key metric just tanked 20%. Was it a code change? An OS update? A data pipeline bug? Pinterest built a platform to answer this question at scale.
How we reduced manual regression tests by 70% using AI tools
Duolingo's QA team cut manual regression testing by 70% using AI. Here's how they made it work at scale.
10 Reasons To Choose Flutter for Your Mobile App
Very Good Ventures makes the case for Flutter with data that's hard to ignore: 93% developer satisfaction and 24% user growth in a single year. If you're evaluating cross-platform frameworks, this breakdown cut...
The Next Chapter in Swift Build Technologies
Owen Voorhees from Apple just dropped a bombshell: the build engine that powers millions of App Store apps is now open source. This changes everything for Swift developers working across platforms.
Building 3D Animations in Mobile Apps
Yağız Gürgül from Wise Engineering reveals how they shipped interactive 3D animations in their mobile app—and crushed a 324 MB asset bundle down to just 3.7 MB. The secret? A clever web-based approach that deli...
React Native Version 0.77 Release
React Native 0.77 just dropped with over 1,061 commits from 161 contributors. The team is bringing web-standard CSS properties to mobile and making a bold move to Swift for iOS templates.
Is Swift dramatically better than React Native?
Swift vs React Native: the debate that never dies. But what does the data actually show?
Leading a project to migrate hundreds of screens to SwiftUI/Jetpack Compose from UIKit/AndroidView in Merpay
Merpay just migrated hundreds of payment screens to modern UI frameworks while keeping their app running in production. Here's how they managed a 2-year engineering transformation.
How we think about Threads’ iOS performance
Meta's Threads hit 100M users in 5 days, then scaled to 300M monthly users. How did the iOS team keep performance from collapsing under hypergrowth?
How we sped up Android and iOS builds by 68% on CI
Duolingo's engineers were stuck waiting 50 minutes for every CI build. That's hundreds of hours wasted every week across the team.
Boosting App Performance: Strategies to Optimize Network Requests
Coinbase cut network requests by 64% during traffic spikes without degrading user experience. Here's how they engineered their way to massive scale.
Learnings About Swift Testing
Apple's Swift Testing framework is here, and Mercari's iOS team thinks it's a game-changer. If you're still on XCTest, here's what you're missing.
Integrating Extensions into Large-Scale iOS apps
Lyft's iOS team built an Apple Maps extension that lets users book rides without leaving Maps. But the initial version added 45MB to their app—nearly a quarter of Apple's 200MB cellular download limit.
Upgrading React Native in Brownfield Applications
Upgrading React Native in a brownfield app isn't just harder than a greenfield project. It's a completely different beast that most teams underestimate.
Measuring Product Impact Without A/B Testing: How Discord Used the Synthetic Control Method for Voice Messages
Discord wanted to measure Voice Messages impact, but A/B testing would break the feature. Network effects meant users in control groups couldn't receive voice messages from treatment users.
Integrating React Native into Existing Applications
Callstack reveals how to add React Native to existing native apps without a full rewrite. This brownfield approach is changing how engineering teams think about cross-platform development.
How We Reduced GrabX SDK Initialisation Time
Grab's SDK was taking 4 minutes to initialize with 400MB of config data. That's a cold start problem that kills autoscaling.
iOS 18: Apple's Translation API
activesludge breaks down iOS 18's Translation API with real-world demos that show how to eliminate copy-paste translation workflows. This is the most practical guide I've seen for implementing on-device transla...
Brownfield Development with React Native
Callstack reveals how brownfield React Native integration lets you modernize native apps without the dreaded full rewrite. This collection of insights shows exactly how companies like Shopify and Zalando pulled...
Flutter Myths: Clearing Up Common Misconceptions
Still think Flutter is too slow for production apps? Very Good Ventures just dismantled the 6 biggest myths holding teams back from adopting this cross-platform framework.
How server-driven UI keeps our shop fresh
Duolingo ships UI changes in minutes, not weeks. Their server-driven UI system bypasses app store releases entirely.
Enabling Out Of The Box Performance Insights In The Unity SDK
Stefan Jandl from Sentry just cracked a tough problem: how do you auto-instrument performance monitoring in Unity games without asking developers to write a single line of code?
How we reduced peak memory and CPU usage of the product configuration management SDK
Grab's configuration management SDK was crushing service performance with memory spikes and CPU throttling. 98% of services were loading 100x more data than they actually needed.
Enhance App Performance and Business with Real User Monitoring (RUM)
Real User Monitoring isn't just a performance tool. It's the bridge between what you think users experience and what actually happens in production.
SwiftUI or UIKit in 2024 & 2025?
SwiftUI or UIKit? The iOS dev community is split, and new grads are caught in the middle trying to figure out which framework will actually land them a job.
How to use VSCode/Cursor for iOS development
What if you could ditch Xcode's sluggish editor and use VSCode/Cursor for iOS development? Turns out, you can build a surprisingly functional setup.
Tales of Performance Engineering
Diego Parra from Mercado Libre's Performance Engineering team just shared how they slashed API response times by 60% with one strategic fix. The culprit? Regex compilations eating 40% of CPU cycles.
Precision in Motion: Deep Learning for Smarter ETA Predictions
DoorDash handles 2 billion orders annually, and every ETA prediction matters. Their old tree-based models couldn't keep up with the complexity.
Mobile App Launch Profiling
Andrew McKnight from Sentry just solved one of mobile performance monitoring's biggest blind spots. Ever wondered what's actually happening in your app before main() even gets called?
5 Mobile app optimization tips to enhance user engagement
Your mobile app's first impression isn't just important. It's everything. The Fullstory Team breaks down why most teams are optimizing blind, relying on assumptions instead of actual user behavior data.
Announcing Swift 6
Holly Borla from Apple's Swift Core Team announces Swift 6, bringing data-race safety from opt-in warnings to compiler-enforced guarantees. After a decade of development, Swift now targets embedded systems, ser...
Tophat: Crafting a Delightful Mobile Developer Experience
Shopify doubled developer productivity by turning the most tedious part of mobile development into a one-click experience.
Best Practices for NotificationCenter Usage in Swift
Timotius Leonardo Lianoto from IDN Engineering admits he's not a fan of NotificationCenter—it's hard to trace, difficult to test, and can turn into spaghetti code. But he's built a protocol-based solution that ...
Building VoiceOver-Friendly iOS Applications
Gennadii Tsypenko from Just Eat Takeaway reveals why VoiceOver accessibility often gets overlooked in iOS development—and shares the exact SwiftUI modifiers that fix it. Most teams skip this until it's too late...
Integrating SwiftUI and UIKit Navigation: A Step-by-Step Guide
Bevan Christian from IDN Engineering tackles a problem every iOS team faces: how do you navigate between SwiftUI and UIKit without creating a maintenance nightmare?
How the Medium iOS team works effectively with legacy code
Medium's iOS codebase is over 10 years old with code from 2013 still running in production. Instead of rewriting, they wear it as a badge of honor.
Eliminating Pbxproj Conflicts with XcodeGen for iOS Project Management
Bevan Christian from IDN Media reveals how his team eliminated merge conflicts that plague every iOS team. Two weeks of sleepless nights resulted in a solution that transforms project management.
Creating Custom UIButton Animations in Swift
Timotius Leonardo Lianoto from IDN Engineering tackles a common iOS pain point: UIButton animations feel lifeless compared to Android's satisfying touch feedback. His solution? A custom ripple effect that trans...
App Health Through Metric-Aware Rollouts
DoorDash was shipping experiments that crashed their app and degraded performance for weeks before anyone could identify the cause. They built an automated system to catch issues before customers feel the pain.
Unfold's Modern Mobile Release Process And The Subtle Art Of Making Them Boring
Alan Cooke from Squarespace reveals how Unfold turned chaotic mobile releases into boring background events. Boring is the goal, and here's why that's brilliant.
Swift Actor in Unit Tests
Abdul Moiz from Thumbtack reveals how Swift 6's concurrency checks broke their entire test suite. Their solution? A clever protocol-based pattern that makes actors mockable without sacrificing thread safety.
Custom Navigational Transitions in iOS
Zalando's iOS team tackled a deceptively hard problem: creating smooth screen transitions when the entire UI is driven by the backend.
Ready for Swift 6
Dave Verwer and Sven A. Schmidt from Swift Package Index reveal that 43% of Swift packages are already data race safe. The Swift 6 migration is happening faster than expected.
Challenges of mixed SwiftUI and UIKit codebases in iOS Apps
Medium's iOS team has been wrestling with a codebase dating back to 2013. Migrating from UIKit to SwiftUI? It's messier than you think.
Good Practices When Creating E2E Tests at Skeelo
Skeelo's QA team built a scalable E2E testing framework using Python + Appium. Here's the architecture that keeps their mobile tests maintainable as the app grows.
How We Optimized Concurrency Using Node.js at Skeelo
Skeelo's engineering team achieved a 30% performance boost by rethinking one simple thing: when NOT to use await in Node.js.
What's New in the Mobile Payments SDK Beta
Square just launched the successor to their Reader SDK after 6 years, and KIOS was among the first to build with it. Their integration story reveals what's actually possible when payment SDKs are built for deve...
How GitHub reduced testing time for iOS apps with new runner features
GitHub's iOS team just cut their CI testing time by 60%. Here's how they did it with Apple Silicon runners and some smart architectural changes.
Transitioning to Appcraft: Evolution of Zalando’s Server-Driven UI Framework
Zalando powers 13 dynamic mobile pages without waiting for app store releases. Here's how they built a server-driven UI framework that ships changes same-day.
The Fundamentals of iOS Development at Revolut
Illia Kucheriavyi from Revolut reveals how 120+ iOS engineers ship weekly releases across 5 apps while maintaining 150,000+ automated tests. Their secret? A mono-repo with 160 shared modules and build times tha...
Animations: Bringing the Host Passport to Life on iOS
Anne Lu from Airbnb reveals how her team built a 3D page-flipping animation that looks effortless but required solving novel iOS challenges. The Host Passport feature needed pixel-perfect timing across multiple...
Reducing the Size of Cash App for iOS
Cash App cut their iOS app size in half in one year. Here's the playbook they used to get from 245 MB to 126 MB downloads.
DragonCrawl: Generative AI for High-Quality Mobile Testing
Uber's mobile testing was broken. Engineers spent 30-40% of their time maintaining test scripts that broke with every UI change. So they built an AI that tests apps like a human would.
iOS Performance Monitoring with Datadog
Yassir Ramdani and Austin Lai from Datadog built a custom SwiftUI graphing library that renders thousands of data points without lag. Here's how they debugged performance bottlenecks that most iOS developers ne...
How to do pagination in SwiftUI
Medium's iOS team rebuilt their search feature in SwiftUI and needed infinite scroll. Here's the elegant pagination pattern they landed on after years of iteration.
Building AI-powered games with Gemini and Flutter
Very Good Ventures took the stage at Google Cloud Next 2024 to show how Flutter and Gemini are changing the game development playbook. Literally.
Get Started with Embedded Swift on ARM and RISC-V Microcontrollers
Swift just jumped from iOS apps to microcontrollers. The Swift team launched example projects showing how to write firmware for ARM and RISC-V chips using a new experimental compilation mode.
Crafting Seamless Journeys with Live Activities - Lyft
Lyft built Live Activities that update millions of users per week—but iOS sandboxing, 4KB payload limits, and image rendering nearly killed the project.
incident.io harnesses the power of native modules and CNG
Dan Kelly explores how incident.io shipped a production mobile app in months without hiring a single mobile engineer. Their secret? Leaning hard into Expo's 'golden path.'
Swift Performance Benchmarks
Joakim Hassila from Ordo One built a performance benchmarking tool that major Swift projects like Foundation, SwiftNIO, and SwiftPM are now using. If you're shipping Swift code without performance tests, you're...
Performance Measurement for Native Apps
Supriyo Mondal from Walmart reveals how they shaved 500-600ms off view rendering times by changing a single boolean flag. Sometimes the biggest performance wins come from the smallest tweaks.
Pack Iteration Performance in Swift
Sima Nerush from Apple's SwiftUI team just made working with Swift parameter packs dramatically simpler. What used to require error-throwing workarounds now fits in a clean for-in loop.
How dogfooding helps us build a better Duolingo
Duolingo catches critical bugs before users ever see them. Their secret? 70% of employees actively use internal builds daily.
Mastering Page Load Time: iOS App Optimization Strategies
Pooja Krishna from Walmart Global Tech reveals why your iOS app's slow page loads are costing you users. The target? Under 2 seconds from tap to interactive content.
Pareto Principle in Action: Boosting Performance with Smart Caching
CRED Engineering faced a nightmare: caching every query combination would require 45,768+ TB of storage. Here's how they got it down to 135 MB.
React Native Support for Apple Vision Pro Development
Callstack just brought React Native to Apple Vision Pro, opening spatial computing to JavaScript developers. This changes the game for cross-platform VR development.
Benefits of Flutter for Cross-Platform App Development
Still running separate iOS and Android teams in 2024? The economics of native development just stopped making sense. Here's why Flutter is quietly becoming the default choice for engineering leaders who need to...
How We Improved Performance Score Accuracy
Edward Gou from Sentry reveals why their performance scores were lying to developers. A single slow pageload could tank your entire app's score, even when 99% of users had fast experiences.
Learn About the Leading Multi-Platform Frameworks
Still running separate iOS and Android teams in 2024? VGV breaks down why Flutter and React Native are replacing the old playbook for multi-platform development.
Scalable CI/CD Pipelines for iOS
Alberto De Bortoli from Just Eat Takeaway reveals how his team built a fully automated iOS CI system that supports 40+ developers with just 5 bare metal instances. No manual SSH. No weekend waste. Pure infrastr...
Optimising the Swiggy Restaurant App
Swiggy's restaurant app was crashing under load. Their React Native app couldn't handle more than 100 orders on budget devices, and they needed to scale 10x.
Evolution of Bid Notifications to Courier
Gojek was sending 97-99% of driver bid notifications successfully. They rewrote the system and hit 99.9%+.
Reddit Recap: State of Mobile Platforms Edition (2023)
Reddit's mobile team just dropped their brutally honest take on iOS vs Android development in 2023. Spoiler: neither platform makes it easy.
Performance monitoring in Mercari mobile apps
Mercari rewrote their entire mobile app and faced a nightmare scenario: millions of users reporting the new version felt slower than the old one.
Embracing SwiftUI: PhonePe's Journey Building ONDC-Powered Pincode
PhonePe's iOS team built their entire ONDC shopping app in SwiftUI when most considered it too risky for production. The result? 1M+ downloads and a blueprint for modern iOS development.
How DoorDash Manages Mobile Releases
DoorDash ships a new iOS app version every single week. Here's how they coordinate testing, releases, and hotfixes across multiple teams without losing their minds.
How DoorDash Manages Mobile Releases
Manolo Sañudo from DoorDash reveals how their iOS team ships weekly releases without breaking things. Spoiler: it's not about having more QA people.
Distributed Job Scheduler: Zero to 20k Concurrent Jobs
Glance built a distributed job scheduler that went from zero to handling 20,000+ concurrent jobs. Here's how they did it with Redis and smart architecture.
Optimizing UITableView Scrolling Performance with Prefetching
Bevan Christian from IDN Engineering tackles a problem every iOS dev knows: that janky scroll when images load in UITableView. His solution? iOS's built-in prefetching API that most developers overlook.
Building Your Next Casual Game With Flutter
Zoey Fan from Google's Flutter team just dropped a major update to their Casual Games Toolkit—and it's packed with templates that could save you weeks of setup time. If you've been curious about Flutter for gam...
Optimising Scrolling Performance with Litho
Swiggy's Android team was hitting scroll performance walls with traditional RecyclerViews. Their solution? Facebook's Litho framework, which delivered massive performance gains.
SwiftUI In Action: Prototyping An Interactive 3D Carousel Experience
Jesse Stauffer from Thumbtack built a stunning 3D carousel in SwiftUI—then convinced his team NOT to ship it. Here's why that prototype was still worth every line of code.
Swift 5.9 Backtraces and Debugging
Alastair Houghton from Apple's Swift runtime team just dropped a game-changer for debugging: Swift 5.9 now catches crashes and lets you inspect them interactively before your program dies.
Leveraging Flink to Detect User Sessions and Engage DoorDash Consumers with Real-Time Notifications
DoorDash was sending cart abandonment notifications to users who were still actively browsing. The result? Annoying customers and missing conversion opportunities.
Backend-Driven UI Architecture for Native iOS Apps
Andrea Scuderi from Just Eat reveals why backend-driven UI can be a double-edged sword. His team ships UI changes without app releases, but the testing complexity nearly broke their workflow.
Real-Time Analytics for Mobile App Crashes using Apache Pinot
Uber deploys 11,000 code changes weekly. How do they catch crashes before users notice? They built Healthline, powered by Apache Pinot.
The What, Why, and How of Mastering App Size
Spotify's mobile apps generated 930+ petabytes of network traffic in 2022, equivalent to 65,000 tons of CO2 emissions. Their solution? A comprehensive app size management system that's both environmentally cons...
Revamping Dasher FAQ Hub Through Server-Driven Content and WebView
DoorDash's team cracked a classic mobile dilemma: how do you push FAQ updates instantly without waiting weeks for app store approvals? Their solution cut deployment time from 2+ weeks to under 24 hours.
GoTransit: Unifying Our Mobility Products with Public Transportation
Gojek discovered that 11 of their top destinations in Jakarta weren't restaurants or malls. They were train stations and bus hubs.
Scaling Glance Game Centre to Support 100 Million Daily Active Users
Glance Game Centre serves millions of daily users playing HTML5 games on their lock screens. Their leaderboard system hit a wall with a single-node MongoDB struggling under 1000 QPS.
Media on Swiggy's Mobile Apps
Swiggy's mobile apps serve millions of users across wildly different devices and network conditions. How do you deliver high-quality images and videos without killing performance or burning through bandwidth co...
From 30 Minutes Down to 10: Taming our Monolith's CI Build Times
Cash App's monolith CI builds were taking 30 minutes at p50. Developers were stuck waiting through multiple build cycles just to get a green merge.
Making Direct Messages Reliable and Fast
Instagram DMs handle millions of messages per second. How do they make every send feel instant, even when your network drops mid-tap?
GraphQL Integration with AWS Amplify in Swift for iOS
Bevan Christian from IDN Engineering just cut through months of AWS Amplify confusion. His approach skips 60% of the official setup steps while keeping full GraphQL power.
What's New in Swift 5.9 Debugging
Adrian Prantl, Augusto Noronha, and Dave Lee from Apple's Debugger Compiler Integration team just made debugging Swift apps significantly faster. If you're still using the old `p` and `po` commands the same way...
Unlocking SwiftUI at Airbnb
Airbnb just replaced their entire iOS UI framework with SwiftUI. Here's how they pulled off a multi-million line codebase migration without breaking production.
Effortless iOS Snapshot Testing Using Emerge Tools
Handshake's iOS team just eliminated nearly 3,000 lines of testing and demo code. Their secret? Rethinking how they do snapshot testing.
Understanding Publishers in SwiftUI and Combine
Mike Pesate from Bumble breaks down Publishers in SwiftUI and Combine with real-world examples. If you're still confused about when to use CurrentValueSubject vs PassthroughSubject, this one's for you.
Making Swiggy's Order Tracking a Magical Experience
Swiggy discovered customers were anxiously checking their order tracking screen multiple times during the 20-45 minute delivery window. Their solution? Let users track orders while doing literally anything else...
Inside Slack: Overcoming Challenges to Craft a Seamless Mobile App
Slack's mobile team faces a unique challenge: users expect desktop-level performance while bouncing between subway tunnels and spotty cellular networks.
Why Mobile Application Performance Testing Is Key to App Success
Amazon's QA team just shared their playbook for mobile performance testing. Here's what separates apps that scale from those that crash.
Native End-to-End Testing for Mobile Apps
Joana Melo from Klarna turned a 6-month diversity program into company-wide impact by solving a pain point that had defeated multiple engineering teams before her.
GraphQL on iOS: How We Decided Against Apollo & Where We Went Next
Handshake chose NOT to use Apollo for GraphQL on iOS. Here's why that unconventional decision made perfect sense for their team.
Transitioning to SwiftUI
Daniel Roth from Thumbtack rebuilt their entire iOS component library from scratch in SwiftUI. The result? Faster builds, fewer bugs, and a development experience that finally lives up to the hype.
Making Swiggy Buttery Smooth
Swiggy's iOS team cut their app launch time in half and reduced app size by 8MB. Here's how they did it.
Improving iOS CI/CD Performance: Migrating from Azure to Codemagic
Bevan Christian from IDN Engineering cut iOS CI/CD time by 76.85% with one platform switch. Here's how a simple migration delivered results most teams only dream about.
Poko goes multiplatform
Drew Hamilton just took Poko, the Kotlin compiler plugin that generates equals/hashCode/toString, fully multiplatform. This solves a real API compatibility headache for library authors.
Enhancing App Performance: A Practical Approach at Glance
Glance powers lockscreens for millions across India, Indonesia, Latin America, and Japan. Zero tolerance for lag when you're the first thing users see.
Being first to market with rideshare on CarPlay and Android Auto
Michael Ramdatt and the Lyft team reveal how they beat every competitor to launch the first rideshare app on CarPlay and Android Auto. The secret? Building their own mapping platform from scratch.
Bringing HDR video to Reels
Meta just solved a problem most users never notice: making HDR video look great on billions of devices with wildly different capabilities.
Multiplatform image loading: Coil 3.0
Colin White reveals how Coil 3.0 is breaking free from Android to become truly multiplatform. The image loading library that powers countless Android apps is making a bold leap to iOS, web, and desktop.
Migrating to Apollo 1.0 for iOS
Scott Southerland from Thumbtack reveals how their iOS app hit a breaking point: 8-minute builds, mysterious crashes, and 80,000-line auto-generated files that finally stopped compiling altogether.
Introducing Swift HTTP Types
Apple just open-sourced Swift HTTP Types, and it's about to change how iOS and server-side Swift developers handle HTTP. No more converting between URLRequest and SwiftNIO types.
Preventing App Performance Degradation Due to Sudden Ride Demand Spikes
Grab's engineering team faced a brutal problem: rain in Southeast Asia would crash their entire ride-hailing system. When demand spiked locally, users everywhere suffered.
Leveraging Alamofire Interceptors in iOS: A Real-World Case Study
Bevan Christian uncovered why users were mysteriously logged out of a major startup's iOS app for years. The culprit? A homegrown token refresh mechanism that created race conditions nobody noticed.
Optimising Page Load Times in Flipkart Mobile App
Flipkart shaved 30% off page load times in their React Native app with 500M weekly visits. Here's how they did it without rewriting everything.
Page not found - Engineering at Meta
Meta's Engineering blog just hit a 404. Sometimes even the biggest tech companies deal with broken links and content migrations.
Flow testing with Turbine
Cash App just open-sourced Turbine 1.0, solving one of the trickiest parts of Kotlin coroutines: testing Flows without the headache.
Improving Video Cache Hits on Swiggy Apps
Swiggy was bleeding money on video bandwidth costs. The culprit? Videos being requested at 270px, 272px, 275px... you get the idea.
Distributed Load Testing Using Locust
Glance's engineering team scaled their load testing from basic scripts to a full Kubernetes-powered distributed system. Here's how they did it with Locust.
Determining Exact Photo Storage Size in Swift
Timotius Leonardo Lianoto from IDN Engineering discovered his iOS app was reporting 13 MB for a 2.8 MB photo. The culprit? A common mistake thousands of developers make when calculating image file sizes.
On-Demand Resources for Lottie Animation Storage in Swift
Bevan Christian from IDN Engineering tackles a problem every mobile team faces: beautiful Lottie animations that bloat your app size. His solution? On-Demand Resources that cut initial download size while keepi...
Advanced Lottie Animation Memory Management in iOS
Timotius Leonardo Lianoto from IDN Media discovered their livestream gift animations were silently eating memory with every play. Even following Lottie's official docs didn't prevent the leak.
Kotlin Multiplatform Money Formatter
Patrick Tyska and Terry Yiu from Cash App reveal how the same $1,000 needs to display four different ways across their app. Their solution? Kotlin Multiplatform to consolidate 10 separate money formatters into ...
Instant Feedback in iOS Engineering Workflows
Instagram engineers were losing hours every day waiting for code to compile. So they brought React Native's ⌘R instant refresh experience to native iOS.
How DoorDash uses XcodeGen to eliminate project merge conflicts
Md Al Mamun and Michael Thole from DoorDash reveal how their 100+ engineer iOS team eliminated project merge conflicts entirely. The secret? A command-line tool that turns hours of painful XML debugging into se...
Network Latency Issues in Mobile Apps
Anatole Beuzon and Bowen Chen from Datadog turned what seemed like a simple deployment alert into a months-long debugging odyssey. What they uncovered reveals how deceptively complex network latency issues can ...
Achieving Higher Test Coverage: Our Approach to UI Testing on iOS
Aliou Sarr from leboncoin reveals how shifting UI test ownership from QA to developers doubled their test count in under a year. The result? A 99.6% crash-free iOS app serving 28 million monthly users.
How We Improved Testing Processes Using Ephemeral Environment
Swiggy was missing production deadlines because their UAT environments were constantly unstable or unavailable. Sound familiar?
The future of iOS development with Flutter
Leigha Jarett from Flutter reveals how Google's cross-platform framework is becoming a serious contender for iOS development. With over 1 million apps built and major players like BMW and WeChat on board, the i...
How Server Driven UI is Helping Frontend Engineers Scale Impact
Robinhood was taking weeks and multiple engineers just to make minor UI tweaks. Their Server Driven UI platform cut that to hours with one engineer.
Flexible Continuous Integration for iOS
Michael Bachand and Xianwen Chen from Airbnb rebuilt their entire iOS CI system—and cut maintenance time while running 10 million minutes of jobs quarterly. Here's how they ditched 300+ physical Macs for AWS in...
2023 Google Mobile Ads Updates for Flutter
Timothy Hoang from Google just dropped major updates to Flutter's mobile ads plugin. If you've been writing platform code just to customize native ads, that pain point is officially solved.
Measuring Performance for iOS Apps | App Startup
Uber's iOS app startup metrics became 130% inflated overnight. The culprit? iOS 15's pre-warming feature broke their entire measurement system.
Why xHE-AAC is being embraced at Meta
Meta serves billions of users with wildly inconsistent audio uploads. Their solution? A codec that adapts audio quality in real time without burning in compression.
Load Testing for 2022 Spotify Wrapped
Spotify Wrapped serves 150M+ users in a single morning. How do you load test for that kind of thundering herd?
Lens Performance Toolkit
Snap's Lens Performance Toolkit has been sunset, but its replacement Mobile Monitor offers AR developers something better. Here's what changed and why it matters for your lens performance.
Mobile Monitor
Snap's Lens Studio just gave AR developers a powerful weapon against performance issues. If your lenses are failing submission due to slow activation or low FPS, this tool is your answer.
Mobile Lens Profiler: Case Study
Snap's engineering team just dropped a masterclass in mobile performance debugging. Ever wonder why your AR lens stutters on the first frame?
Performance Optimization Guide
Snap's AR Lenses reach millions, but performance issues can kill engagement before users even see your creation. Here's how Snap ensures their AR experiences work across every device.
The Journey to Server Driven UI At Lyft Bikes and Scooters
Lyft Bikes & Scooters was drowning in complexity: 3 vehicle types, multiple markets, and endless switch statements. Their solution? Move the UI logic to the server.
App Modularization and Module Lazy Loading at Instagram and Beyond
Instagram's app was getting bloated. More engineers, more features, slower cold starts, and ballooning app size threatened the lean experience users loved.
Building a Modern iOS Networking Library with Swift Concurrency
Emre Havan from Getir rebuilt their entire iOS networking stack from scratch. The result? A modern, async-first library that eliminated memory leaks and cut boilerplate code—but not without hitting some painful...
Building a Multi-Pipeline CI Setup for Running Automated Tests in GitLab
Gojek's engineering team cracked a common CI/CD headache: how do you run automated tests from a separate repo without creating pipeline chaos?
Handling Multiple Caches in App
Swiggy's mobile team faced a common problem: juggling disk caches, LRU caches, and databases without creating a maintenance nightmare. Here's their elegant solution.
The evolution of Facebook’s iOS app architecture
Meta's Facebook iOS app went from a 30-second launch time disaster to one of the most sophisticated mobile architectures in the world. Here's how they did it over 10 years.
How We Reduced Our iOS App Launch Time by 60%
Filip Busic from DoorDash reveals how three targeted optimizations slashed iOS app launch time by 60%. The culprits? String operations, hashing strategies, and sneaky third-party framework initializers.
How We Reduced Our iOS App Launch Time by 60%
DoorDash cut their iOS app launch time by 60%. Here's how they did it with three targeted optimizations that any mobile team can learn from.
Migrating to Swift Package Manager
Victor Sarda from Just Eat Takeaway reveals how his team migrated a massive modularized iOS codebase from CocoaPods to Swift Package Manager without blocking a single developer. The secret? Supporting both depe...
Striving for iOS App Performance
Strava's iOS app was slowing down as they scaled to 1 billion activities in 18 months. Their solution? A ruthless focus on "Time to Something Useful."
How to Speed Up SwiftUI Development and Testing Using PreviewSnapshots
John Flanagan from DoorDash reveals how his team eliminated duplicate code between SwiftUI previews and snapshot tests. The solution? An open-source tool that cuts testing boilerplate to a single line.
Video Stories and Caching Mechanism (iOS)
Swiggy's iOS team built Instagram-style video stories and saved 49GB of user data in just two weeks. Here's how they did it.
Why are app sizes so big now?
Bank of America's app is 448 MB. McDonald's is 251 MB. When did ordering fries require half a gigabyte?
Lottie vs Rive: Optimizing Mobile App Animation
Animations can make or break your app's performance. Choosing between Lottie and Rive isn't just about features: it's about understanding the tradeoffs that impact your users' experience.
Build an end to end JSON logging system for clients apps
Liang Ma and Wei Zhu from Pinterest built a JSON logging system that catches production issues hours before traditional metrics even notice. Here's how they gave mobile teams real-time visibility into 300 billi...
GoTransit: Unifying Our Mobility Products with Public Transportation
The article link appears to be broken or unavailable. I cannot access the content about GoTransit's mobility integration.
How to Stop Worrying About Image Freshness and Reduce the Image Network Traffic
Delivery Hero was burning through 9TB of image data daily. Their apps were sluggish, their network costs were astronomical, and users were waiting too long for images to load.
Optimizing Testing for Server-Driven Mobile Development at Strava
Strava's Android team hit a wall: testing server-driven UI meant wrestling with Charles Proxy crashes, EOF errors, and 3-4 minute build times. An intern decided to fix it.
Fan-tastic Search for Blazing Fast Results
Swiggy's search feature was a mess: 2,000+ lines in a single ViewModel, monolithic XML files, and performance issues. Time for a complete rewrite.
Swiggy's iOS App Now Loads 12 Times Faster
Swiggy's iOS app was taking forever to launch. Their mobile team spent 3 months hunting down bottlenecks and achieved a 12x improvement in cold start time.
Reddit Recap: State of Mobile Platforms Edition (2022)
Reddit's mobile team just dropped their unfiltered take on iOS vs Android development in 2022. Spoiler: both platforms have some explaining to do.
Scaling the Just Eat Help Centre on iOS
Andrea Scuderi from Just Eat reveals how his team tackled a 19,602-line legacy iOS module without a risky big-bang rewrite. Their 9-phase restructuring approach cut code by 23% while maintaining stability.
Mobile The Future Is Declarative
Lazar Nikolov explores why Android and iOS are finally catching up to React Native and Flutter. The shift to declarative UI is reshaping native mobile development.
Announcing Lottie 4.0 for iOS
Airbnb just solved one of mobile animation's biggest performance problems. Lottie 4.0 eliminates the CPU overhead that was causing animations to drop frames and freeze.
EfficientFormer: Vision Transformers at MobileNet Speed
Snap Research just proved that Vision Transformers can run as fast as MobileNet on actual mobile devices. Yes, really.
Swiggy App on Diet
Swiggy slashed their Android app size by 22.6% in just one day. Here's how they did it without the usual complexity.
Improving Auto Pause for Everyone
Strava's engineering team faced a deceptively hard problem: how do you automatically detect when a runner stops moving without draining their battery or showing the wrong pace?
The New Gold Standard for iOS Releases: 99.99% Crash-Free
Turo's iOS team took their crash-free rate from 99% to 99.99% in just one year. Here's how a lean 5-engineer team achieved what most would consider impossible.
6 Lessons Learned from Optimizing the Performance of a Node.js Service
Klarna's A/B testing platform needed single-digit millisecond latency at 99.9%. Their Node.js service was spiking to seconds under load.
Announcing Multiplatform Paging
Veyndan Stuart from Cash App just open-sourced a solution to one of mobile development's most annoying problems: writing pagination logic twice for Android and iOS.
Scaling Mobile Device Management
Uber's Client Platform Engineering team faced a massive challenge: rolling out MDM to 20,000+ employees across hundreds of global offices where standard Apple enrollment wouldn't work everywhere.
Strategies and Tools for Performing Migrations on Platform
Spotify migrated 2,200+ mobile components and moved their entire iOS/Android codebase to Bazel across 100+ squads. Here's how they survived the chaos.
Planting Trees One Ride at a Time
Gojek turned ride-hailing into climate action with a simple toggle. One developer said it best: 'For the first time in my life, writing code generated physical outputs.'
Debugging High Latency in the Market Store
Grab's ML feature store went from 200ms to 2 second latency. The culprit? A single line of code in an async library.
How Meetup Scales Notification Queue Consumers
Meetup sends 8-10 million notifications daily. Their queue kept backing up, sending messages late or not at all.
Recovering from Crashes with Safe Mode
Lyft engineers faced a nightmare scenario: feature flags causing infinite crash loops on app launch, requiring emergency hotfixes and losing revenue. They built Safe Mode to break the cycle.
Mobile Developer Experience at Slack
Slack's 8-person Mobile DevXp team saved $240K annually just by improving PR notifications. Most companies are massively underinvesting in developer experience.
Shift-Left iOS Testing with Focus Flows
Lyft's iOS tests were spending 93% of their time on steps that had nothing to do with what they were actually testing. Sound familiar?
How Optimizing Memory Management with LMDB Boosted Performance on Our API Service
Pinterest's API team just freed up 4.5GB of memory per host with a clever database swap. The result? Fewer servers, happier users, and a masterclass in optimization.
Building A Performant iOS Profiler
Indragie Karunaratne from Sentry reveals how they built a production-ready iOS profiler that runs on millions of real user devices. Most profilers only work locally, but this one collects real-world performance...
How to Create Dynamic Island and ActivityKit with Flutter
Amorn Apichattanakul from KBTG shows Flutter developers how to tap into iOS's Dynamic Island feature. Yes, you can build Live Activities in Flutter apps—here's the bridge you need.
App Performance Monitoring Strategies and Tools
Your app crashes in production and you have no idea why. Callstack breaks down the monitoring strategies that catch issues before your users do.
Async/Await in Swift: Modern Concurrency Patterns
Asukhija from Expedia Group shows how two simple keywords can eliminate callback hell in Swift. If you've ever drowned in nested closures, this is your lifeline.
Consent Matters
Swiggy's Android team faced a UX dilemma: auto-reading OTPs felt magical to some users, creepy to others. How do you balance convenience with transparency?
Productionizing Envoy Mobile at Lyft
JP Simard from Lyft reveals how they replaced URLSession and OkHttp across all their mobile apps with a single networking library—and the results weren't what anyone expected.
How We Improved Our iOS App Compile Time by 99%
Zomato's iOS team was stuck waiting 80 seconds for every incremental build. That's developer productivity bleeding out in real-time.
Adopting SwiftUI with a Bottom-Up Approach to Minimize Risk
DoorDash just proved SwiftUI is enterprise-ready. Their secret? Don't start with a rewrite.
First Annual Bazel iOS Con 2022
Jerry Marino and Square are bringing the Bazel iOS community together for the first time. If you're building iOS at scale, this conference agenda reveals where the ecosystem is heading.
Building iFood's iOS Cart Experience
iFood's iOS team built a checkout system that handles 25+ feature plugins without turning into spaghetti code. Here's how they architected a platform that lets multiple teams ship independently.
How We Made Unit Testing Part of Our Engineering Culture
Instawork runs over 1 million tests daily in their CI pipeline. Here's how they made unit testing a core engineering practice, not an afterthought.
Build Time Optimizations in Xcode
Swiggy's iOS team cut build times by 21% and saved developers hours of waiting. Here's their battle-tested playbook.
iOS Screen Navigation Engine at Revolut
Vincent Berihuete from Revolut reveals how they ditched traditional iOS navigation patterns for something far more powerful. Forget Coordinators—this is about building a custom navigation engine that eliminates...
Building m.uber: Engineering a High-Performance Web App
Uber built a web app that loads in 3 seconds on 2G networks. Here's how they made it smaller than a typical image file.
Performance Bottlenecks in Go Apps
Grab's engineering team discovered their Go apps were mysteriously throttling at 1.94 CPU cores but flying at 2 cores. The culprit? A sneaky interaction between Kubernetes VPA and GOMAXPROCS.
Introducing Skynet: Infrastructure as Code for Gojek
Gojek runs 15,000+ VMs across 250+ GCP projects serving millions of customers. How do they manage infrastructure at this scale without chaos?
Programmatic Scrolling with SwiftUI ScrollView
Zoltan Lippai from DoorDash cracked a problem that stumped early SwiftUI adopters: how do you programmatically scroll when Apple didn't give you the tools? His team built their own solution for iOS 13.
How Removing Caching Improved Mobile Performance by 25%
Klarna's team removed their caching layer and saw a 25% performance boost. Wait, what?
Automating Mobile Event Verification
Swiggy was drowning in analytics chaos. Thousands of events per session, scattered specs across docs, and manual verification eating up engineering time.
Improving the CI/CD pipeline for mobile app development
Johnson Li from Coupang reveals how migrating from Mac minis to AWS EC2 transformed their mobile CI/CD pipeline. Their team was drowning in 3,000+ daily builds with 1-hour wait times.
Swift Language Updates from WWDC22
Swift just got a massive upgrade. Feli Bernutz, Matthaus Woolard, and Natalia Panferova break down the Swift 5.6 and 5.7 releases that are reshaping how iOS teams write concurrent, type-safe code.
How Tinder Solves Complex Lottie Localizations with Server Driven UI
Tinder was manually creating 40+ localized Lottie animations for every campaign. Their solution? A clever architecture that reduced it to just one.
Build a Flutter app with Very Good CLI and Supabase
Very Good Ventures shows how to build a production-ready Flutter app with Supabase that achieves 100% test coverage. This isn't your typical Firebase clone tutorial.
Removing 30% of our iOS crashes
Robinhood eliminated 30% of ALL iOS crashes by refactoring a single screen. That screen drove 30% of their revenue at the time.
Exploring Swift: Property wrappers in the wild
Ting Becker and Paul Hudson curated the best property wrapper resources from the Swift community. If you're still writing boilerplate code in Swift, you're missing out on one of the language's most powerful fea...
Advanced Techniques to Speed Up Compile Time in Xcode
Swiggy's iOS team was watching Xcode compile for minutes after single-line changes. They cut that time by 75%.
Why Mobile Apps Performance Matters
Mercado Libre's mobile apps serve 4.5 billion active devices. A Galaxy A10 might take 5 seconds to load a screen—or just 1.67 seconds, depending on conditions.
Validating Social Media URLs in Swift
Alvin Matthew Pratama from Tokopedia tackles a deceptively complex problem: validating social media URLs when each platform has wildly different URL structures. Regex alone won't cut it.
Faster media delivery to optimize app performance
LazyPay was serving unoptimized images directly from S3, killing app performance and burning bandwidth. Their migration to Cloudinary cut image sizes by 70%.
How Server-Driven UI Is Helping Frontend Engineers Scale Impact
Robinhood was taking weeks and multiple engineers just to make simple UI changes. Their solution? Server-Driven UI that lets them ship to all platforms without app releases.
Managing Deep Scope Hierarchies in Large Codebases
Uber rewrote their Android rider app in 2016 and made an architectural choice that most Android teams avoid: deeply nested dependency injection scopes.
Mobile DevOps Journey: Accelerating iOS Development at Swiggy with Bitrise (Episode 2)
Swiggy's iOS team slashed build wait times by 80% and cut 8-10 minutes off every build. Here's the detailed playbook they used with Bitrise.
Improving the iOS Listing Screen with Generics
Etsy's iOS listing screen handles 16% of all app traffic. But after a decade, its monolithic architecture was slowing everything down.
Scaling Slack’s Mobile Codebases: Modernization
Slack just wrapped a massive mobile refactor. The results? 68% of iOS and 92% of Android codebases modernized, with CI times slashed by over 60%.
Scaling Slack’s Mobile Codebases: Modularization
Slack's mobile codebase was slowing teams down. Their solution? Break the monolith into hundreds of independent modules.
How We Applied Client-Side Caching
DoorDash makes millions of ML predictions per second, but their Redis-based feature store was becoming a massive cost and scalability bottleneck. Could client-side caching be the answer?
Continuous Load Testing
Slack's engineering team ran into a classic performance testing problem: spinning up load tests was so time-consuming that teams avoided doing it. Their solution? Never stop testing.
Evolution of the Medium iOS app architecture
Medium's iOS team ditched their monolith for Swift packages and SwiftUI. A year later, they're shipping features faster than ever.
Mobile DevOps Journey: Evolving Mobile Development at Swiggy (Episode 1)
Swiggy's mobile team was drowning in Jenkins bottlenecks. Build times were slow, machines crashed frequently, and manual interventions killed velocity.
Stop Wasting Time on Unit Testing: How Tokopedia Achieved 8X Faster Results | by Andrean Lay | Tokopedia Engineering | Medium
Tokopedia's iOS team was drowning in 30-minute unit test cycles with 65 developers fighting over 9 CI/CD machines. They cut that time by 8X.
Profile-Guided Optimisation
Grab's engineering team just unlocked 30% memory savings and 38% storage reduction with a simple compiler flag. Here's how Profile-Guided Optimization (PGO) delivered massive gains with minimal code changes.
How we improved our iOS CI infrastructure with observability tools
Grab's iOS team turned flaky CI tests into a 50% CPU reduction story. Their secret? Observability tools and some creative workarounds for Xcode 13.1's notorious Spotlight bug.
Xcode Cloud Feedback from leboncoin
Pierre Abi-aad from leboncoin took Xcode Cloud for a test drive with a 28-developer iOS team. His verdict? Not ready for complex architectures, but Apple's onto something.
Designing Swiggy to Be Truly Accessible (Episode 4)
Swiggy tackled mobile web accessibility and discovered that following W3C guidelines was just the starting point. The real challenge? Making a food delivery app work seamlessly for screen reader users.
Swift Async Algorithms
Tony Parker from Apple just dropped a game-changer for async Swift development. If you've been wrestling with time-based operations or multi-input streams, this new package solves problems you didn't know had e...
Query Hashing to Reduce GraphQL Payload Size
Tokopedia's mobile team was sending massive GraphQL queries with every API call. The network overhead was killing performance on slower connections.
Measuring Mobile Apps Performance in Production
Booking.com discovered that standard performance monitoring tools from Apple, Google, and Firebase couldn't meet their needs. So they built their own—and just open-sourced it.
Building a Thoughtful Scaling Framework for Engineering
Robinhood doubled their engineering team in a year while scaling to handle unpredictable market swings. Here's the framework that made it possible without breaking their systems or culture.
Delivering a Million Downloads Every Week
Swiggy's Android team serves 1M+ downloads weekly with 52% of users updating within 5 days. That velocity could be a disaster without bulletproof automation.
String Index Type Safety in Swift
Grammarly's iOS team discovered their text editing bugs weren't logic errors. They were using the wrong kind of integer.
Designing the Swiggy App to Be Truly Accessible (Episode 3)
Swiggy made their food delivery app fully accessible for visually and physically challenged users. The result? A measurable increase in orders from users with disabilities.
Continuous Deployment for iOS
Doist ships iOS updates weekly to production and daily to TestFlight. Here's how they automated their entire release pipeline.
Implementing iOS Collection View with Efficient Rendering Mechanism
Tokopedia's iOS team was crashing on UICollectionView batch updates. Their solution? Build a better abstraction inspired by Instagram and SwiftUI.
Microapps architecture in Swift. Dependency Injection.
Majid Jabrayilov explores how microapps architecture can transform your Swift codebase from a monolith into modular, testable components. The secret? Getting dependency injection right from the start.
Designing the Swiggy App to Be Truly Accessible (Episode 2)
Swiggy saw 5x growth in accessibility sessions after fixing one critical UX problem: their Android app treated screen reader users like robots, not humans.
Getting Square's iOS Build Ready for Apple Silicon with Bazel
Jerry Marino from Square reveals how they got their massive iOS codebase (1000+ modules) running on M1 Macs without waiting for every dependency to update. The clever workaround? Converting device binaries to r...
Microapps architecture in Swift. Resources and localization.
Microapps architecture sounds great until you hit the resource bundling wall. Majid Jabrayilov tackles the messy reality of managing assets and localization across modular Swift apps.
Fixing Performance Regressions Before They Happen
Angus Croll from Netflix reveals how his team slashed false performance alerts by 90% while catching more real regressions. The secret? They stopped using static thresholds entirely.
Microapps architecture in Swift. Feature modules.
Majid Jabrayilov explores how to break down monolithic iOS apps into independent, testable feature modules. The secret? Treating each feature as its own microapp.
Designing the Swiggy App to Be Truly Accessible (Episode 1)
Swiggy ignored accessibility for years, effectively locking out millions of users with disabilities. A Change.org petition changed everything.
Stabilize, Modularize, Modernize: Scaling Slack's Mobile Codebases
Tracy Stampfli and Bryan Stern reveal how Slack's mobile teams tackled crippling tech debt that was actively slowing product roadmaps. Their solution? A bold 6-month stabilization sprint that transformed both i...
How we ship GitHub Mobile every week
GitHub Mobile ships to production every single week with a tiny team. Their secret? Ruthless automation that turns a multi-day release process into a Saturday morning workflow.
Microapps architecture in Swift. SPM basics.
Majid Jabrayilov explores how to break down monolithic iOS apps into modular microapps using Swift Package Manager. The secret? Treating features as independent products that can be developed and tested in isol...
Flutter Revitalized Our Codebase and Transformed Our Engineering Team
Sam Moore from Betterment shares how his team rewrote 85% of their mobile app in just over a year without disrupting users. The secret? A methodical approach to adopting Flutter that prioritized team buy-in ove...
Introducing Swift RunOnce
Daniel Roth from Thumbtack's iOS team just solved a problem every Swift developer has faced: ensuring code runs exactly once without the brittle boolean flags that break at scale.
Balancing Native and JavaScript Code in React Native
React Native's bridge can be your bottleneck or your superpower. Callstack explores the critical tradeoff between JavaScript flexibility and native performance that determines whether your app flies or crawls.
Cross-Platform Messaging Experience
Snap rewrote their entire messaging system in C++ to solve a problem that plagues most mobile teams: platform inconsistency causing bugs and doubled engineering effort.
How We Revamped Tokopedia Play for iOS: So Fast & Productive
Tokopedia's iOS team rewrote their entire live streaming chat feature from scratch in record time. The reason? React Native couldn't handle the load during major promotions.
Airbnb's Page Performance Score on iOS
Airbnb built a unified performance scoring system that works across all platforms. Here's how they instrumented it on iOS to track real user experience at scale.
Continuous Integration and Delivery for iOS
Jimmy Harijanto from Blibli.com shows how to stop manually building iOS releases in Xcode. His team automated the entire pipeline from code commit to TestFlight using open-source tools.
Nextdoor Notifications: Using ML to Keep Neighbors Informed
Karthik Jayasurya from Nextdoor reveals how they transformed notifications from random spam into personalized updates that neighbors actually want. The result? A 40% jump in engagement without sending more mess...
Building App Clips with React Native
Sebastian Ekström from Shopify built something that shouldn't exist: a React Native App Clip under 10MB. The Shop app itself is 51MB, and React Native isn't exactly known for being lightweight.
Mobile Developer Productivity at Reddit
Reddit's mobile team ships features 30% faster after overhauling their developer productivity infrastructure. Here's how they did it.
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.
How Tokopedia Achieved 1000% Faster iOS Build Time
Tokopedia's iOS team turned 90-minute builds into 5 minutes. Yes, you read that right: a 1000% improvement.
Monitoring Performance of Screens in Your iOS App
Revolut's iOS team was drowning in vague performance reports. "This screen is laggy" became a detective hunt through Xcode Profiler with no clear starting point.
Introducing XCRemoteCache: The iOS Remote Caching Tool that Cut Our Clean Build Times by 70%
Spotify just open-sourced the tool that slashed their iOS build times by 70%. For teams drowning in long compile times, this is a game-changer.
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.
Introducing Swift Distributed Actors
Swift is taking on distributed systems with the same elegance it brought to concurrency. The Swift team just open-sourced a complete cluster library for building distributed actor systems.
Mobile Performance @ Lyft
Lyft was serving 17.1M riders while their Android app launched 15-20% slower than competitors. Time to fix that.
How Do We Improve Our Most Important Page on iOS App
Tokopedia's homepage was crashing on millions of iOS devices. The culprit? React Native couldn't keep up with their scale.
Swift DocC Documentation Tool
Franklin Schrans from Apple's Swift-DocC team just announced something iOS developers have been waiting for: Swift-DocC is now open source and cross-platform. Documentation just got a serious upgrade.
Designing for Productivity in a Large-Scale iOS Application
Airbnb's iOS codebase hit 1.5M lines of code with 75 engineers shipping weekly. Xcode was literally overheating their laptops.
What if iOS Developers Want To Learn Flutter?
Amorn Apichattanakul, an iOS developer since the iPhone 3GS era, spent 1.8 years mastering Flutter and wishes someone had created a cheat sheet for the transition. So he built one himself.
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...
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.
Swift 5.5 Released
Ted Kremenek from Apple's Swift Core Team just dropped Swift 5.5, and it's the biggest language update in years. This release fundamentally changes how iOS developers write concurrent code.
Swift Code Linting and Formatting Best Practices
Cecília Saraiva from Glovo reveals how their 30+ iOS engineers maintain code consistency without the manual overhead. Spoiler: automation is doing the heavy lifting.
Debugging the UI of Third-Party iOS Apps
Ever wonder how Twitter built their custom tab bar or how Reeder optimized their scroll performance? There's a way to peek under the hood.
Implementing Diffable DataSource for Heterogeneous Items in iOS
Pattogató Bence from Wise Engineering tackles a problem every iOS dev faces: animating heterogeneous items in collection views without the usual headaches. His solution? A clever enum wrapper that makes UIColle...
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.
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.
Kotlin-Style Copy Function For Swift Structs
Scott Birksted from Shopify tackles a frustrating gap between Kotlin and Swift: why can't Swift structs copy themselves as elegantly as Kotlin data classes?
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.
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.
Preventing Pipeline Calls from Crashing Redis Clusters
Grab lost 95% of ride bookings for a full minute when a single Redis slave node failed. Their highly available cluster with multiple replicas somehow became a single point of failure.
React Native 0.65 Release
React Native 0.65 just dropped with performance gains that'll make you rethink your mobile architecture. The Hermes engine upgrade alone is delivering 20-50% improvements on CPU-intensive workloads at Facebook.
Project Bonsai
Grab's Android app had 4 million lines of code and was bleeding users. Google's research showed every 6MB increase costs 1% of conversions.
Best Practices for Unit Testing at Revolut
Revolut's iOS team ships weekly updates with minimal regression. Their secret? Making unit tests actually fun to write.
Spotting Latency Regressions Ahead of Time at Teams Mobile
Microsoft Teams Mobile merges 50+ commits daily from 350+ developers. How do they catch performance regressions before users feel the pain?
Carbon: Dual Binary Mobile App
Uber rewrote their entire driver app serving 3 million drivers. How do you ship that without breaking your business?
A Deep Dive into Airbnb’s Server-Driven UI System
Airbnb ships features simultaneously across web, iOS, and Android without waiting for app store releases. Their secret? Server-driven UI.
ACF Automated Code Formation Engineering Excellence
Walmart's engineering team cut time-to-market for cloud self-service platforms from 26 weeks to under 2 weeks. Here's the framework that made it possible.
Getting Started with iOS App Modularization: Final Extraction and Micro-App
Tokopedia's iOS team just wrapped up their modularization tutorial series, and the final piece is a game-changer: micro apps that let you build only what you need.
Trusting Metrics at Pinterest
Pinterest relies on data to drive decisions and ML models. But what happens when a metric as simple as Daily Active Users gets counted wrong?
Modularising the Badoo iOS app: dealing with knock-on effects
Alexander Kulabukhov from Bumble Tech reveals the hidden costs of iOS modularization that nobody warns you about. Spoiler: visualizing 50+ module dependencies looks like a tangled mess, and your CI will cry for...
App Modularisation at Scale
Grab went from one monolithic mobile app to over 1,000 modules. Here's what they learned about scaling a superapp.
iOS Monorepo CI/CD Pipelines
Alberto De Bortoli from Just Eat Takeaway reveals how they slashed their iOS CI complexity by consolidating dozens of module repos into one. The result? One PR instead of multiple, faster iteration, and smarter...
Improving Platform Channel Performance in Flutter
Aaron Clarke from Google's Flutter team eliminated unnecessary memory copies in platform channels and achieved up to 52% performance gains. Here's how he debugged his way through Objective-C class clusters and ...
How we build SwiftUI features in the Medium application
Medium's iOS team went all-in on SwiftUI for production features serving millions of users. Here's how they made it work in a legacy codebase.
Swift Package Collections
Tom Doron from the Swift Core Team just made package discovery way less painful. Swift 5.5 introduces Package Collections, turning endless search results into curated, trustworthy lists.
Structured Logging: The Best Friend You'll Want When Things Go Wrong
Grab's logging bills were spiraling out of control. Their solution? A complete rethink of how they capture what happens in production.
Scaling Mobile Development at Microsoft: Mental Model
Microsoft's mobile teams were drowning in duplicate code. Every app rebuilt the same file picker, calendar, and sharing experiences from scratch.
Announcing Flutter 2.2 at Google I/O 2021
Tim Sneath from Google reveals Flutter 2.2 just hit a major milestone: it's now the #1 cross-platform framework, powering 1 in 8 new Play Store apps. The momentum is undeniable.
Getting Started with iOS App Modularization: Extracting Catalog
Tokopedia's iOS team tackled a common scaling problem: how do you break apart a monolithic app without creating circular dependency chaos?
Improving iOS Intangibles with Tactical
Medium's iOS team was scattered across product teams, causing their codebase and user experience to fragment. Their solution? A biweekly meeting format borrowed from holocracy that transformed how they ship.
Six iOS App Features Explained
Charlotte Martin and Victor Carmouze from BlaBlaCar reveal how small, often-overlooked iOS features can dramatically improve user experience. Most developers chase headline features while missing the details th...
Scaling iOS at Bumble (Part 3)
Bumble's iOS team hit a wall: dozens of engineers, hundreds of modules, and Xcode was buckling under the pressure. Sound familiar?
Swift 5.4 Released
Ted Kremenek from Apple's Swift Core Team just dropped Swift 5.4, and it's packed with performance wins that'll make your builds faster and your runtime leaner. This isn't just new syntax—it's measurable speed ...
iOS Accessibility Best Practices
Adrian Russell from Just Eat Takeaway turned on Screen Curtain and tried to order food through his own app. What he discovered was shocking: over 100 accessibility failures making the app nearly impossible to u...
SwiftUI with UICollectionView
Kari Grooms from Expedia Group tackles a problem every iOS team faces: how do you start using SwiftUI when your app is built on UICollectionView? Her solution is clever, but comes with some surprising gotchas.
Hermes JavaScript Engine Performance on iOS
Callstack brings Hermes to iOS with React Native 0.64, ending Android's monopoly on this performance-focused JavaScript engine. The results challenge assumptions about cross-platform optimization.
Getting Started with iOS App Modularization: An Introduction
Tokopedia's iOS team faced a critical problem: their monolithic app took so long to build that it threatened their weekly release schedule.
How We Reduced Pinterest’s iOS App Size by 30+% / 50MB
Pinterest slashed their iOS app size by 30% (50MB) and immediately saw install rates climb. The culprit? A sneaky localization bug multiplying files across app extensions.
Resizing Images In SwiftUI
Kari Grooms from Expedia Group's Vrbo team cracked one of SwiftUI's most frustrating puzzles: resizing images without distortion. What should be simple turns into a 10-step journey through modifier hell.
Bringing Hermes to iOS in React Native
Callstack just brought Hermes to iOS, and the performance gains are real. After years of Android exclusivity, React Native's lightweight JavaScript engine finally runs on Apple platforms.
Scaling iOS at Bumble (Part 2)
Bumble's iOS team migrated their entire codebase to Tuist in Q2 2023, choosing it over SPM and Bazel. Here's what happened after the dust settled.
Lessons in SwiftUI
Kari Grooms from Vrbo's iOS team discovered SwiftUI wasn't just a learning curve—it was a complete rethink of how to build mobile UIs. Her team's migration revealed surprising gotchas that most tutorials won't ...
Optimizing OpenTelemetry's Span Processor for High Throughput and Low Latency
DoorDash's OpenTelemetry adoption hit a wall: 72% CPU utilization versus 56% without tracing. That's a costly tax for observability.
Swift Collections Library
Karoy Lorentey from Apple's Swift team just dropped three game-changing data structures that could make your Swift code faster and more reliable. Array and Dictionary aren't enough anymore.
Migrating Your App to Swift Packages
Dmitri Fuerle from OkCupid reveals how their team cut clean build times to under a minute by modularizing their iOS codebase. The secret? Swift Package Manager in a monorepo setup.
Scaling iOS at Bumble (Part 1)
Bumble's iOS team faced a critical choice: which build system could handle hundreds of modules and future growth without crushing developer productivity?
How We Enable Airbnb Team Members To Code Like A Mobile Engineer
Jaclyn Karnowski from Airbnb reveals how they transformed 45 engineers into mobile developers in just 14 days. The confidence shift? 15% to 90% ready to ship production code.
Client Tracing: Understanding Mobile and Desktop Application Performance at Scale
"My app is slow" - every engineer's nightmare. Slack's mobile team was tired of hitting dead ends when debugging performance issues.
CDN Caching Improvements for Better App Performance
AWS Amplify just shipped CDN caching improvements that delivered a 98% reduction in response times for static assets. Cookie handling was the culprit.
Modularising an iOS app: why and how we have been breaking Badoo app up into modules
Alexander Kulabukhov from Bumble reveals how his team scaled from a monolithic iOS app to 110+ modules across Badoo and Bumble. The journey wasn't just about splitting code—it was about building a sustainable p...
Investigating Crashes with Aardvark
Cash App open sourced a tool that solves one of iOS debugging's most frustrating problems: crashes that you can't reproduce locally.
Implementing Doubly Linked Lists in Swift
Oleg Tsibulevskiy from Just Eat Takeaway breaks down why choosing the wrong data structure could be killing your iOS app's performance. Spoiler: Arrays aren't always the answer.
React Native 0.64 Release
React Native 0.64 just brought Hermes to iOS, and it's a game-changer for app performance. The team is finally closing the gap between Android and iOS optimization.
How Pinterest Leverages Honeycomb to Enhance CI Observability and Improve CI Build Stability
Pinterest sends 1 million CI build events to Honeycomb daily. Here's how they turned that data into a competitive advantage for mobile development.
Improve Reliability with Observability Tracing in Your CI/CD Pipeline
Walmart's engineering team reveals how observability tracing transformed their CI/CD pipeline reliability. The secret? Treating data requests like package tracking.
Multiple iOS Apps from a Single Codebase
David Phan from DoorDash reveals how they rebuilt two distinctly branded iOS apps from a single codebase after acquiring Caviar. The result? 90% shared code with completely different user experiences.
Announcing the Mobile Native Foundation
Keith Smiley from Lyft just announced something that could change how we all build mobile apps. Instead of every company rebuilding the same infrastructure in silos, major tech players are finally collaborating...
How Uber Deals with Large iOS App Size
Uber's iOS app was bleeding users: every time it crossed Apple's download limit, they lost 10% of installations and 20% of first-time bookings.
JSON Serialization Libraries Performance Comparison
Israel Abramov from Just Eat Takeaway tested 10 JSON serialization libraries across 8 scenarios. The results? Your default serializer might be costing you serious performance.
Tinder Swipe Animation in SwiftUI Tutorial
Gary Tokman shows how to build Tinder's signature swipe animation in SwiftUI—and it takes less than 10 minutes. No complex gesture handling, no hours of UIKit code, just declarative SwiftUI magic.
How We Designed Our Continuous Integration System to Be More Than 50% Faster
Pinterest's Engineering Productivity team slashed CI build times by over 50% in one week. Here's the architecture that made it possible.
Solving Native Memory Leaks in Mobile Apps
Sid Rathi from Expedia Group debugged a production nightmare: KStream apps dying in an endless OOM loop. The culprit? A single unclosed iterator eating native memory.
Tokopedia iOS: Hello 2021, Rewind 2020
Samuel Edwin from Tokopedia reveals how his iOS team achieved a 10x build time reduction while shipping features that got them featured on the App Store. Despite 2020's challenges, they transformed their entire...
Time to Camera Ready
Snap's engineering team obsesses over one metric: Time to Camera Ready. Miss the bear crossing the street because your app was too slow? That's exactly the problem they're solving.
Delegation Pattern in Swift
Williams Perdana from Blibli.com uses a CEO analogy to explain one of Swift's most powerful patterns. Just like a CEO delegates to department heads, your code can delegate responsibilities to keep things clean ...
Introducing Pulse: Envoy Mobile's stats library
Jingwei Hao from Lyft reveals how real-time stats APIs caught a production crash spike at 9:55am, enabling engineers to ship a hotfix before most users even noticed the problem.
Building iOS 14 Widgets for Carousell - Part 2
Jay Ang and Beemo Lee from Carousell's iOS team shipped their first iOS 14 widget in 2020. Their biggest challenge? Two singleton instances fighting each other across app targets.
SwiftNIO SSH Implementation
Cory Benfield from Apple's Cloud Services team just open-sourced SwiftNIO SSH, bringing programmatic SSH capabilities to Swift. Think libssh2, not openssh: this isn't a ready-made client, it's the building bloc...
SwiftUI Stretchable Header View Implementation
Oleg Tsibulevskiy from Just Eat Takeaway shows how to build one of iOS's most popular UI effects with surprisingly little code. The stretchable header that zooms and stretches as users scroll? It's easier than ...
Our iOS CI/CD Journey At Nextdoor
Su Khai Koh from Nextdoor reveals why their team willingly accepted slower build times in exchange for something more valuable: stability and sanity.
Mobile App Launch Performance
Gonçalo Alvarez from Farfetch drops a hard truth: 86% of users uninstall apps after one use due to poor performance. Your launch time might be costing you customers before they even see your product.
Mobile App Launch Performance II
At Farfetch, a 0.1 second delay in warm app launch costs $4.2M annually. That's less time than it takes to blink.
Monitoring App Performance on iOS
Expedia's iOS team breaks down the complete performance monitoring toolkit every mobile team needs. Your users notice lag after just 300ms—here's how to stay ahead.
Building iOS 14 Widgets for Carousell - Part 1
Julia Maurer and Ha Pham from Carousell reveal how they shipped their iOS 14 widget in one sprint. Their secret? Starting with power users who open the app 300 times daily.
Decomposing network calls on the Lyft mobile apps
Lyft's mobile apps used to poll a single endpoint every 5 seconds for everything. That "Universal Object" became their biggest reliability nightmare.
Swift Service Discovery
Yim Lee from Apple's Swift team just open-sourced a game-changer for server-side Swift. If you're building microservices, this standardized approach to service discovery could save you from vendor lock-in.
Pre-submit UI Tests at Pinterest
Pinterest's UI test suite was failing more than 50% of the time. Engineers were drowning in false positives, and tests had lost all credibility.
Swift Algorithms Library
Nate Cook from Apple's Swift team just dropped Swift Algorithms, an open-source package that could change how iOS developers write collection code. If you've ever written a gnarly nested loop to chunk data or f...
The Fundamentals of iOS Development at Revolut
Revolut ships 3 iOS apps weekly to millions of users. Their secret? A modular architecture that cut build times nearly in half and saves 400 engineering hours monthly.
Swift Atomics Library
Karoy Lorentey from Apple just dropped Swift Atomics, bringing C/C++ style low-level atomic operations directly into Swift. This changes the game for systems programmers who've been blocked from building concur...
Learning Flutter's new navigation and routing system
John Ryan from Flutter's team tackles one of mobile dev's messiest problems: navigation. But the solution might be more complex than the problem itself.
Swift System Library
Michael Ilseman from Apple's Swift team just open-sourced a library that turns error-prone C system calls into clean, type-safe Swift code. If you've ever wrestled with file descriptors and errno, this changes ...
GitHub Mobile and GraphQL
Hesham Salman from GitHub reveals how GraphQL eliminated over-fetching and let their mobile team ship features at warp speed. The secret? Letting the client define exactly what data it needs.
New Rider App Architecture
Uber threw away years of code and rebuilt their rider app from scratch. Here's why that radical decision paid off.
Swift 5.3 Released
Holly Borla announces Swift 5.3 with performance gains that cut code size by 40% in some apps and slash heap memory to under 1/3 of previous usage. These aren't incremental improvements.
5 Minute DevOps Effective Testing
Walmart's DevOps team has a bold claim: if you're not testing during development, you're risking the business. Here's why your testing strategy might be fundamentally broken.
Motion Engineering at Scale
Airbnb was shipping hundreds of features, but custom animations were getting cut due to complexity. Their solution? A declarative framework that reduced transition code from hundreds of lines to just a few.
Tracing at Slack: Thinking in Causal Graphs
Slack processes 8.5 billion spans daily, but their tracing system looks nothing like traditional distributed tracing. Here's why they rebuilt it from scratch.
Wire Support For Swift, Part 1
Eric Firestone and Jake Wharton from Square just brought Wire's protocol buffer compiler to Swift, and their opinionated approach throws out some sacred cows. Why build yet another proto compiler when Google al...
Lottie and Swift at Airbnb
Airbnb rewrote their massively popular Lottie animation library from scratch in Swift. Here's why they chose a complete rewrite over incremental updates.
Leveraging Mobile Infrastructure with Data-Driven Decisions
Spotify's mobile infrastructure team turned build time chaos into predictable performance. Their secret? Making every engineer a data scientist.
React Native Core Principles and Best Practices
The React Native team at Facebook just pulled back the curtain on how they decide what to build next. Spoiler: cross-platform consistency isn't their top priority.
App Size Matters II
What if I told you a single 15MB increase in your app size could cost your business $1M annually? Farfetch's mobile team did the math, and the numbers are eye-opening.
App Size Matters I
Gonçalo Alvarez from Farfetch drops a hard truth: your bloated app is costing you users, installs, and market share. Here's why app size is a business problem, not just an engineering one.
How We Ensure Credible Analytics on Dropbox Mobile Apps
Marianna Budnikova from Dropbox reveals why your mobile analytics are probably lying to you. And it's costing you two weeks every time you get it wrong.
Swift Service Lifecycle
Tom Doron from Apple's Swift team just open-sourced a solution to one of server development's most error-prone challenges: managing startup and shutdown sequences safely.
React Native 0.63 Release
React Native just fixed the two biggest complaints from mobile teams: cryptic error messages and interactions that scream 'this isn't a native app.'
Making Slack Faster By Being Lazy
Slack cut load times by 65% for large teams by doing less work, not more. Their secret? Strategic laziness.
Making Slack Faster By Being Lazy: Part 2
Slack's desktop client was grinding to a halt as teams scaled. The culprit? An over-reliance on browser LocalStorage that seemed smart at first.
App Size Reduction at Microsoft SwiftKey
Microsoft SwiftKey slashed their Android app size by 50% and boosted install conversions. Here's the playbook they used to get there.
iOS Data Tracking with CoreData
Emre Havan from Freeletics ditched third-party analytics SDKs and built a custom tracking system using CoreData. The result? Full control over batching, performance, and data flow without external dependencies.
Using Hopper to Investigate an iOS Bug
Alexander Nikishin from Bumble's engineering team cracked open iOS 13's binary code with a disassembler to find a bug Apple couldn't fix for 8 months. What he discovered was a single misplaced bit in a keyboard...
Your next upgrade deserves an upgrade
Signal just solved one of iOS's most frustrating problems: losing your encrypted message history when you upgrade devices. imperiopolis walks through how they built a secure, local device-to-device transfer tha...
Spotify Modernizes Client-Side Architecture to Accelerate Service on All Devices
Spotify lifted the 10,000 Liked Songs limit. But that simple feature request triggered a year-long architecture overhaul affecting 100,000 lines of code.
Bringing the Best of SwiftUI to Our Team's UIKit Code
Victor Pavlychko from Grammarly tackles the challenge every iOS team faces: loving SwiftUI's elegance but being stuck with years of UIKit code. His solution? Reverse engineer SwiftUI's best features into their ...
Making iOS Accessibility Testing Easy
Cash App's engineering team just open-sourced their solution to one of iOS development's most frustrating problems: testing accessibility without the manual grind.
How We Gave Superpowers to Our macOS CI
Spotify cut iOS pre-merge CI times by 75% with one infrastructure change. Here's how they validated and scaled their approach.
Choosing Between SwiftUI and UIKit
Joel from OkCupid's engineering team built the same login flow twice—once in SwiftUI, once in UIKit—to support millions of users across iOS versions. Here's what he learned about making them coexist.
Bank of America Amps Up In-App Experiences
Bank of America cut their mobile app response time in half. Here's how they did it with a simple API consolidation strategy.
React Native 0.62 Release
React Native 0.62 just shipped with Flipper debugging built in by default. This release fundamentally changes how mobile developers debug cross-platform apps.
Understanding the aspects of iOS App Launch Time | by Ravi Aggarwal | Medium
First impressions matter. For iOS apps, that means every millisecond between tap and first screen counts.
One Approach to Monitoring iOS Application Performance
Mercari's iOS team needed to monitor performance without building an entire infrastructure team. Here's how they did it in under a week.
How a One-line Change Decreased Our Build Times by 99%
Pinterest found a single tweak that slashed their build times by a jaw-dropping 99%.
Reducing Our Build Time by 50%
Gojek's iOS team was bleeding 11 minutes per build. 100 engineers, 350 daily CI pipelines, and a productivity crisis that demanded action.
Building A Native Design System For iOS
Kevin Beaulieu from Thumbtack reveals how they built an iOS design system that balances strict consistency with real-world flexibility. The secret? Making standard usage effortless while keeping customization p...
Argument Parser Library for Swift
Nate Cook from Apple's Swift team just made building command-line tools in Swift genuinely enjoyable. The new ArgumentParser library turns 50 lines of code into a fully-featured CLI with subcommands, validation...
Bringing AV1 Streaming to Netflix Members’ TVs | by Netflix Technology Blog | Netflix TechBlog
Netflix just brought AV1 streaming to TVs, marking a major milestone for the royalty-free codec. The result? Measurably better streaming for millions of members.
Improving Animations on iOS with Stagehand
Cash App just open-sourced Stagehand, their solution to a problem that's plagued iOS developers since 2008: building animations shouldn't feel like archaeology.
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%, ...
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.
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.
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.
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.
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.
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.
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.
Interactive 3D Cards for Revolut iOS App
Igor Dudenkov from Revolut reveals how they built interactive 3D metal cards in iOS—without touching OpenGL or Metal frameworks. The secret? Apple's high-level SceneKit framework that made photorealistic card r...
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.
Creating a Fluid Scroll Experience on iOS
ClassPass engineers faced a deceptively simple challenge: build an Apple Maps-style draggable list. The first attempt looked perfect—until users tried the continuous scroll.
iOS GPS Testing and Location Services
Trevor Phillips from Freeletics built a comprehensive GPS testing framework that improved location accuracy from 7% error down to 1.68%. Here's how they systematically validated every improvement.
Handling Multiple Native iOS Views in React Native
Callstack tackles a common React Native challenge: managing multiple native iOS views without the usual headaches. This 2019 piece still holds valuable lessons for teams bridging native and JavaScript code.
A Swift Journey Episode 2: Handling Silent Notifications
Arinc Elhan from Connected2.me breaks down silent push notifications in iOS, and there's more to them than just background data delivery. Apple throttles them aggressively, and most developers don't know the li...
Mobile Release Engineering at Scale: ShipIt Mobile
Alejandro Rodriguez Salamanca from Shopify reveals how manual mobile releases were killing their velocity. The solution? A platform that cut release cycles from 3 weeks to 1 week.
iOS Code Signing Best Practices
Minyoung Sim from LINE breaks down iOS code signing in forensic detail, revealing how Apple's security mechanism validates every app before execution. This isn't your typical overview.
Employing QUIC Protocol to Optimize Uber’s App Performance
Uber operates across 600+ cities on 4,500+ mobile carriers. Their HTTP/2 stack was failing users in lossy wireless networks.
Developing on iOS and Android
Jesse Wilson from Square tackles a problem every mobile team knows too well: building everything twice. His solution? Stop treating iOS and Android as separate worlds.
Quality Assurance and Testing for Mobile Applications
Julio Zynger from SoundCloud reveals how they ship mobile releases every two weeks without breaking things. Their secret? A release train model that turns chaos into predictability.
Implementing Infinite Scrolling Efficiently
Phong Lam from Walmart Global Tech tackles a problem every mobile dev faces: infinite scroll that doesn't tank performance. His solution? Stop rendering everything and start being strategic.
Measuring Kotlin Build Performance
Uber ran 129 experiments across 354 projects to answer one question: What's the real cost of adopting Kotlin at scale?
Amplify Framework adds authentication features and enhancements for iOS and Android Mobile SDKs
AWS Amplify just made mobile authentication dramatically simpler. Device tracking, OAuth 2.0, and SAML federation now work out of the box for iOS and Android developers.
React Native 0.59 Release
React Native 0.59 just dropped with the biggest Android performance upgrade in years. If your app still feels sluggish compared to iOS, this changes everything.
Building a Dynamic UI System at Carousell (Part 1)
Siaw Young from Carousell reveals how they built a system that lets them update thousands of product categories without pushing app updates. The secret? A cross-platform markup language that operates at a highe...
Building a Dynamic UI System at Carousell (Part 2)
Siaw Young from Carousell reveals how they built a server-driven UI system that lets them ship features without app releases. Think HTML for mobile apps—but way more powerful.
A Swift Journey Episode 1: Generic Protocols in Action
Engin Deniz Usta from Connected2me shows how generic protocols can eliminate boilerplate code that iOS developers write dozens of times per project. No more casting, no more repetitive XIB and Storyboard initia...
Introducing Inclusive Beauty Searches for Mobile
Pinterest just shipped a feature that 60% of their top beauty searches were literally asking for. Yanis Markin walks through how they combined ML with inclusive design to solve it.
Server-Provided Animations in iOS Apps
Valerii Che from Badoo solved a problem every mobile team dreads: waiting days for App Store approval just to update animations. His solution? Move them to the server.
Server-Provided Animations in iOS Apps
Valerii Che from Bumble solved a problem every mobile team faces: how do you ship new animations without waiting days for App Store approval? His solution decouples design updates from release cycles entirely.
iOS Application Testing Strategies at Shopify
Shopify's iOS team ships hundreds of commits weekly to a monorepo. Their testing strategy keeps quality high without slowing down velocity.
iOS CI, supercharged
Péter Adam Wiesner from Skyscanner reveals how his team slashed iOS CI queue times from 80 minutes to just 7 minutes. The secret? A private Mac cloud that scaled their build capacity 2.5x without sacrificing sp...
Engineering Uber Lite
Uber's main app hit 60MB and struggled on older Android devices in emerging markets. So they built something radically different.
Performance comparison of video coding standards: an adaptive streaming perspective
Joel Sole and the Netflix encoding team reveal why codec comparison studies often contradict each other—and how they're fixing the problem. Their findings challenge conventional wisdom about H.264, H.265, and V...
Bundling C Library in Swift Framework
Lem from Bumble's engineering team tackles a tricky iOS challenge: how do you bundle legacy C libraries into modern Swift frameworks without breaking portability? The common approaches fail when you need to shi...
Bundling C Library in Swift Framework
lem from Bumble Tech tackles a tricky iOS challenge: how do you bundle legacy C libraries into modern Swift frameworks without breaking portability?
Integration Testing for Memory Leaks
Matthew Healy from SoundCloud reveals how a single integration test can catch memory leaks across an entire VIPER module. Unit tests alone won't save you from the sneaky leaks hiding in object interactions.
Hate to Wait: How Skyscanner Used Module Caching to Cut App Build Speed in Half
Skyscanner's iOS developers were waiting hours for builds to complete. Their CI/CD team cut that time in half with a clever caching strategy.
Consistent Caching Mechanism in Titus Gateway
Netflix's Titus container platform hit a wall: their singleton leader couldn't handle the API query load. Here's how they scaled horizontally without breaking consistency guarantees.
Introducing AloeStackView for iOS
Marli Oshlack from Airbnb reveals how they slashed iOS screen development time from weeks to hours. The secret? Rethinking the entire approach to UI layout.
Why We Decided to Rewrite Uber's Driver App
Uber rewrote their entire driver app with hundreds of engineers over 18 months. Joel Spolsky once called rewrites 'the single worst strategic mistake' a software company can make.
How We Tested iOS 12 Beta
Kateryna Sprynsian from Bumble's QA team shares a hard truth: when iOS 12 dropped, 60% of their users updated within weeks. Were they ready?
Testing iOS 12 Beta
Kateryna Sprynsian from Bumble Tech shares a hard truth: when iOS 12 launched, 60% of their users updated within 8 weeks. Were they ready? Here's how they avoided disaster.
iOS App Performance
Monzo's iOS app got 60% slower over time, and their team structure was partly to blame. Here's how they fixed it and prevented it from happening again.
Mobile Tophatting at Shopify
Pedro Piñera from Shopify reveals how they turned a 15-minute context switch into a single command. No QA team? No problem when developers can test each other's work this fast.
How Discord Handles Two and Half Million Concurrent Voice Users Using WebRTC
Discord handles 2.6 million concurrent voice users with just 850 servers across 13 regions. Here's how they built a custom WebRTC architecture that scales.
Implementing Scalable UI in iOS: Better, Faster Performance
Alexis Santos from Bumble reveals how his team transformed iOS UI development from chaotic to scalable. The secret? A custom framework that cut compilation time and eliminated code duplication.
What Feature Team Structure Has Changed for iOS Team at leboncoin
Amandine Cousin from leboncoin reveals how their iOS team of 9 developers ships features continuously on a single branch. No release branches, no merge chaos, just one button deploys.
WKWebView Integration in React Native
React Native just made a critical infrastructure shift that every iOS developer needs to know about. Apple's deprecation of UIWebView forced the framework to completely rebuild its WebView implementation.
Universal Links for Android and iOS
Konstantin Yakushev from Bumble Tech reveals the brutal truth about universal links: Apple and Google's 'simple' solution is riddled with undocumented bugs that break user experience in shocking ways.
Universal Links for Android and iOS
Konstantin Yakushev from Bumble reveals the brutal truth about universal links: Apple and Google's 'simple' solution is riddled with undocumented bugs that break user experience. Here's how Badoo's team catalog...
Developing Reusable Components for iOS
Tobias Carryer from Hootsuite built a reusable iOS framework during his summer internship—a sliding drawer component inspired by Apple Maps. Here's how he turned it into a production-ready, testable framework t...
Guide to Mobile App Autotesting Tools
Arseny Batyrov from Badoo's QA team built the mobile testing guide he couldn't find anywhere else. After combing the internet for tool comparisons and finding nothing comprehensive, he created this definitive b...
Guide to Mobile App Autotesting Tools
Arseny Batyrov from Badoo's QA team built the mobile testing guide he couldn't find anywhere else. His comprehensive breakdown of autotesting tools reveals which ones actually matter in 2018.
iOS UI Development in Badoo
Valerii Che from Badoo's iOS team reveals why they ditched Storyboards and XIBs entirely. Their code-first approach handles weekly feature releases without breaking existing functionality.
iOS UI Development Best Practices
Valerii Che from Bumble's engineering team reveals why they ditched Storyboards entirely. Their code-first approach handles weekly feature releases without breaking existing functionality.
Unified Cross-Platform Performance Metrics
Slack's engineering team faced a classic scale problem: three platforms, three definitions of 'app launch,' and zero ability to compare performance meaningfully.
3 Techniques We Used to Improve Skyscanner for iOS Performance
Skyscanner's iOS team discovered their app was lagging on nearly half their user base. The culprit? Testing only on high-end devices.
Split Testing (A/B Testing) with Swift
Alexander shows how a simple A/B test doubled in-app currency purchases from 2% to 4% at Badoo. Here's how to build the same testing framework in Swift.
Split Testing (A/B Testing) with Swift
Alexander from Bumble's engineering team built a client-side A/B testing framework in Swift that takes just 1-2 minutes to implement per new test. No server infrastructure required—just protocols, generics, and...
RxSwift Observable Loading State Management
Martin Moizard from BlaBlaCar tackles a common RxSwift pain point: how do you elegantly track loading states without breaking reactive programming principles?
A New Era of Launching Mobile Games
Emily Putze from Google Play reveals why your mobile game launch strategy is probably outdated. The old playbook that worked in 2014's gold rush era is now a recipe for expensive failure.
Loading Time Matters
Zalando proved that every 100ms of loading time equals real money: a 0.7% revenue lift per session. When 75% of your traffic is mobile, milliseconds become millions.
Improved Mobile Performance
Teamweek just made a bold move: they killed their native mobile apps. Instead of maintaining separate iOS and Android codebases, they bet everything on a mobile-optimized web experience.
The Mobile Crash Reporting Pipeline at LinkedIn
LinkedIn processes massive volumes of mobile crash data to keep their app stable for millions of users. Here's how they built the pipeline.
Swift 4.1 Introduction of CompactMap
Muhammad Shuaib Khan from Bumble Tech explains why Swift 4.1 killed off a popular method that was secretly breaking code. The culprit? A function that worked too well in the wrong places.
Swift 4.1: Introduction of CompactMap
Muhammad Shuaib Khan from Bumble Tech explains why Swift 4.1 killed off a popular method. The culprit? A naming confusion that was breaking code in subtle, dangerous ways.
A Massively Multi-User Datastore Synced with Mobile Clients
Tad Book from Square reveals how they built a datastore that handles massive merchant catalogs while keeping mobile devices in sync, even when offline for days. The secret? An append-only architecture that make...
Building Input Accessory View For React Native
After three years and countless '+1s' on GitHub, React Native finally solved one of iOS development's most requested features. Here's how the team built InputAccessoryView from scratch.
Using Docker to build a testing infrastructure for web UI and mobile
LINE Engineering ditched expensive cloud testing services and built their own Docker-based infrastructure. The result? Flexible, cost-effective testing for both web and mobile.
Automating Mobile App Localization
Dmytro Khmelenko reveals how Freeletics turned localization from a bottleneck into a fully automated pipeline. The results? Measurable revenue spikes in newly localized markets and zero manual translation work.
Implementing Twitter's App Loading Animation In React Native
Ever wonder how Twitter's delightful logo-to-app loading animation actually works? Eli White reverse-engineered it and the solution is counterintuitive.
Screen Navigation in iOS
Bohdan Orlov tackles one of iOS development's messiest problems: screen navigation that's actually testable and maintainable. Most apps get this wrong from day one.
Screen Navigation in iOS
Bohdan Orlov from Bumble Tech tackles one of iOS development's messiest problems: navigation architecture that doesn't turn into spaghetti code. Most apps handle screen transitions the same way Apple demos them...
VIPER Architecture on iOS at Etsy
Michael MacDougall from Etsy reveals how they tackled iOS architecture chaos with VIPER. The overhead was brutal, but the consistency payoff changed everything.
Building a Reusable Component Library on iOS
Michael Caylus from BlaBlaCar reveals how his iOS team built a component library that cut development time and unified their UI across 117 screens. The secret? Treating UI components like Lego bricks.
Singleton, Service Locator and Tests in iOS
Bohdan Orlov from Bumble Tech tackles one of iOS development's most controversial debates: are Singletons and Service Locators actually anti-patterns, or just misunderstood tools?
Singleton Service Locator Pattern and Testing in iOS
Bohdan Orlov tackles one of iOS development's most controversial debates: when Singletons and Service Locators are actually useful (and when they'll wreck your test suite).
UIKit Best Practices and Tips
Bohdan Orlov from Bumble challenges a core assumption in iOS development: what if fighting UIKit is the real problem? His team's approach cuts boilerplate while keeping code maintainable.
The future of multi-modal interfaces
Meta has been quietly building the foundation for interfaces that understand speech, vision, touch, and text simultaneously. The future of mobile isn't single-mode anymore.
Efficient and healthy background data prefetching at Instagram
Instagram's background prefetching could easily drain batteries and waste data. Here's how they built a system that's both fast and responsible.
Testing React Native iOS Bridges
Szabolcs Tóth from Skyscanner reveals how they solved a critical testing gap when integrating React Native into their Objective-C iOS app. Their solution transformed flaky, hard-to-debug bridge tests into a rel...
RxSwift MVVM Architecture Pattern
Martin Moizard from BlaBlaCar reveals a critical MVVM pitfall that breaks when you switch from simple views to UITableViews. The culprit? How you feed inputs to your ViewModels.
How to Extract Analytics Data from Your iOS Application
Arsen Gasparyan from Revolut breaks down how to build an analytics system that's actually testable. Most teams bolt on tracking as an afterthought—here's the protocol-oriented approach that scales.
Mobile Apps: iPlayer Tech On The Move
Ross Harper from BBC's iPlayer team reveals how they ship to 45+ million downloads across thousands of device variants. Their secret? A shared codebase that builds two distinct products.
React Native Performance In Marketplace
Facebook cut React Native Time to Interaction in half on low-end Android devices. The secret? They stopped trusting their testing tools and went straight to production data.
Mind Maps for Fast and Effective Testing
Kateryna Sprynsian from Bumble's iOS team ditched traditional test cases for something faster. With weekly releases shipping multiple features, her team needed a testing approach that could actually keep up.
Importing Adobe After Effects Animations into iOS Apps
Radoslaw Cieciwa from Bumble reveals why their gorgeous After Effects loading animation nearly killed iOS performance. Spoiler: trim paths and CPU rendering were the culprits.
Strava Mobile App Versions
Jeff Remer from Strava explains why their mobile app jumped from version 5.14 to 14.0 in just four months. Spoiler: it wasn't feature bloat.
Zynga Geo Proxy: Reducing Mobile Game Latency
Sergey Skachkov and Ajinkya Apte from Zynga cut mobile game latency in half for global players. Their geo proxy solution turned frustrated users into retained ones.
Integrating React Native in an Existing Application
Guillermo Orellana from Bumble's tech team walks through the real-world pain of integrating React Native into an existing Android app. Spoiler: the official docs won't save you.
Building Mixed Language iOS Projects with Buck
Brian Zhang from Airbnb's Mobile Developer Infra team cracked a problem that seemed impossible: getting Buck to build mixed Swift and Objective-C iOS projects. The payoff? 50% faster CI builds and 30% smaller a...
iOS Linting at Pinterest
Michael Schneider from Pinterest built a custom linting system that catches iOS code issues at compile time, not code review. The secret? Clang plugins that hook directly into the compiler's AST.
Detecting List Items Observed by User
Zalando's engineering team faced a tricky challenge: how do you know if a user actually *saw* an item in a scrolling list, not just flew past it?
Mobile Crash Reporting at LinkedIn
LinkedIn built their own crash reporting system instead of using third-party tools. Here's why that decision paid off.
Messaging Sync: Scaling Mobile Messaging at Airbnb
Zhiyao Wang and the Airbnb team tackled a massive problem: their mobile inbox was loading like a 2001 webmail client. With 100k+ messages per hour, every tap meant a network request, killing UX on slow connecti...
Building a Dynamic Mobile CI System
Shopify slashed their mobile CI deploy times from 2.5 hours to 15 minutes. Here's how they built a system that scales horizontally without breaking a sweat.
Improving Swift Compilation Times from 12 to 2 Minutes
Zalando's iOS team was bleeding 12 minutes per build. That's not just annoying, it's expensive.
iOS Internationalization: Handling Plurals
Lou Franco from Atlassian admits he spent decades writing plural-unfriendly strings because Brian Kernighan tricked him. Now, scaling Trello to 21 languages forced him to confront a hard truth: English pluraliz...
Better List Views
React Native just killed ListView. The new list components solve memory leaks, stale rows, and ignored bugs that plagued mobile developers for years.
Introducing Twitter Image Pipeline iOS Framework For Open Source
Twitter open sourced their iOS image pipeline after hitting a breaking point: 2GB caches, corrupted images, and no way to clear data when users logged out. Here's how they rebuilt it from scratch.
iOS Monorepo
Uber scaled from a dozen iOS engineers to hundreds in just a few years. Their tooling nearly collapsed under the weight.
Code Signing and Distributing Swift Applications
The Badoo iOS team learned the hard way: adopting Swift in 2015 meant navigating undocumented code signing nightmares that crashed enterprise apps at runtime. Here's what broke and how they fixed it.
Using Native Driver For Animated
Your React Native animations are probably running on the wrong thread. Here's how one config flag can eliminate frame drops when JavaScript gets blocked.
Mobile App Testing Tips and Tricks
Alexander Khozya from Bumble's mobile QA team shares battle-tested strategies that caught critical bugs before millions of users did. His team's approach to testing saved them from costly re-submissions and use...
Four Load Testing Mistakes Developers Love to Make
Klarna Engineering found that developers' optimism about their own code creates predictable load testing blind spots. Here are the four mistakes that keep biting teams before Black Friday.
iOS Location Tracking Implementation
Bohdan Orlov from Bumble reveals why iOS location tracking is way harder than most PMs think. Spoiler: you can't just set a timer and call it a day.
Easier Upgrades
React Native upgrades used to be a nightmare of merge conflicts and lost changes. The React Native team just changed that with a clever Git-based solution.
Engineering the Architecture Behind Uber’s New Rider App
Uber completely rewrote their rider app from scratch. Here's why they threw away years of code and started over.
Crashcan: Building a Better Mobile Crash Analytics Platform
Etsy built Crashcan, their own mobile crash analytics layer on top of a third-party provider. Why not just use the vendor's dashboard?
React Native 0.36: Headless JS, Keyboard API, and More
React Native 0.36 just dropped with game-changing background task support. If you've been waiting to run JavaScript while your app sleeps, this is your moment.
iOS Internationalization: Designing for Translators
Lou Franco from Atlassian learned the hard way: internationalizing Trello's iOS app wasn't just about code. The translation files themselves became a critical UX layer that could make or break the entire locali...
Offline First: Introducing TrueTime for Swift and Android
Instacart shoppers were losing minutes in grocery store dead zones. The culprit? You can't trust device clocks when every second counts.
The iOS Bug Chase
An Allegro engineer spent weeks hunting a MapKit bug so elusive it disappeared and reappeared randomly across devices. The investigation went from Swift code to assembly to a conversation in San Francisco.
Improving Chat Rendering Performance
Twitch was dropping frames like crazy. Chat messages were taking 200ms to render when they had just 16.667ms to work with for smooth 60fps video.
Adopting Swift: Migrating to Frameworks on iOS
Felipe Cypriano from Thumbtack reveals how migrating iOS apps to frameworks nearly derailed their Swift adoption—until they discovered a clever workaround for binary dependencies.
Dynamic App Content: An Introduction to Truly Native Apps
Zalando faced an impossible triangle: daily content updates, premium native UX, and distributed teams without native experience. Their solution? Server-driven UI before it was cool.
The Mobile Device Lab at the Prineville Data Center
Facebook built a 2,000-device testing lab inside a data center. The journey from tangled cables to custom EMI racks is a masterclass in scaling mobile performance testing.
Proper Use of CellForRowAtIndexPath and WillDisplayCell
Zalando's iOS team challenges a widely-cited performance myth about UITableView that's been misleading developers for years.
Getting to Slack Faster with Incremental Boot
Slack was making 4.2 million users wait through loading screens every single day. Time to fix that.
Supporting The Transition To IPv6-Only Networking Services For iOS
Dragos Bogdan from Cloudflare tackles Apple's 2016 bombshell: all iOS apps must support IPv6-only networking. Here's why most developers were caught off guard by a protocol that's been around since 1998.
Automatic memory leak detection on iOS
Meta tackled one of iOS development's most painful problems: memory leaks that crash apps and kill performance. They automated the entire detection process.
React Native: A Year in Review
Martin Konicek reveals how a 2013 hackathon project became a framework that changed mobile development forever. One year after open-sourcing, React Native hit 30,000 GitHub stars and attracted 650+ contributors...
React Native: A Year in Review
One year after open sourcing React Native, Facebook dropped a bombshell at F8: Microsoft and Samsung are bringing the framework to Windows, Xbox, and SmartTVs. The mobile-first framework just became platform-ag...
3x3: iOS Build Speed and Stability
LinkedIn's iOS team set an audacious goal: ship to production three times daily, with just three hours from commit to release. Here's how they actually pulled it off.
Dive Into React Native Performance
The React Native team made their app startup twice as fast. Here's how they tackled one of mobile's most critical performance challenges.
Introducing Hot Reloading
React Native just solved one of mobile development's most frustrating problems: losing your app state every time you make a code change. Their new Hot Reloading feature keeps your app running while injecting up...
Failing Fast with Reliable and Actionable System-Level Tests
Skyscanner's test suite had a 99% pass rate. Sounds great, right? Wrong. Those false failures were costing hours of productivity and masking real production issues.
Solving the Problem of One Billion Computations
Skyscanner needed to store 1.6 billion weights to rank hotel prices. Their in-memory approach couldn't scale, so they turned to AWS.
Transitioning From Objective C to Swift in 4 Steps
Gergely Orosz from Skyscanner reveals how his team went from 0% to 100% Swift adoption in just 8 months—without rewriting a single line of working Objective-C code. Here's their battle-tested playbook.
3x3: Speeding Up Mobile Releases
LinkedIn went from monthly releases to shipping mobile code 3x per day. Here's how they automated their way out of a month-long release cycle.
Mobile A/B Testing at Quora
Tommy MacWilliam from Quora reveals how they A/B test mobile UX without waiting weeks for App Store approval. The secret? A hybrid architecture that lets them iterate at web speed.
Making React Native Apps Accessible
Facebook's Ads Manager app demonstrates how React Native's Accessibility API makes mobile apps usable for everyone, including people with vision loss. Here's how they built it.
Optimizing Facebook for iOS start time
Meta's iOS team achieved multi-second improvements in Facebook app startup by rethinking when work actually needs to happen.
Functional Reactive Programming On Mobile: A Rosetta Stone
Nick Tinsley from Squarespace shows how the same reactive programming patterns work across iOS, Android, and React Native. Think Excel formulas, but for your entire mobile app.
Reducing FOOMs in the Facebook iOS app
Meta's iOS team faced a silent killer: crashes that left no trace, no stack trace, no clue. Just frustrated users and a mystery to solve.
Discover Pinterest Mobile Engineering and Design
Pinterest engineers rebuilt their mobile onboarding experience and saw engagement metrics jump across the board. With 80% of users on mobile, they had to get this right.
Swift Guild
Taylor Ledingham from Hootsuite reveals how their iOS team mastered Swift in just 90 minutes per week. When Apple dropped a completely new language in 2014, most developers panicked—but Hootsuite's Guild system...
Mobile Performance: Tooling Infrastructure at Facebook
Facebook processes thousands of mobile code changes weekly. How do they catch performance regressions before users feel the pain?
React Native: Bringing Modern Web Techniques to Mobile
Facebook reveals why React Native emerged from a simple realization: the principles that made React successful on web could transform mobile development. This 2015 post captures the pivotal moment when declarat...
Crittercism: Solving Mobile Performance Issues for One Billion Users | AWS Startups Blog
Crittercism handles more traffic than Google Search (50K vs 40K requests/second) with just 3 DevOps engineers. How do they pull this off?
High Performance WebViews
John Bito from Zillow reveals how they cut home listing load times in half while making it easier to ship features across iOS, Android, and web. The secret? Rethinking how WebViews work in native apps.
Real World Swift
Duolingo shipped their first Swift app in 2015 and achieved a 0.2% crash rate. Here's what they learned building a high-stakes testing app where crashes cost users real money.
Swift Method Dispatching Mechanisms
Ever wonder why Swift is faster than Objective-C? The answer lies in how it dispatches method calls, and the difference is more dramatic than you might think.
Building Carousel Part III: Drawing Images on Screen
Tina Wen from Dropbox tackles a deceptively hard problem: how do you render tens of thousands of photos at 60fps without turning your app into a slideshow of gray squares?
The Tech Behind Dropbox's New User Experience on Mobile - Part 2
Viraj Mody from Dropbox reveals how they built a mobile-to-desktop onboarding flow so seamless that users in testing didn't even notice the magic happening. Zero password typing required.
Building Dropbox's New User Experience for Mobile Part 1
Kat from Dropbox discovered that slowing down their signup flow actually increased conversions. Counter-intuitive? Here's why it worked.
Building Carousel Part II: Speeding Up the Data Model
Dropbox engineers faced a brutal reality: reading 5,000 photos from SQLite took a full second on a Nexus 5. For users with 100,000+ photos, the standard approach would be unusable.
Building Carousel Part I: How We Made Our Networked Mobile App Feel Fast and Local
Dropbox's Carousel team faced a brutal truth: their photo app was slower than local galleries, and users noticed. No one wants to wait for network requests just to delete a photo.
Garbage Collection Optimization: High Throughput and Low Latency Java Applications
LinkedIn Engineering cut their tail latency by 75% through systematic garbage collection tuning. Here's their playbook for high-performance Java apps.
CocoaPods Sponsorship and iOS Dependency Management
Erik Michaels-Ober from SoundCloud announced something that would shape iOS development for years: corporate sponsorship of open source dependency management. Back in 2014, this was a novel approach to sustaini...
Mobile A/B Testing at LinkedIn: How Members Shape Our Apps
LinkedIn ships a single mobile binary but runs dozens of A/B tests simultaneously. Here's how they pulled it off without constant app releases.
CocoaSPDY: SPDY For iOS and OS X
Twitter just made mobile apps 30% faster with a single line of code. Here's how they did it and why they're giving it away for free.
Service Update Major Video System Update and Prague is Online
Twitch rebuilt their entire video infrastructure while serving millions of concurrent viewers. Here's how they pulled off a zero-downtime migration.
Shaving off 50% Waiting Time from the iOS Edit-Build-Test Cycle
The article content couldn't be loaded (404 error), so I'm unable to provide an accurate summary of Spotify's iOS build optimization work.
Improving Etsy for iOS with server-based logging
Etsy's iOS team faced a dilemma: their safety net for preventing crashes was quietly hiding logic bugs across the entire codebase.
Etsy's Device Lab
When mobile traffic jumped from 25% to 40% in six months, Etsy knew they had a problem. Their engineers were testing on personal iPhones while users browsed on dozens of different devices.
Login Verification On Twitter For iPhone And Android
Twitter built a 2FA system where your private keys never leave your phone and the server stores no persistent secrets. Here's the engineering behind it:
Mobile App Development: Catching Crashers
Twitter's iOS team shipped beta builds to employees and discovered crashes that would never show up in testing. The culprit? Jailbroken devices and unprefixed Objective-C categories.
Introducing the Dropbox Sync API for Mobile Developers
Brian Smith from Dropbox introduced an API in 2013 that promised to make cloud sync feel like working with local files. Developers loved it, but there's a twist.
Introducing the Super Debugger: Wireless Real-Time Debugging for iOS
Jason Brennan from Shopify just open-sourced a debugger that lets you tweak iOS UI properties and watch them update in real-time on your device. No recompiling, no breakpoints, just instant visual feedback.
Right To Left Support For Twitter Mobile
Christine Tieu from Twitter's Mobile Web Team reveals how they flipped their entire mobile UI for Arabic and Farsi without drowning in duplicate CSS rules.
Keeping Instagram Up with Over a Million New Users in Twelve Hours
Instagram's Android launch brought 1 million new users in 12 hours. Here's how their infrastructure team kept the lights on during hypergrowth.
Blazing Fast Node.js: 10 Performance Tips for LinkedIn Mobile
LinkedIn Engineering discovered that one synchronous file write operation tanked their Node.js throughput from thousands of requests per second to just dozens.
Mobile Proxy Architecture at SoundCloud
SoundCloud's mobile team hit a wall: their API-first approach broke down when browsers couldn't handle CORS redirects properly. Their solution? A proxy architecture that evolved from nginx to Node.js.
iOS App Sharing Implementation
Gernot Poetsch breaks down how iOS apps can leverage SoundCloud's connection API to share content across social networks without managing tokens yourself. This 2011 guide still offers valuable lessons on delega...