iOS
Articles on iOS performance, Swift optimization, Xcode tooling, and building fast Apple platform apps.
Recent Releases
All releases →Articles about iOS (567)
Do you need an MCP to build your native app?
Sentry Engineering ran 1,350 trials across three LLMs to evaluate whether MCP servers are necessary for AI-driven iOS development, finding that while all approaches hit 99%+ success, a simple AGENTS.md file is ...
React Native Version 0.84 Release
Release notes and improvements for React Native version 0.84.
Building Type-Safe Metrics API in Swift Part II
Continuation of building a type-safe metrics API in Swift for iOS performance monitoring and measurement.
Building Type-Safe Metrics API in Swift Part I
Demonstrates building a type-safe metrics API in Swift for iOS performance monitoring and measurement.
How We Release the Spotify App: A Look Under the Hood (Part 2)
Deeper dive into Spotify's mobile release tooling/process to catch issues before rollout; focuses on reliability & safe deploys at scale. Covers the Release Manager Dashboard (a Backstage plugin), backend optim...
Common Mistakes When Shifting Left in Mobile Testing
Explores the most common pitfalls mobile teams encounter when implementing shift-left testing, from over-relying on UI tests to ignoring mobile-specific risks like process death and flaky networks. Argues that ...
What's New in Swift: January 2026 Edition
The January 2026 Swift community digest opens with a guest contribution from Studioworks, sharing their success using Swift for web application development with Hummingbird and Elementary. The post also covers ...
Optimizing GRDB in Todoist for iOS
The hidden cost of LEFT JOINs in GRDB..Deep-dive into fixing iOS sluggishness.
Compose Multiplatform 1.10.0
Release announcement for Compose Multiplatform 1.10.0 with UI framework improvements for mobile and multiplatform development.
The Journey to Compose Hot Reload 1.0.0
Feature release for Compose Hot Reload, improving developer productivity and iteration speed in mobile development.
Swizzling SwiftUI View Body
Explores advanced SwiftUI techniques using method swizzling for performance monitoring and optimization.
Project Butter: A Journey for App Performance Improvement
A comprehensive guide to improving App Performance for Mobile Apps
Unlock Native Power in Flutter Part 2
Platform Views + performance considerations (hybrid composition, frame lag) + testing guidance.
Unlock Native Power in Flutter Part 1
Flutter ↔ native integration via channels; includes performance-related motivation (heavy computations, etc.).
Demystifying user journeys: Revolutionizing troubleshooting with auto tracking
How Grab's AutoTrack SDK is used to revolutionize session tracking and troubleshooting by providing complete user journey data.
What's New in Swift: December 2025 Edition
The December 2025 Swift digest reflects on a landmark year for the open-source Swift project, highlighting milestones including the Swift 6.2 release with WebAssembly support and approachable concurrency, rapid...
How Mobile Development Teams Use Kotlin in 2025
Survey and best practices on how mobile development teams leverage Kotlin for Android and multiplatform development.
Kotlin 2.3.0 Released
Release notes for Kotlin 2.3.0 with improvements relevant to mobile development and performance optimizations.
Preventing Performance Regressions on iOS Apps
JioHotstar's iOS team shares their journey automating performance regression testing, exploring xctrace-based E2E profiling and XCTMetric performance tests for detecting hitches and memory leaks. They built a c...
Exploring KotlinX Benchmark Results with Kotlin Notebooks
Guide on using Kotlin Notebooks to analyze performance benchmarks, relevant to mobile app performance measurement.
React Native Version 0.83 Release
Release notes and improvements for React Native version 0.83.
The Ultimate Kotlin Multiplatform Watchlist
Guide to essential tools, libraries, and resources for Kotlin Multiplatform mobile development.
Orchestrating our UI test suite with Maestro
Doist explains how they replaced fragile Espresso idling-resource tests with Maestro’s UI testing framework to build a more reliable, maintainable, and scalable mobile UI test suite across their apps.
Enhancing HDR on Instagram for iOS With Dolby Vision
Instagram engineering details how they preserved Dolby Vision and ambient viewing metadata end-to-end for HDR video on iOS, significantly enhancing the viewing experience.
Enhancing HDR on Instagram for iOS with Dolby Vision
Technical implementation of HDR and Dolby Vision support for Instagram's iOS app to improve image rendering quality.
Embedded Swift Improvements Coming in Swift 6.3
This post details the significant improvements coming to Embedded Swift in the Swift 6.3 release, including new floating-point description APIs, the EmbeddedRestrictions diagnostic group, and the Swift MMIO 0.1...
What's New in Flutter 3.38
Release notes covering new features and performance improvements in Flutter 3.38.
Reverse Engineering iOS to Fix SDK Crashes
Describes reverse engineering techniques used to identify and fix crashes in iOS SDKs.
Grab’s Mac Cloud Exit supercharges macOS CI/CD
Grab moved macOS CI/CD close to its Git servers, improving iOS build & pipeline times ~20–45% and saving ~$2.4M over 3 years, with stability maintained. (Grab Tech)
Scaling Mobile UI Testing with AI
In 2025, AI became our star driver. After years of building the infrastructure — Mercury for test and release management, Helios for VM orchestration
What's New in Swift October 2025
Covers new features and improvements in Swift language that impact mobile and server development.
I Tried to Reduce My App Size by 50%. Here's What Actually Worked
A practical guide to reducing iOS app binary size from 260 MB to ~125 MB. Covers identifying framework bloat, stripping simulator architectures, leveraging App Thinning and On-Demand Resources, replacing PNGs w...
Evolving Mercari's iOS codebase into a multi-product monorepo
A deep dive into how Mercari optimized its iOS monorepo for performance and scalability, ensuring fast launch times even with a large codebase.
Delivering Mobile App Updates Faster
Details strategies and techniques for accelerating mobile app update delivery and deployment.
Advanced NavigationStack Patterns in SwiftUI
A comprehensive guide to the coordinator pattern for SwiftUI navigation using NavigationStack. Covers type-safe routes with enums, deep linking, onboarding flows, and auth state management with practical code e...
Kotlin Multiplatform Contest 2026
Competition and showcase for Kotlin Multiplatform mobile development projects and best practices.
React Native Version 0.82 Release
Release notes and improvements for React Native version 0.82.
Introducing Swift Profile Recorder: Identifying Performance Bottlenecks in Production
Apple open-sources Swift Profile Recorder, an in-process sampling profiler for Swift services that requires no special OS privileges or system dependencies. The tool has been used internally at Apple at scale f...
Accelerating Mobile App Development at Zalando with Rendering Engine and React Native
Brownfield React Native integration via “React Native as a package”
Cross-Platform TV Apps with React Native for tvOS, Android TV, and Tizen
Covers development best practices for building TV applications across multiple platforms using React Native.
How Uber Standardized Mobile Analytics for Cross-Platform Insights
Standardizing mobile analytics to gain consistent, cross-platform insights at Uber scale.
Compose Multiplatform 1.9.0 - Compose for Web Beta
Release announcement for Compose Multiplatform 1.9.0 with new web support, relevant to mobile and multiplatform development practices.
Swift 6.2 Released
Announces new Swift language version with improvements relevant to mobile and server development.
Understanding and Improving SwiftUI Performance
Airbnb's analysis of SwiftUI performance bottlenecks and optimization techniques for iOS app development.
React Native Version 0.81 Release
Release notes and improvements for React Native version 0.81.
Thumbtack's Journey to Swift 6
Describes the migration process and benefits of upgrading to Swift 6 for iOS development.
The evolution of native engineering at Tripadvisor: Part 2
In the first post in this series Benoit Sarrazin discussed the adoption of The Composable Architecture in our iOS app. He covered the reasons for this change, the benefits it brought, and the challenges we face...
Our Buildkite Brings All the Devs to the Yard: (Re)Building Reddit Mobile CI in 2025
Reddit Mobile CI overhaul: up to 50% faster build times, improved stability and developer sentiment; details on infra choices and trade-offs. (Reddit)
Measuring App Performance with MetricKit
Article about proper app performance measurement techniques using MetricKit framework.
Building Reusable Custom Views with SwiftUI
Discusses best practices for creating customizable and reusable UI components in SwiftUI.
Accelerating on-device ML on Meta’s apps with ExecuTorch
WhatsApp/Messenger moved key models on-device; reduced model load & inference time and improved ANR metrics. (Engineering at Meta)
Debugging OOMs: SQLite Query Optimization
Addresses out-of-memory crashes caused by inefficient SQLite queries in mobile applications.
How we used Macros to Promote MVVM architecture adoption
Over the past few years, our team of iOS engineers has grown significantly (and continues to grow!), as has the size of the codebase.
Understanding and Improving SwiftUI Performance
New techniques we’re using at Airbnb to improve and maintain performance of SwiftUI features at scale
Swift at Apple: Migrating Password Monitoring Service from Java
Details a production migration to Swift demonstrating best practices for performance-critical services.
How We Decomposed Tinder's Monolith
Case study on refactoring a monolithic mobile application into modular architecture.
The evolution of native engineering at Tripadvisor: Part 1
In the ever-evolving landscape of iOS development, architectural decisions can make or break a team’s productivity and code quality. For our large team of iOS developers working on a Server Driven UI (SDUI) pla...
Memory Safety, Ecosystem Talks, and Java Interoperability at FOSDEM 2025
A recap of the Swift community's presence at FOSDEM 2025, featuring a main-track talk by Doug Gregor on incremental memory safety in Swift and Swift's first-ever dedicated DevRoom with 12 talks covering Linux, ...
A Behind-the-Scenes Look at How We Release the Spotify App (Part 1)
Overview of Spotify's weekly mobile app release process for 675M+ users. Details the Release team's dual mission of coordinating releases and building supporting tools. Follows version 8.9.2 through the full cy...
Swift 6.1 Released
Swift 6.1 is now available, bringing extended nonisolated support for types and extensions, improved task group type inference, and a new @implementation attribute for bridging Objective-C declarations. The rel...
Using Remote Config with Property Wrappers in Swift
Explores implementing remote configuration management in iOS apps using Swift property wrappers for dynamic feature control.
Can we talk about the current state of Xcode?
Even the codeium integration on jetbrains is substantially less clunky than xcode’s codeium integration.
How server-driven UI is revolutionizing mobile app experiences
At Careem, agility and adaptability are key to delivering highly personalized and seamless user experiences as we need to move fast to react to customer behaviour during different times of the year, such as Ram...
How 40 Lines of Code Sped Up iOS End to End Tests by over 50%
At Wealthfront, testing is one of our core engineering principles—in the form of unit and end-to-end testing on all platforms. The iOS team in particular manages its own CI infrastructure to run tests against a...
Skyscanner’s journey to effective observability
The year was 2020 and Skyscanner, like the entire travel industry, faced unprecedented challenges due to the global COVID-19 pandemic. Yet, this difficult year also provided an opportunity for introspection
Revamping PickMe iOS App: From Objective-C to SwiftUI
A few months ago, we embarked on one of the most significant transformations in PickMe's iOS app history. What started with just one developer
Exposing SwiftUI Views to React Native: An Integration Guide
Provides guidance on integrating native SwiftUI components into React Native applications for iOS.
How the Tinder iOS App reduced the size of our localizations by 95% using Emerge
The Tinder iOS application is used in over 190 countries around the world. In order to operate in each of these countries, we need to provide a localized experience.
Mobile Payments SDK General Availability and Terminal API Features
Announcement of Square's Mobile Payments SDK reaching general availability with new features.
Profiling Native Code in React Native with Tracy
Techniques for profiling and analyzing native code performance in React Native using Tracy profiler.
The Quest to Understand Metric Movements
Suppose you just saw an interesting rise or drop in one of your key metrics. Why did that happen? It’s an easy question to ask, but much harder to answer.
How we reduced manual regression tests by 70% using AI tools
AI tools offer a solution to difficult-to-automate regression testing woes.
The Next Chapter in Swift Build Technologies
Discusses advancements in Swift build systems that impact mobile app compilation and performance.
Building 3D Animations in Mobile Apps
Best practices and techniques for implementing performant 3D animations across mobile platforms.
React Native Version 0.77 Release
Release notes and improvements for React Native version 0.77.
Is Swift dramatically better than React Native?
I’m the main coder for a massive data project. It’s a 2+ million book archive with AI search and social interaction. We have been building the desktop version for 1+ year
Leading a project to migrate hundreds of screens to SwiftUI/Jetpack Compose from UIKit/AndroidView in Merpay
Merpay swaps old UI for SwiftUI and Jetpack Compose across screens.
How we think about Threads’ iOS performance
Meta fine-tunes Threads on iOS to keep it fast and frustration-free.
How we sped up Android and iOS builds by 68% on CI
We made our engineers happier by cutting build times down from 50 minutes to 16.
Boosting App Performance: Strategies to Optimize Network Requests
Coinbase fine-tunes network calls to make their app feel snappier for users.
Learnings About Swift Testing
Mercari shares what they learned adopting Swift Testing for iOS.
Integrating Extensions into Large-Scale iOS apps
Today, when you open Apple Maps and choose a destination, you are able to see a list of available Lyft offers, seamlessly routing you to the Lyft app to book your next ride.
Upgrading React Native in Brownfield Applications
Best practices and strategies for upgrading React Native versions in existing production applications.
Measuring Product Impact Without A/B Testing: How Discord Used the Synthetic Control Method for Voice Messages
Discord used synthetic control to measure voice message impact cleanly.
Integrating React Native into Existing Applications
Strategies and best practices for adding React Native to brownfield mobile applications.
How We Reduced GrabX SDK Initialisation Time
Grab speeds up their GrabX SDK startup to get users rolling quicker.
iOS 18: Apple's Translation API
Covers implementation and usage of Apple's new translation API in iOS 18 applications.
Brownfield Development with React Native
Covers best practices and strategies for integrating React Native into existing native mobile applications.
How server-driven UI keeps our shop fresh
A single backend response can do a lot more than you think.
Enabling Out Of The Box Performance Insights In The Unity SDK
Describes implementation of built-in performance monitoring and insights for Unity mobile development.
How we reduced peak memory and CPU usage of the product configuration management SDK
Our GrabX clients noticed that the GrabX SDK tended to require high memory and CPU usage. From this, we saw opportunities for further improvements that could:
Enhance App Performance and Business with Real User Monitoring (RUM)
Explains how to implement real user monitoring to track and improve mobile app performance metrics in production.
SwiftUI or UIKit in 2024 & 2025?
I have been searching the web to find the answer to this, but it seems that people are split down the middle in this topic. On one hand, UIKit is best for trying to get a job in iOS development since its mainly...
Precision in Motion: Deep Learning for Smarter ETA Predictions
DoorDash uses deep learning to nail ETA predictions with precision.
Mobile App Launch Profiling
Covers profiling techniques and tools for analyzing and optimizing mobile app startup performance.
Announcing Swift 6
Introduces major Swift language version with improvements to concurrency and performance for mobile development.
Tophat: Crafting a Delightful Mobile Developer Experience
Shopify’s Tophat app offers one-click testing, making dev life way sweeter.
Best Practices for NotificationCenter Usage in Swift
Covers efficient patterns and best practices for using NotificationCenter in iOS applications.
Building VoiceOver-Friendly iOS Applications
Guide to implementing VoiceOver accessibility features in iOS apps.
Integrating SwiftUI and UIKit Navigation: A Step-by-Step Guide
Provides practical guidance on seamlessly combining SwiftUI and UIKit navigation patterns in iOS apps.
How the Medium iOS team works effectively with legacy code
This story is not about pretty code, it is even less about pretty design.
Eliminating Pbxproj Conflicts with XcodeGen for iOS Project Management
Demonstrates how XcodeGen simplifies iOS project configuration and eliminates merge conflicts in project files.
Creating Custom UIButton Animations in Swift
Guide to implementing custom animations for UIButton components in iOS applications.
App Health Through Metric-Aware Rollouts
DoorDash rolls out updates with an eye on metrics to keep their app healthy.
Unfold's Modern Mobile Release Process And The Subtle Art Of Making Them Boring
Details best practices for streamlining and automating mobile app release processes.
Swift Actor in Unit Tests
Explores using Swift actors for thread-safe testing patterns in iOS applications.
Custom Navigational Transitions in iOS
Zalando crafts custom iOS navigation moves for a smoother app feel.
Ready for Swift 6
Provides guidance on adopting Swift 6 features and best practices for mobile development.
Challenges of mixed SwiftUI and UIKit codebases in iOS Apps
Imagine you are a software engineer, or you really are. You create iOS apps on a daily basis. You use only the latest and finest trends in mobile development, such as SPM, Swift Data, and, of course
Good Practices When Creating E2E Tests at Skeelo
Skeelo shares their best tips for solid end-to-end app testing.
How We Optimized Concurrency Using Node.js at Skeelo
Skeelo tunes Node.js concurrency to keep their app humming along.
What's New in the Mobile Payments SDK Beta
Q&A covering new features and improvements in Square's Mobile Payments SDK beta release.
How GitHub reduced testing time for iOS apps with new runner features
GitHub cut iOS testing time with new runner features that deliver.
Transitioning to Appcraft: Evolution of Zalando’s Server-Driven UI Framework
Zalando evolves their server-driven UI framework for scale and speed.
The Fundamentals of iOS Development at Revolut
Covers core iOS development practices and architectural principles used at Revolut.
Animations: Bringing the Host Passport to Life on iOS
Airbnb's technical deep-dive into implementing performant animations and transitions in their iOS Host Passport feature.
Reducing the Size of Cash App for iOS
Cash App strives to be an excellent platform citizen everywhere our app is available, and a key part of that is respectfully using our customer’s bandwidth and device storage.
DragonCrawl: Generative AI for High-Quality Mobile Testing
Uber’s AI-powered DragonCrawl makes mobile testing sharper and more efficient.
iOS Performance Monitoring with Datadog
Details how Datadog brought data visualization capabilities to iOS performance monitoring and analysis.
How to do pagination in SwiftUI
An example of how we do it in the Medium iOS Application
Get Started with Embedded Swift on ARM and RISC-V Microcontrollers
Apple introduces a new open-source repository of Embedded Swift example projects targeting ARM and RISC-V microcontrollers, including STM32 boards, Raspberry Pi Pico, Nordic Semiconductor boards, and ESP32. The...
Crafting Seamless Journeys with Live Activities - Lyft
Our primary focus will be on the client-side aspects, with a brief overview of the server functionalities. To maintain brevity, we’ll refrain from providing an exhaustive description of the inner workings.
Swift Performance Benchmarks
Discusses performance benchmarking methodologies and results for Swift language implementations.
Performance Measurement for Native Apps
Covers methodologies and tools for measuring and monitoring performance metrics in native mobile applications.
Pack Iteration Performance in Swift
Explores optimization techniques for iteration patterns in Swift, relevant to code performance.
How dogfooding helps us build a better Duolingo
“Dogfooding” is one of the most important tools we have for improving the app.
Mastering Page Load Time: iOS App Optimization Strategies
Provides essential strategies for optimizing page load time and overall performance in iOS applications.
Pareto Principle in Action: Boosting Performance with Smart Caching
Caching — the superhero of speedy apps. It’s the secret sauce that saves us from constant database calls, making our applications
React Native Support for Apple Vision Pro Development
Announces React Native capabilities for developing applications on Apple Vision Pro platform.
How We Improved Performance Score Accuracy
Details improvements to performance measurement and scoring accuracy in monitoring systems.
Scalable CI/CD Pipelines for iOS
Best practices for building scalable continuous integration and deployment systems for iOS.
Optimising the Swiggy Restaurant App
Swiggy tunes their restaurant app to perform better for partners.
Evolution of Bid Notifications to Courier
Evolution of Bid Notifications to Courier Pushing the limits with Courier and improving reliability with great numbers. 🚀 Introduction I remember the good old days when we relied on a vendor to …
Reddit Recap: State of Mobile Platforms Edition (2023)
Reddit looks back at untangling old code and going native with their apps.
Performance monitoring in Mercari mobile apps
Mercari tracks mobile app performance live to stay quick and steady.
Embracing SwiftUI: PhonePe's Journey Building ONDC-Powered Pincode
Implementation experience adopting SwiftUI for building a modern iOS feature.
How DoorDash Manages Mobile Releases
DoorDash’s iOS team handles big releases with calm and precision.
How DoorDash Manages Mobile Releases
DoorDash's approach to managing and coordinating mobile app releases across platforms.
Distributed Job Scheduler: Zero to 20k Concurrent Jobs
Glance scales their job scheduler to handle 20k tasks without a hitch.
Optimizing UITableView Scrolling Performance with Prefetching
Guide to implementing UITableView prefetching techniques to achieve smoother scrolling performance in iOS apps.
Building Your Next Casual Game With Flutter
Guide to developing casual games using Flutter framework with performance considerations for mobile platforms.
Optimising Scrolling Performance with Litho
Swiggy uses Litho to make scrolling smooth and fast in their apps.
SwiftUI In Action: Prototyping An Interactive 3D Carousel Experience
Demonstrates building interactive UI components with SwiftUI for iOS applications.
Swift 5.9 Backtraces and Debugging
Introduces improved backtrace functionality in Swift 5.9 for better debugging and crash analysis.
Leveraging Flink to Detect User Sessions and Engage DoorDash Consumers with Real-Time Notifications
DoorDash uses Flink to spot user sessions and send timely notifications.
Backend-Driven UI Architecture for Native iOS Apps
Architectural approach for implementing backend-driven UI in native iOS applications.
Real-Time Analytics for Mobile App Crashes using Apache Pinot
Uber’s Healthline tool watches crashes in real time across their mobile apps, keeping things under control.
The What, Why, and How of Mastering App Size
Comprehensive guide to understanding, measuring, and reducing mobile application size.
Revamping Dasher FAQ Hub Through Server-Driven Content and WebView
DoorDash built a WebView-based FAQ hub for their Dasher app, using server-driven UI content and a promise-based communication protocol between native iOS/Android apps and web. This approach enables rapid conten...
GoTransit: Unifying Our Mobility Products with Public Transportation
GoTransit: Unifying Our Mobility Products With Public Transportation Here’s how we integrated our offerings with public transportation to make multi-modal trips effortless. As Southeast Asia’s …
Scaling Glance Game Centre to Support 100 Million Daily Active Users
Glance scales their Game Centre to handle 100 million daily players.
Media on Swiggy's Mobile Apps
Swiggy handles media in their apps with finesse and speed.
From 30 Minutes Down to 10: Taming our Monolith's CI Build Times
When Cash App was originally developed we had a single service powering all backend functionality, codenamed “Franklin”.
Making Direct Messages Reliable and Fast
Instagram tunes DMs to be quick and trustworthy for every user.
GraphQL Integration with AWS Amplify in Swift for iOS
Step-by-step guide for iOS developers on implementing GraphQL with AWS Amplify in Swift applications.
What's New in Swift 5.9 Debugging
Details new debugging features and improvements in Swift 5.9 for mobile and desktop development.
Unlocking SwiftUI at Airbnb
How Airbnb adopted SwiftUI in our iOS app
Effortless iOS Snapshot Testing Using Emerge Tools
Senior iOS Engineer Justin Shapiro explains the importance of snapshot testing in Handshake’s iOS testing methodology, and outlines the migration to a snapshot testing capability from Emerge Tools.
Making Swiggy's Order Tracking a Magical Experience
Swiggy turns order tracking into a delightful, magical experience.
Inside Slack: Overcoming Challenges to Craft a Seamless Mobile App
Slack tackles mobile hurdles to deliver an app that just works.
Why Mobile Application Performance Testing Is Key to App Success
Amazon shows why testing app speed is make-or-break for success.
Native End-to-End Testing for Mobile Apps
Learnings and best practices for implementing native E2E testing in mobile applications.
GraphQL on iOS: How We Decided Against Apollo & Where We Went Next
Principal iOS engineer Joel Kin shares more about Handshake's choice in our API development using GraphQL on iOS and how it best serves our users.
Transitioning to SwiftUI
Documents Thumbtack's migration strategy and best practices for adopting SwiftUI framework.
Making Swiggy Buttery Smooth
Swiggy kills lag to make their app feel buttery smooth all over.
Improving iOS CI/CD Performance: Migrating from Azure to Codemagic
Case study on achieving 76-85% improvement in iOS CI/CD pipeline performance by switching from Azure to Codemagic.
Enhancing App Performance: A Practical Approach at Glance
Glance shares hands-on tricks they used to make their app faster.
Bringing HDR video to Reels
Meta adds HDR video to Reels for sharper, richer playback vibes.
Migrating to Apollo 1.0 for iOS
Documents the migration process and benefits of upgrading to Apollo GraphQL client for iOS.
Preventing App Performance Degradation Due to Sudden Ride Demand Spikes
Grab keeps their app steady when ride demand spikes out of nowhere.
Leveraging Alamofire Interceptors in iOS: A Real-World Case Study
Demonstrates practical use cases and benefits of Alamofire interceptors for network request handling in iOS.
Optimising Page Load Times in Flipkart Mobile App
Flipkart cuts mobile page load times with caching and lazy tricks.
Page not found - Engineering at Meta
Meta rolls out key transparency to lock down WhatsApp’s security.
Flow testing with Turbine
Say hello to Turbine 1.0, our library for testing kotlinx.coroutines Flow and more.
Improving Video Cache Hits on Swiggy Apps
Swiggy tunes video caching for smoother playback in their apps.
Distributed Load Testing Using Locust
Glance tests their app’s limits with Locust for rock-solid reliability.
Determining Exact Photo Storage Size in Swift
Explains how to accurately calculate and retrieve photo storage sizes in iOS applications.
On-Demand Resources for Lottie Animation Storage in Swift
Discusses optimizing Lottie animation storage and delivery using on-demand resources in iOS apps.
Advanced Lottie Animation Memory Management in iOS
Covers memory optimization techniques for handling Lottie animations in iOS applications.
Instant Feedback in iOS Engineering Workflows
Instagram gives iOS devs instant feedback to speed up their work.
How DoorDash uses XcodeGen to eliminate project merge conflicts
DoorDash adopted XcodeGen to manage their Xcode project configuration in human-readable YAML files, eliminating pbxproj merge conflicts that plagued their 100+ engineer iOS team. The tool reduced merge conflict...
Network Latency Issues in Mobile Apps
Explores network latency problems and their impact on mobile application performance.
Achieving Higher Test Coverage: Our Approach to UI Testing on iOS
leboncoin shares their methodology and best practices for improving UI test coverage on iOS applications.
How We Improved Testing Processes Using Ephemeral Environment
Swiggy tests faster with temporary setups that mimic real use.
How Server Driven UI is Helping Frontend Engineers Scale Impact
Robinhood’s server-driven UI lets frontend devs make big changes, fast.
Flexible Continuous Integration for iOS
Airbnb migrated their iOS CI from physical Macs to AWS EC2 Mac instances, using Packer for AMI creation and Terraform for infrastructure-as-code. The new system enables daily instance rotation, flexible Xcode v...
Measuring Performance for iOS Apps | App Startup
See how Uber tracks iOS app startup times, tackling cold starts and iOS 15’s pre-warming quirks with grit and clever fixes.
Why xHE-AAC is being embraced at Meta
Meta adopts xHE-AAC to pump up audio quality across their apps.
Load Testing for 2022 Spotify Wrapped
Each year, when Wrapped goes live, the Spotify team is faced with a “thundering herd problem”. Millions of people, all over the world and across all time zones, start watching their data stories on-platform
Lens Performance Toolkit
Snapchat’s toolkit tunes Lens performance to keep their app snappy.
Mobile Monitor
Snapchat’s Mobile Monitor tracks app health live for quick fixes.
Mobile Lens Profiler: Case Study
Snapchat profiles Lens performance in a real-world case study.
Performance Optimization Guide
Snapchat’s guide lays out their best tips for mobile app speed.
The Journey to Server Driven UI At Lyft Bikes and Scooters
Across the past couple of years, different mobile app teams across Lyft have been moving to Server Driven UI (SDUI) for three main reasons: To deal with business complexity
App Modularization and Module Lazy Loading at Instagram and Beyond
Instagram splits their app and loads it lazily for better performance.
Building a Modern iOS Networking Library with Swift Concurrency
Engineering guide to creating a robust networking library for iOS using Swift's concurrency features.
Building a Multi-Pipeline CI Setup for Running Automated Tests in GitLab
Building a multi-pipeline CI setup for running automated tests in GitLab Here’s a detailed view into setting up this process up for combining the development and the testing …
Handling Multiple Caches in App
Swiggy juggles multiple caches to keep their app performing well.
The evolution of Facebook’s iOS app architecture
Meta tells the 10-year tale of how their iOS app grew and changed.
How We Reduced Our iOS App Launch Time by 60%
DoorDash reduced their iOS app launch time by 60% through three optimizations: replacing String(describing:) with ObjectIdentifier for type identification (22% gain), eliminating unnecessary AnyHashable convers...
How We Reduced Our iOS App Launch Time by 60%
DoorDash slashed iOS startup time by 60% with some smart moves.
Migrating to Swift Package Manager
Best practices and strategies for migrating iOS projects to Swift Package Manager.
Striving for iOS App Performance
Strava keeps their iOS app quick and responsive for active users.
How to Speed Up SwiftUI Development and Testing Using PreviewSnapshots
DoorDash open-sourced PreviewSnapshots, a tool that eliminates code duplication between Xcode Previews and SnapshotTesting by allowing developers to define view configurations once and reuse them for both previ...
Video Stories and Caching Mechanism (iOS)
Swiggy caches video stories on iOS for fast, seamless playback.
Why are app sizes so big now?
Since this subreddit does not allow image galleries, the app sizes from the App Store are typed below. Links go to App Store. There's more than just this list.
Lottie vs Rive: Optimizing Mobile App Animation
Compares animation libraries and their performance implications for mobile app rendering and UI performance.
Build an end to end JSON logging system for clients apps
Pinterest built an end-to-end JSON logging system for their mobile apps that replaces scattered print statements with structured, queryable logs. The system uses JSON format for consistency across iOS and Andro...
GoTransit: Unifying Our Mobility Products with Public Transportation
Gojek ties their services to public transit, making trips seamless for everyone.
How to Stop Worrying About Image Freshness and Reduce the Image Network Traffic
DeliveryHero caches images smartly to cut down on network clutter.
Optimizing Testing for Server-Driven Mobile Development at Strava
Strava optimizes testing for their server-driven mobile development.
Fan-tastic Search for Blazing Fast Results
Swiggy’s search delivers results fast to keep users satisfied.
Swiggy's iOS App Now Loads 12 Times Faster
Swiggy boosted iOS load speed by 12x with targeted optimizations.
Reddit Recap: State of Mobile Platforms Edition (2022)
Reddit’s 2022 mobile tale: faster apps and juggling features with stability.
Scaling the Just Eat Help Centre on iOS
Case study on scaling and optimizing the Just Eat help centre application for iOS.
Mobile The Future Is Declarative
Discusses the shift toward declarative UI frameworks in mobile development and their performance benefits.
Announcing Lottie 4.0 for iOS
Airbnb’s Lottie 4.0 brings faster, slicker animations to iOS with Core Animation.
EfficientFormer: Vision Transformers at MobileNet Speed
Snapchat’s EfficientFormer brings speedy vision transformers to mobile.
Swiggy App on Diet
Swiggy puts their app on a diet, trimming size without losing flavor.
Improving Auto Pause for Everyone
Strava refines auto-pause to work better for every athlete out there.
The New Gold Standard for iOS Releases: 99.99% Crash-Free
Turo hit a 99.99% crash-free iOS release with relentless focus.
6 Lessons Learned from Optimizing the Performance of a Node.js Service
Klarna shares six big lessons from speeding up their Node.js service.
Scaling Mobile Device Management
Uber shares how they grew their Mobile Device Management setup to keep a diverse, expanding mobile fleet in check.
Strategies and Tools for Performing Migrations on Platform
Spotify shares strategies for performing large-scale mobile platform migrations across 100+ squads, including migrating 2,200+ Android and iOS components to Bazel. Key lessons include starting small with proof ...
Planting Trees One Ride at a Time
Planting Trees One Ride At A Time How we built GoGreener Tree Collective — a feature that allows customers to plant trees to absorb carbon footprint. By Andrew Daniel & Aakanksha …
Debugging High Latency in the Market Store
Grab digs into high latency in their Market Store and fixes it fast.
How Meetup Scales Notification Queue Consumers
Meetup scales their notification system to handle queues like a boss.
Recovering from Crashes with Safe Mode
Lyft’s ‘Safe Mode’ kicks in after crashes to keep their app steady for users.
Mobile Developer Experience at Slack
Slack keeps devs flowing with tools that cut frustration and delays.
Shift-Left iOS Testing with Focus Flows
Lyft tests iOS early with ‘Shift-Left,’ catching bugs before they grow big.
How Optimizing Memory Management with LMDB Boosted Performance on Our API Service
Pinterest uses LMDB to optimize memory and speed up their API service.
Building A Performant iOS Profiler
Details the development of a high-performance profiling tool for iOS applications.
App Performance Monitoring Strategies and Tools
Covers comprehensive approaches to monitoring and measuring mobile application performance metrics.
Async/Await in Swift: Modern Concurrency Patterns
Explores async/await syntax in Swift for managing asynchronous operations and improving code readability in iOS development.
Consent Matters
Swiggy balances user consent with app performance for trust.
Productionizing Envoy Mobile at Lyft
Implementation and production deployment of Envoy Mobile networking library for mobile applications.
How We Improved Our iOS App Compile Time by 99%
Zomato boosted iOS compile speed by 99% with major tune-ups.
Adopting SwiftUI with a Bottom-Up Approach to Minimize Risk
A topic of great debate among many engineers is whether or not SwiftUI is ready for enterprise. It’s no secret that DoorDash has fully embraced it in our Consumer app
First Annual Bazel iOS Con 2022
Conference coverage on using Bazel build system for iOS mobile development.
Building iFood's iOS Cart Experience
Technical deep dive into optimizing the shopping cart user experience on iOS with performance and usability improvements.
How We Made Unit Testing Part of Our Engineering Culture
Instawork weaves unit testing into their team’s daily rhythm.
Build Time Optimizations in Xcode
Swiggy trims Xcode build times to speed up their dev workflow.
iOS Screen Navigation Engine at Revolut
Describes the design and implementation of a custom navigation engine for iOS applications.
Building m.uber: Engineering a High-Performance Web App
Uber dives into the tech that powers their fast, lean mobile web app, m.uber.
Performance Bottlenecks in Go Apps
Grab finds and clears bottlenecks in their Go-based apps with care.
Introducing Skynet: Infrastructure as Code for Gojek
How can hundreds of microservices be supported with an equally strong cloud infrastructure provisioning strategy? Introducing Skynet.
Programmatic Scrolling with SwiftUI ScrollView
Technical implementation guide for handling programmatic scroll behavior in SwiftUI.
How Removing Caching Improved Mobile Performance by 25%
Klarna ditched caching and somehow boosted mobile speed by 25%.
Automating Mobile Event Verification
Swiggy automates event verification to keep their app on track.
Swift Language Updates from WWDC22
Overview of Swift language improvements and features announced at WWDC22 that impact iOS app development practices.
How Tinder Solves Complex Lottie Localizations with Server Driven UI
At Tinder, we enjoy delivering global-wide experiences to our members. As such, we deploy visually-rich content all around the world, and localization plays a huge role.
Removing 30% of our iOS crashes
Robinhood tackled iOS crashes head-on, wiping out 30% for a smoother ride.
Advanced Techniques to Speed Up Compile Time in Xcode
Swiggy cuts Xcode compile times with advanced, practical tweaks.
Why Mobile Apps Performance Matters
Mercado Libre ties app speed to keeping users and growing big.
Faster media delivery to optimize app performance
LazyPay speeds up media delivery with CDNs for a snappy fintech app.
How Server-Driven UI Is Helping Frontend Engineers Scale Impact
Robinhood’s server-driven UI lets frontend devs make quick, big impacts.
Managing Deep Scope Hierarchies in Large Codebases
Uber takes on tangled code layers, finding ways to keep their big codebase fast and manageable.
Mobile DevOps Journey: Accelerating iOS Development at Swiggy with Bitrise (Episode 2)
Swiggy speeds up iOS dev with Bitrise in their DevOps journey.
Improving the iOS Listing Screen with Generics
e launched Etsy’s iOS app way back in 2011, so we have a long and fruitful history in the App Store. The listing screen, where buyers
Scaling Slack’s Mobile Codebases: Modernization
Slack updates their mobile code to stay fresh and ready for more.
Scaling Slack’s Mobile Codebases: Modularization
Slack splits their mobile code into modules to handle growth with ease.
How We Applied Client-Side Caching
DoorDash caches on the client side to make their app feel faster.
Continuous Load Testing
Slack tests their app under pressure to make sure it holds up strong.
Evolution of the Medium iOS app architecture
Last June, we started to transition from a monolithic architecture to a package-based one.
Mobile DevOps Journey: Evolving Mobile Development at Swiggy (Episode 1)
Swiggy kicks off evolving mobile dev with Bitrise-powered wins.
Stop Wasting Time on Unit Testing: How Tokopedia Achieved 8X Faster Results | by Andrean Lay | Tokopedia Engineering | Medium
Tokopedia sped up unit testing by 8x to save precious dev time.
Profile-Guided Optimisation
Grab uses profile-guided tweaks to make their apps run smoother.
How we improved our iOS CI infrastructure with observability tools
Grab improved their iOS CI infrastructure after upgrading to Xcode 13.1 by integrating observability tools. Key optimizations included fixing Spotlight CPU usage, replacing Safari deep link dependencies with a ...
Xcode Cloud Feedback from leboncoin
leboncoin shares their experience and feedback on using Xcode Cloud for iOS CI/CD workflows.
Designing Swiggy to Be Truly Accessible (Episode 4)
Swiggy wraps up their push to make their app work for everyone.
Swift Async Algorithms
Introduction to Swift's async/await algorithms and concurrency patterns for improving app responsiveness and performance.
Query Hashing to Reduce GraphQL Payload Size
Tokopedia hashes GraphQL queries to shrink payloads and boost speed.
Measuring Mobile Apps Performance in Production
Booking.com keeps tabs on how their apps perform in the real world.
Building a Thoughtful Scaling Framework for Engineering
Robinhood crafts a smart plan to scale engineering without the chaos.
Delivering a Million Downloads Every Week
Swiggy handles a million downloads a week with smooth efficiency.
String Index Type Safety in Swift
Code is much like a conversation, and misunderstandings can happen when assumptions aren’t stated upfront. It brings to mind a quote (perhaps apocryphal) from the Enlightenment philosopher Voltaire
Designing the Swiggy App to Be Truly Accessible (Episode 3)
Swiggy keeps rolling out accessibility wins for a better experience.
Continuous Deployment for iOS
iOS continuous deployment approach, including feature flags, automated versioning, and managing translated assets to ship smaller, safer releases.
Implementing iOS Collection View with Efficient Rendering Mechanism
Tokopedia renders iOS Collection Views fast and efficiently.
Designing the Swiggy App to Be Truly Accessible (Episode 2)
Swiggy digs into the tech behind making their app accessible.
Getting Square's iOS Build Ready for Apple Silicon with Bazel
Technical guide for optimizing iOS builds for Apple Silicon using Bazel.
Fixing Performance Regressions Before They Happen
Techniques for detecting and preventing performance regressions in applications before they reach production.
Designing the Swiggy App to Be Truly Accessible (Episode 1)
Swiggy starts building an app that’s truly open to all users.
Stabilize, Modularize, Modernize: Scaling Slack's Mobile Codebases
Deep dive into Slack's approach to scaling mobile development through stabilization, modularization, and modernization strategies.
How we ship GitHub Mobile every week
GitHub keeps mobile releases humming weekly with a tight process.
Introducing Swift RunOnce
Presents a Swift utility for optimizing single-execution code patterns in iOS development.
Balancing Native and JavaScript Code in React Native
Best practices for deciding when to use native code versus JavaScript in React Native development.
Cross-Platform Messaging Experience
Snapchat syncs messaging across platforms for a seamless experience.
How We Revamped Tokopedia Play for iOS: So Fast & Productive
Tokopedia remakes their Play feature on iOS for speed and productivity.
Airbnb's Page Performance Score on iOS
Airbnb tracks iOS app speed with a score to stay ahead of slowdowns.
Continuous Integration and Delivery for iOS
Explains CI/CD pipeline setup and best practices for iOS application development and deployment.
Nextdoor Notifications: Using ML to Keep Neighbors Informed
Engineering approach to notification delivery and machine learning optimization in the Nextdoor mobile app.
Building App Clips with React Native
Implementation guide for creating lightweight App Clips using React Native for iOS.
Mobile Developer Productivity at Reddit
Reddit sped up builds and cut grunt work so devs can focus on cool features.
Creating Airbnb's Page Performance Score
Airbnb built a score to keep their web pages fast and users coming back.
How Tokopedia Achieved 1000% Faster iOS Build Time
Tokopedia slashed iOS build times by 1000% with bold moves.
Monitoring Performance of Screens in Your iOS App
Revolut watches iOS screen performance to keep things running slick.
Introducing XCRemoteCache: The iOS Remote Caching Tool that Cut Our Clean Build Times by 70%
Spotify’s ‘XCRemoteCache’ uses remote caching to slash iOS clean build times by 70%.
Beyond Mobile First: Modern Mobile Development Strategy
Square's perspective on evolving mobile development practices beyond the mobile-first paradigm.
Introducing Swift Distributed Actors
Apple announces the open-source release of the Swift Distributed Actors library, a complete server-oriented cluster framework built on top of Swift's experimental distributed actor language feature and SwiftNIO...
Mobile Performance @ Lyft
Lyft shares their tricks for keeping their mobile app smooth and user-friendly.
How Do We Improve Our Most Important Page on iOS App
Tokopedia speeds up their most vital iOS app page for users.
Swift DocC Documentation Tool
Covers Swift's documentation compiler tool, useful for mobile development best practices and code organization.
Designing for Productivity in a Large-Scale iOS Application
Airbnb keeps their massive iOS app humming with smart design choices.
Open Sourcing Thumbprint Native Design System
Announces and describes Thumbtack's native design system for iOS and Android development.
Designing Resilient Systems Beyond Retries (Part 1: Rate Limiting)
Grab starts building tough systems with rate limiting to stay strong.
Swift 5.5 Released
Announces Swift 5.5 release with new features and improvements relevant to iOS mobile development.
Swift Code Linting and Formatting Best Practices
Discusses code quality tools and standards for maintaining consistent Swift code across iOS applications.
Debugging the UI of Third-Party iOS Apps
A toolkit-focused walkthrough showing how to use FLEX to inspect and debug the UI of third-party iOS apps, including installing, activating, and exploring runtime UI structures.
Implementing Diffable DataSource for Heterogeneous Items in iOS
Technical guide to using iOS diffable data sources for efficient UI updates with mixed item types.
Tech Modernization at scale — Blog Series
Walmart kicks off a series on scaling up their legacy tech smartly.
Improving Product Reliability by Imposing Constraints as a Part of CI/CD Process
Revolut adds CI/CD rules to make their app more trustworthy.
Preparing Your App for iOS 15 and Android 12
Best practices and guidance for updating React Native apps to be compatible with iOS 15 and Android 12.
Kotlin Multiplatform: Shared Test Resources
Best practices for sharing test resources across platforms using Kotlin Multiplatform.
Preventing Pipeline Calls from Crashing Redis Clusters
Grab keeps Redis steady when pipeline calls hit hard and heavy.
React Native 0.65 Release
Version 0.65 release with performance optimizations and mobile engineering improvements.
Project Bonsai
Grab’s Project Bonsai spruces up their mobile dev process nicely.
Best Practices for Unit Testing at Revolut
Revolut shares their top tricks for nailing unit tests every time.
Spotting Latency Regressions Ahead of Time at Teams Mobile
Microsoft catches Teams mobile latency issues before they hit users.
Carbon: Dual Binary Mobile App
Uber built ‘Carbon’ to cut complexity and make their Rider app easier to maintain with a dual-binary twist.
A Deep Dive into Airbnb’s Server-Driven UI System
How Airbnb ships features faster across web, iOS, and Android using a server-driven UI system named Ghost Platform 👻.
ACF Automated Code Formation Engineering Excellence
Walmart’s ACF tool auto-generates clean code for consistency.
Getting Started with iOS App Modularization: Final Extraction and Micro-App
Tokopedia finishes iOS modularization with micro-apps in play.
Trusting Metrics at Pinterest
Pinterest digs into how they make sure their app performance numbers are rock-solid and reliable.
App Modularisation at Scale
Grab splits their app into modules to scale big and stay nimble.
iOS Monorepo CI/CD Pipelines
Discusses continuous integration and deployment strategies for iOS monorepo projects.
Improving Platform Channel Performance in Flutter
Technical deep-dive into optimizing platform channel communication performance between Flutter and native code.
How we build SwiftUI features in the Medium application
Glose was acquired by Medium last January, and since then, the Glose team has been busy integrating with all our new colleagues and building shiny new features.
Swift Package Collections
Introduces package collections feature for managing Swift dependencies in mobile projects.
Structured Logging: The Best Friend You'll Want When Things Go Wrong
Grab logs smartly to troubleshoot app issues quick and painlessly.
Scaling Mobile Development at Microsoft: Mental Model
Microsoft shares their mental model for scaling mobile dev smoothly.
Getting Started with iOS App Modularization: Extracting Catalog
Tokopedia pulls the catalog into its own iOS module smoothly.
Improving iOS Intangibles with Tactical
In the days of lore and legend that precede my employment, Medium operated under the decentralized organizational philosophy of holocracy. Though leadership has long since
Six iOS App Features Explained
Explains the technical implementation of notable features in the BlaBlaCar iOS application.
Scaling iOS at Bumble (Part 3)
Bumble wraps up their iOS scaling journey with advanced tips.
Swift 5.4 Released
Announces Swift 5.4 release with performance and language improvements for iOS development.
iOS Accessibility Best Practices
Explores accessibility implementation and best practices for iOS applications.
SwiftUI with UICollectionView
Technical guide on integrating SwiftUI with UICollectionView for iOS app development.
Hermes JavaScript Engine Performance on iOS
Analysis of Hermes engine performance characteristics and optimization on iOS platforms.
Getting Started with iOS App Modularization: An Introduction
Tokopedia starts splitting their iOS app into manageable modules.
How We Reduced Pinterest’s iOS App Size by 30+% / 50MB
Pinterest chopped their iOS app size by over 30%, using clever resource tricks and code cleanup.
Bringing Hermes to iOS in React Native
Explores integrating the Hermes JavaScript engine into React Native iOS apps to improve performance and reduce app size.
Scaling iOS at Bumble (Part 2)
Bumble digs into the tech behind scaling their iOS app smoothly.
Lessons in SwiftUI
Best practices and lessons learned from implementing SwiftUI in iOS development.
Optimizing OpenTelemetry's Span Processor for High Throughput and Low Latency
DoorDash tunes OpenTelemetry for fast tracing with low lag overhead.
Swift Collections Library
Introduces Swift Collections library providing optimized data structures for mobile app development.
Migrating Your App to Swift Packages
Guide on refactoring iOS applications to use Swift Package Manager for dependency management.
Scaling iOS at Bumble (Part 1)
Bumble starts scaling their iOS app with smart, practical moves.
Client Tracing: Understanding Mobile and Desktop Application Performance at Scale
Slack traces performance across mobile and desktop to catch every snag.
CDN Caching Improvements for Better App Performance
AWS Amplify’s CDN caching makes apps load faster with less wait.
Investigating Crashes with Aardvark
Crashes can be one of the most straightforward types of issues to debug. There are many different categories of crashes that can happen on iOS - everything from bad memory access
Implementing Doubly Linked Lists in Swift
Data structure implementation guide for Swift programming language.
React Native 0.64 Release
Version 0.64 release with performance improvements and mobile development enhancements.
How Pinterest Leverages Honeycomb to Enhance CI Observability and Improve CI Build Stability
Pinterest uses Honeycomb to keep their CI clear, stable, and easy to watch.
Improve Reliability with Observability Tracing in Your CI/CD Pipeline
Walmart traces CI/CD performance to keep their pipeline reliable.
Multiple iOS Apps from a Single Codebase
Architecture and modularization strategies for sharing code across multiple iOS applications.
How Uber Deals with Large iOS App Size
Uber rolled up their sleeves to tackle the hefty size of their iOS app and slim it down.
JSON Serialization Libraries Performance Comparison
Performance benchmarking and comparison of JSON serialization libraries for mobile apps.
Tinder Swipe Animation in SwiftUI Tutorial
Tutorial on building swipe animations and gesture handling using SwiftUI for iOS.
How We Designed Our Continuous Integration System to Be More Than 50% Faster
Pinterest revamped their CI system, splitting tasks and streamlining to cut build times by over half.
Solving Native Memory Leaks in Mobile Apps
Addresses techniques for identifying and fixing memory leaks in native mobile applications.
Time to Camera Ready
Snapchat cuts the time it takes to get their camera up and running.
Building iOS 14 Widgets for Carousell - Part 2
Continuation of iOS 14 widget implementation, covering advanced development techniques and optimization.
SwiftNIO SSH Implementation
Covers SSH support in SwiftNIO framework, relevant to network performance and security in mobile apps.
SwiftUI Stretchable Header View Implementation
Technical guide for implementing custom stretchable header views in SwiftUI.
Mobile App Launch Performance
Farfetch begins boosting their mobile app’s launch speed smartly.
Mobile App Launch Performance II
Farfetch quantifies the business cost of app launch milliseconds — from $350K opportunity cost per release to $4.2M yearly impact from 0.1s warm launch regression. Covers measuring practices, performance budget...
Monitoring App Performance on iOS
Expedia tracks iOS app performance to keep travelers happy on the go.
Building iOS 14 Widgets for Carousell - Part 1
Technical guide on implementing iOS 14 widgets, covering mobile development best practices and architecture.
Decomposing network calls on the Lyft mobile apps
When Lyft was first developed, it was built using a monolithic server architecture. Within this architecture, all mobile clients relied on a single endpoint for fetching all data pertaining to the user and thei...
Swift Service Discovery
Introduces service discovery library for distributed systems, applicable to mobile backend communication.
Pre-submit UI Tests at Pinterest
Pinterest started testing UI before code gets merged, catching bugs early to keep things steady.
Swift Algorithms Library
Presents optimized algorithms library for Swift, useful for improving code performance in mobile apps.
The Fundamentals of iOS Development at Revolut
Covers core iOS development practices and architectural principles used at Revolut.
Swift Atomics Library
Introduces atomic operations library for thread-safe concurrent programming in Swift mobile apps.
Swift System Library
Covers low-level system APIs in Swift, relevant to mobile app performance and system integration.
GitHub Mobile and GraphQL
Explores the architecture and optimization of the GitHub mobile app using GraphQL for efficient data fetching.
New Rider App Architecture
Uber redesigned their Rider app’s guts to be modular and tough enough for whatever’s next.
Swift 5.3 Released
Announces Swift 5.3 release with features and improvements for iOS mobile development.
5 Minute DevOps Effective Testing
Walmart fits fast, effective testing into a 5-minute DevOps flow.
Motion Engineering at Scale
Airbnb scales up motion design to keep app animations seamless.
Tracing at Slack: Thinking in Causal Graphs
Slack maps performance issues with cause-and-effect graphs for insight.
Lottie and Swift at Airbnb
Airbnb mixes Lottie with Swift for slick, engaging iOS animations.
Leveraging Mobile Infrastructure with Data-Driven Decisions
Spotify uses hard data to tweak their mobile setup and keep users happy.
React Native Core Principles and Best Practices
Overview of React Native's core principles guiding mobile development best practices and architecture decisions.
App Size Matters II
Farfetch monetizes the business impact of app size — each megabyte costs 450 installs and a 15MB increase means $350K opportunity cost per release. Covers performance budgets, trade-off strategies, and go/no-go...
App Size Matters I
Farfetch starts their journey to shrink app size for better reach.
How We Ensure Credible Analytics on Dropbox Mobile Apps
Best practices for implementing reliable analytics and monitoring in mobile applications.
Swift Service Lifecycle
Covers service lifecycle management library for Swift, relevant to mobile app architecture and resource management.
React Native 0.63 Release
Version 0.63 release with performance enhancements and mobile engineering updates.
Making Slack Faster By Being Lazy
Slack speeds up by loading only what’s needed, when it’s needed.
Making Slack Faster By Being Lazy: Part 2
Slack doubles down on lazy loading to keep their app feeling quick.
App Size Reduction at Microsoft SwiftKey
Microsoft trims SwiftKey’s app size to keep it light and snappy.
iOS Data Tracking with CoreData
Covers implementing efficient data tracking and storage using CoreData on iOS.
Using Hopper to Investigate an iOS Bug
Explores debugging techniques and tools for identifying and resolving iOS application bugs.
Spotify Modernizes Client-Side Architecture to Accelerate Service on All Devices
Spotify overhauled their app’s client-side setup to speed up tunes on every device out there.
Making iOS Accessibility Testing Easy
Unit tests are great for testing business logic, snapshot tests make sure your views look correct, and UI tests help to ensure everything fits together properly. How do you test your app’s accessibility though?
How We Gave Superpowers to Our macOS CI
Spotify juiced up their macOS CI, cutting iOS pre-merge checks by 75% with slick upgrades.
Choosing Between SwiftUI and UIKit
Discussion of when and how to use SwiftUI and UIKit together in iOS development.
Bank of America Amps Up In-App Experiences
Bank of America cut in-app response times by 50% with Adobe’s help.
React Native 0.62 Release
Version 0.62 release with performance optimizations and mobile development improvements.
Understanding the aspects of iOS App Launch Time | by Ravi Aggarwal | Medium
Tokopedia breaks down and boosts iOS app launch speed smartly.
One Approach to Monitoring iOS Application Performance
Mercari keeps a sharp eye on iOS app performance to stay smooth.
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 halved their Android build times to keep their developers moving fast.
Building A Native Design System For iOS
Explores creating a cohesive design system for iOS applications to improve development efficiency and consistency.
Argument Parser Library for Swift
Covers a Swift library for command-line argument parsing, useful for mobile development tooling and build systems.
Bringing AV1 Streaming to Netflix Members’ TVs | by Netflix Technology Blog | Netflix TechBlog
Netflix switched to AV1 on Android for sharper video and better compression.
Improving Animations on iOS with Stagehand
Adding animations to your app turns a fairly routine interaction into a more enjoyable, exciting experience. These animations make a straightforward design into something that feels polished and professional.
Lyft's Journey Through Mobile Networking
Evolution of mobile networking strategies and optimizations at Lyft.
Journey to a Faster Everyday Super App: Where Every Millisecond Counts
Grab chases every millisecond to make their super app blazing fast.
Journey to a Faster Everyday Super App
Grab shares how they made their super app lightning-fast for daily use.
React Native Doctor Diagnostic Tool
Introduction of React Native Doctor tool for diagnosing development environment issues and optimizing build processes.
React Native 0.61 Release
Version 0.61 release with performance improvements and mobile engineering enhancements.
The Not-So-Hidden Cost of Sharing Code Between iOS and Android
Analysis of the architectural and performance trade-offs when sharing code between iOS and Android platforms.
Introducing Nanoscope: An Extremely Accurate Method Tracing Tool for Android Development
Uber’s Nanoscope digs deep into Android methods to spot performance hiccups.
Hermes JavaScript Engine for React Native
Introduction of Hermes, a JavaScript engine optimized for mobile app startup time and memory usage.
Interactive 3D Cards for Revolut iOS App
Details the implementation of interactive 3D card rendering for iOS applications.
React Native Version 0.60 Release
Major version release with performance enhancements and mobile development best practices updates.
Creating a Fluid Scroll Experience on iOS
In the ClassPass app, by far the most common path users take once they open it is tapping the “Find a Class” tab at the bottom and then searching for classes.
iOS GPS Testing and Location Services
Discusses testing approaches for GPS and location-based features on iOS.
Handling Multiple Native iOS Views in React Native
Best practices for integrating and managing multiple native iOS views within React Native applications.
A Swift Journey Episode 2: Handling Silent Notifications
Explores handling silent notifications in iOS using Swift, covering background processing and notification best practices.
Mobile Release Engineering at Scale: ShipIt Mobile
Strategies and tools for managing mobile app releases and deployment processes at scale.
iOS Code Signing Best Practices
Covers iOS code signing processes and best practices for mobile app development and deployment.
Employing QUIC Protocol to Optimize Uber’s App Performance
Uber tapped the QUIC protocol to cut latency and make their app feel snappier.
Developing on iOS and Android
Square explores how iOS and Android have converged, why teams still build everything twice, and their approach to cross-platform collaboration including multiplatform Kotlin experiments.
Quality Assurance and Testing for Mobile Applications
Discusses mobile app quality assurance, testing strategies, and continuous improvement practices.
Implementing Infinite Scrolling Efficiently
Guide to implementing infinite scrolling in mobile apps with optimal performance and user experience.
Measuring Kotlin Build Performance
Uber teamed up with JetBrains to figure out how Kotlin builds hold up when things get big and messy at scale.
React Native 0.59 Release
Release announcement for React Native 0.59 with performance improvements and new development features.
Building a Dynamic UI System at Carousell (Part 1)
Carousell explores the problems that led them to build a server-driven dynamic UI system (fieldsets) for their marketplace, enabling dynamic sell forms, search filters, and listing details across iOS, Android, ...
Building a Dynamic UI System at Carousell (Part 2)
Deep dive into Carousell's fieldset system architecture: JSON-based document schemas, component hierarchies, cross-platform rendering, backward compatibility via build versioning, and the request/response flow ...
A Swift Journey Episode 1: Generic Protocols in Action
Demonstrates the use of generic protocols in Swift for building flexible and reusable mobile architecture patterns.
Introducing Inclusive Beauty Searches for Mobile
Article about mobile search feature implementation and optimization for mobile platforms.
Server-Provided Animations in iOS Apps
Techniques for implementing server-driven animations in iOS applications.
Server-Provided Animations in iOS Apps
Badoo's iOS team explains how they built a server-driven animation system to allow live streaming gift animations to be updated without requiring an App Store release. Using the Lottie library and Adobe After E...
iOS Application Testing Strategies at Shopify
Shopify built a tough testing framework to ship flawless iOS features every time.
Engineering Uber Lite
Uber reveals the real struggles and smart solutions they found while building Uber Lite for shaky network spots.
Bundling C Library in Swift Framework
Guide on integrating and bundling C libraries within Swift frameworks.
Bundling C Library in Swift Framework
Technical guide on integrating and bundling C libraries within Swift frameworks.
Hate to Wait: How Skyscanner Used Module Caching to Cut App Build Speed in Half
Skyscanner halves app build times with smart module caching moves.
Consistent Caching Mechanism in Titus Gateway
Netflix builds consistent caching in Titus Gateway for steady performance.
Why We Decided to Rewrite Uber's Driver App
Uber explains why they scrapped and rebuilt their driver app to boost speed, scale, and driver happiness.
How We Tested iOS 12 Beta
Testing strategies and approaches used to validate iOS 12 beta compatibility.
Testing iOS 12 Beta
Strategies and approaches for testing iOS applications on beta versions.
iOS App Performance
Monzo keeps their iOS app quick and responsive with smart tweaks.
How Discord Handles Two and Half Million Concurrent Voice Users Using WebRTC
Discord powers 2.5 million voice chats at once with WebRTC wizardry.
Implementing Scalable UI in iOS: Better, Faster Performance
Explores iOS UI implementation techniques for improved performance and scalability.
What Feature Team Structure Has Changed for iOS Team at leboncoin
leboncoin discusses organizational and process changes to their iOS development team structure.
WKWebView Integration in React Native
Discusses WKWebView implementation for improved web view performance and security in React Native applications.
Universal Links for Android and iOS
Implementation of universal deep linking across both Android and iOS platforms.
Universal Links for Android and iOS
Implementation guide for universal deep linking across Android and iOS platforms.
Guide to Mobile App Autotesting Tools
Comprehensive overview of automated testing tools and frameworks for mobile applications.
Guide to Mobile App Autotesting Tools
Comprehensive overview of automated testing tools and frameworks for mobile applications.
iOS UI Development in Badoo
Badoo's iOS team shares four UI development techniques used to build highly maintainable and testable UIs in a medium-to-large team: implementing UI in code instead of XIBs, using layout anchors, component-driv...
iOS UI Development Best Practices
Techniques and best practices for developing user interfaces in iOS applications.
Unified Cross-Platform Performance Metrics
Slack tracks performance the same way across all platforms for clarity.
3 Techniques We Used to Improve Skyscanner for iOS Performance
Skyscanner boosts iOS speed with three clever, practical tricks.
Split Testing (A/B Testing) with Swift
Implementation of A/B testing and split testing functionality in Swift applications.
Split Testing (A/B Testing) with Swift
This article introduces how Badoo implements split testing (A/B testing) within their iOS app using Swift, covering the fundamentals of experiment design and group distribution. The author walks through a real ...
RxSwift Observable Loading State Management
Explores best practices for managing loading states in RxSwift observables for iOS.
A New Era of Launching Mobile Games
Modern strategies and best practices for launching and distributing mobile games on app stores.
Loading Time Matters
Zalando proves fast load times keep users hooked and happy.
Improved Mobile Performance
Teamweek shares their overall push to make their app run better.
The Mobile Crash Reporting Pipeline at LinkedIn
LinkedIn tracks mobile crashes and fixes them fast to keep users happy.
Swift 4.1 Introduction of CompactMap
Overview of the CompactMap function introduced in Swift 4.1 and its practical applications.
Swift 4.1: Introduction of CompactMap
Overview of the CompactMap function introduced in Swift 4.1 for efficient optional filtering.
A Massively Multi-User Datastore Synced with Mobile Clients
Architecture and engineering approach for syncing data between server and mobile clients at scale.
Building Input Accessory View For React Native
Demonstrates implementation of native input accessory views for improved mobile UX and performance.
Using Docker to build a testing infrastructure for web UI and mobile
LINE uses Docker to build a fast, scalable testing setup for UI.
Automating Mobile App Localization
Covers automated processes for localizing mobile applications across languages.
Implementing Twitter's App Loading Animation In React Native
Technical guide to implementing smooth loading animations while optimizing performance in React Native.
Screen Navigation in iOS
Bumble's iOS team walks through progressively advanced screen navigation patterns, from basic UIViewController presentation to testable dependency-injected navigation using protocol-oriented programming. The ar...
Screen Navigation in iOS
Best practices for implementing screen navigation patterns in iOS applications.
VIPER Architecture on iOS at Etsy
Discusses the implementation of the VIPER architectural pattern for iOS app development at Etsy.
Building a Reusable Component Library on iOS
Describes BlaBlaCar's approach to creating and maintaining a modular component library for iOS.
Singleton, Service Locator and Tests in iOS
Badoo's iOS team reviews the Singleton and Service Locator patterns, explaining why they are often considered anti-patterns and when it is appropriate to use them. The article discusses strategies for keeping c...
Singleton Service Locator Pattern and Testing in iOS
Discusses dependency injection patterns and testing strategies for iOS applications.
UIKit Best Practices and Tips
Practical tips and best practices for working effectively with UIKit.
The future of multi-modal interfaces
Meta explores new ways to mix voice, touch, and more in app design.
Efficient and healthy background data prefetching at Instagram
Instagram grabs data early in the background to keep scrolling smooth.
RxSwift MVVM Architecture Pattern
Explains implementing the MVVM architectural pattern using RxSwift for iOS development.
How to Extract Analytics Data from Your iOS Application
Covers techniques for implementing and extracting analytics data from iOS applications.
Mobile Apps: iPlayer Tech On The Move
Discusses mobile engineering and architecture decisions for BBC's iPlayer mobile application.
React Native Performance In Marketplace
Case study on optimizing React Native app performance in a production marketplace application.
Mind Maps for Fast and Effective Testing
Using mind mapping techniques to improve test planning and execution efficiency.
Importing Adobe After Effects Animations into iOS Apps
Explores techniques for integrating complex animations from design tools into iOS applications.
Strava Mobile App Versions
Discussion of mobile app versioning strategy and release management at Strava.
Zynga Geo Proxy: Reducing Mobile Game Latency
Zynga's engineering team reduced mobile game latency for global players by deploying geo proxy servers across 5 AWS regions. By maintaining persistent connections to their Oregon data center, they eliminated HT...
Integrating React Native in an Existing Application
Best practices for adding React Native components to existing native mobile applications.
Building Mixed Language iOS Projects with Buck
Airbnb's guide to managing multi-language iOS projects using the Buck build system for improved build performance.
iOS Linting at Pinterest
Pinterest implemented custom iOS linting using Clang tools integrated with Bazel, enabling compile-time code quality enforcement and best practices for their growing iOS team.
Detecting List Items Observed by User
Zalando tracks what users see in lists to sharpen performance and stats.
Mobile Crash Reporting at LinkedIn
LinkedIn keeps a tight watch on mobile crashes to stay smooth and steady.
Messaging Sync: Scaling Mobile Messaging at Airbnb
Airbnb's engineering approach to scaling mobile messaging infrastructure and synchronization across their platform.
Building a Dynamic Mobile CI System
Shopify crafted a flexible CI system that scales fast for mobile dev needs.
Improving Swift Compilation Times from 12 to 2 Minutes
Zalando slashed Swift compile times from 12 minutes to just 2 with tweaks.
iOS Internationalization: Handling Plurals
Explores best practices for implementing pluralization in iOS app internationalization.
Better List Views
Covers optimization techniques for list rendering performance in React Native applications.
Introducing Twitter Image Pipeline iOS Framework For Open Source
Presents an open-source iOS framework for efficient image loading and caching in mobile applications.
iOS Monorepo
Uber keeps all their iOS code in one giant repo, helping teams sync up and scale without chaos.
Code Signing and Distributing Swift Applications
Guide to code signing and distribution processes for Swift-based iOS applications.
Using Native Driver For Animated
Explains how to use the native driver for animations to improve rendering performance and reduce JavaScript thread load.
Mobile App Testing Tips and Tricks
Best practices and practical tips for effective mobile application testing.
Four Load Testing Mistakes Developers Love to Make
Klarna points out four load testing traps devs often fall into.
iOS Location Tracking Implementation
Technical guide on implementing location tracking features in iOS applications.
Easier Upgrades
Improvements to the React Native upgrade process and tools for smoother version migrations.
Engineering the Architecture Behind Uber’s New Rider App
Uber breaks down the smart design choices behind their revamped Rider app.
Crashcan: Building a Better Mobile Crash Analytics Platform
Crashcan (think trashcan, but for crashes) is Etsy's internal application for mobile crash analytics. We use an external partner to collect and store crash and exception data from our mobile apps
React Native 0.36: Headless JS, Keyboard API, and More
Release notes covering headless JavaScript, keyboard API improvements, and other features in React Native 0.36.
iOS Internationalization: Designing for Translators
Covers design considerations for iOS app internationalization workflows.
Offline First: Introducing TrueTime for Swift and Android
A common complaint we’ve heard from our shoppers is that when they’re deep in the aisles of a grocery store, the app is frequently held hostage to spotty network connectivity.
The iOS Bug Chase
Documents the process of identifying and fixing a critical bug in an iOS application.
Improving Chat Rendering Performance
Twitch smooths chat rendering for a lag-free experience in streams.
Adopting Swift: Migrating to Frameworks on iOS
Covers best practices and strategies for modularizing iOS applications using Swift frameworks.
Dynamic App Content: An Introduction to Truly Native Apps
Zalando crafts native apps that shift content dynamically for users.
The Mobile Device Lab at the Prineville Data Center
Meta’s lab in Prineville hammers apps to ensure they perform anywhere.
Proper Use of CellForRowAtIndexPath and WillDisplayCell
Zalando optimizes iOS table views to render fast and feel smooth.
Getting to Slack Faster with Incremental Boot
Slack cuts load times by starting up step-by-step, not all at once.
Automatic memory leak detection on iOS
Meta’s tools auto-catch iOS memory leaks, saving devs tons of time.
React Native: A Year in Review
Meta's retrospective on React Native development framework improvements and lessons learned over a year of production use.
React Native: A Year in Review
Annual review of React Native framework improvements, features, and community developments.
3x3: iOS Build Speed and Stability
LinkedIn’s 3x3 method makes iOS builds faster and less prone to trouble.
Dive Into React Native Performance
Deep dive into performance optimization techniques and best practices for React Native applications.
Introducing Hot Reloading
Introduction to hot reloading feature for faster development iteration in React Native.
Failing Fast with Reliable and Actionable System-Level Tests
Skyscanner uses system tests to catch failures quick and keep quality high.
Solving the Problem of One Billion Computations
Skyscanner tackles a billion calculations with efficient, fast solutions.
3x3: Speeding Up Mobile Releases
LinkedIn’s 3x3 framework cuts the time to get mobile updates out the door.
Mobile A/B Testing at Quora
Discusses A/B testing strategies and implementation for mobile applications to optimize user experience and performance.
Making React Native Apps Accessible
Best practices and techniques for implementing accessibility features in React Native applications.
Optimizing Facebook for iOS start time
Meta tackled iOS startup piece by piece to get users in faster.
Functional Reactive Programming On Mobile: A Rosetta Stone
Explores functional reactive programming patterns and their application to mobile development.
Reducing FOOMs in the Facebook iOS app
Meta cut memory crashes in their iOS app to keep it running smooth.
Discover Pinterest Mobile Engineering and Design
Overview of Pinterest's mobile engineering practices and design approaches.
Mobile Performance: Tooling Infrastructure at Facebook
Meta’s tooling keeps their mobile apps running smooth and steady.
React Native: Bringing Modern Web Techniques to Mobile
Overview of how React Native applies modern web development techniques to mobile app development.
Crittercism: Solving Mobile Performance Issues for One Billion Users | AWS Startups Blog
Crittercism (via AWS) tackles app issues for a billion users worldwide.
High Performance WebViews
Covers optimization techniques for WebView performance in mobile applications.
Real World Swift
Duolingo shares their experience building a new Swift-based iOS app, discussing real-world Swift patterns, optionals, type safety, and lessons learned from production deployment.
Swift Method Dispatching Mechanisms
Explores Swift's method dispatch strategies and their performance implications for iOS applications.
Building Carousel Part III: Drawing Images on Screen
Technical deep dive into image rendering optimization and performance in Dropbox's Carousel mobile app.
The Tech Behind Dropbox's New User Experience on Mobile - Part 2
Technical deep dive into Dropbox's mobile app architecture and UX implementation improvements.
Building Dropbox's New User Experience for Mobile Part 1
Case study on designing and implementing a new mobile user experience with performance and usability considerations.
Building Carousel Part II: Speeding Up the Data Model
Dropbox tuned their data model to make their app respond even faster.
Building Carousel Part I: How We Made Our Networked Mobile App Feel Fast and Local
Dropbox made their networked app feel snappy, like it’s all local.
Garbage Collection Optimization: High Throughput and Low Latency Java Applications
LinkedIn tunes Java garbage collection for high speed and low lag.
CocoaPods Sponsorship and iOS Dependency Management
Discusses CocoaPods ecosystem and dependency management practices for iOS development.
Mobile A/B Testing at LinkedIn: How Members Shape Our Apps
LinkedIn uses A/B tests to shape their apps based on real user vibes.
CocoaSPDY: SPDY For iOS and OS X
Introduces a library implementing the SPDY protocol for improved network performance on Apple platforms.
Service Update Major Video System Update and Prague is Online
Twitch overhauled their video system and added Prague servers for speed.
Shaving off 50% Waiting Time from the iOS Edit-Build-Test Cycle
Spotify slashed iOS dev cycle time by half, keeping their coders in the groove.
Improving Etsy for iOS with server-based logging
One of the major challenges the Native Apps group faces at Etsy is maintaining and debugging a large codebase with a small team. Android and iOS are less mature platforms at Etsy
Etsy's Device Lab
At the end of 2012, Etsy CEO Chad Dickerson noted that mobile visits grew 244% year over year and represented more than 25% of all traffic.
Login Verification On Twitter For iPhone And Android
Describes implementation of secure login verification features across iOS and Android platforms.
Mobile App Development: Catching Crashers
Twitter (now X) hunts down mobile app crashes with keen precision.
Introducing the Dropbox Sync API for Mobile Developers
Guide to Dropbox's Sync API designed for mobile app developers to handle data synchronization.
Introducing the Super Debugger: Wireless Real-Time Debugging for iOS
A wireless debugging tool for real-time inspection and troubleshooting of iOS applications.
Right To Left Support For Twitter Mobile
Details implementation of right-to-left language support across Twitter's mobile applications.
Keeping Instagram Up with Over a Million New Users in Twelve Hours
Instagram scaled fast to handle a million new users in just 12 hours.
Blazing Fast Node.js: 10 Performance Tips for LinkedIn Mobile
LinkedIn drops 10 hot tips for making Node.js fly in mobile apps.
Mobile Proxy Architecture at SoundCloud
Explores proxy patterns and network optimization strategies for mobile applications.
iOS App Sharing Implementation
Covers implementation of sharing functionality in iOS applications.