Skip to main content

πŸ“• Building Mobile Apps at Scale

Building Mobile Apps at Scale by Gergely Orosz is a comprehensive guide that delves into the complexities of scaling mobile app development in large teams. The book is structured into five parts, each addressing specific challenges that arise as mobile applications grow in complexity, user base, and team size. With insights drawn from real-world experiences at companies like Uber, the book provides invaluable advice on state management, performance optimization, compliance, modular architecture, and more.

Details

URL: πŸ”— https://www.mobileatscale.com/

Published: 2021-07-01

ISBN: 978-1-63795-844-5

Length/Pages: Approximately 134 pages

Authors: Gergely Orosz

Tags:
Mobile Development, iOS Development, Android Development, Scalability, Software Engineering

Key Points​

  • Scaling Engineering Teams: Discusses how to scale engineering teams and their processes effectively as a mobile application grows.
  • Code Quality and Maintainability: Provides strategies for maintaining code quality and ensuring long-term maintainability in a large codebase.
  • Performance Optimization: Covers techniques for optimizing mobile app performance as the user base expands.
  • Release Management: Offers insights into managing frequent releases and the associated challenges in large teams.
  • Cross-Platform Considerations: Addresses the complexities of building and maintaining apps across both iOS and Android platforms.

Detailed Breakdown of Contents​

Part 1: Challenges Due to the Nature of Mobile Applications​

  • State Management: Managing state in mobile apps, focusing on immutability and reactive programming.
  • Mistakes Are Hard to Revert: Handling rollbacks and error management in mobile app releases.
  • The Long Tail of Old App Versions: Supporting legacy versions while continuing to innovate.
  • Deeplinks: Implementing and managing deeplinks across iOS and Android.
  • Push and Background Notifications: Best practices for maintaining user engagement through notifications.
  • App Crashes: Techniques for crash prevention and management.
  • Offline Support: Strategies for ensuring app functionality in offline mode.
  • Accessibility: Making mobile apps accessible to all users, including those with disabilities.
  • CI/CD & The Build Train: Implementing continuous integration and deployment in mobile app development.
  • Third-Party Libraries and SDKs: Managing dependencies on third-party tools.
  • Device and OS Fragmentation: Handling the challenges of varying devices and OS versions.
  • In-App Purchases: Implementing and managing in-app purchases effectively.

Part 2: Challenges Due to App Complexity​

  • Navigation Architecture Within Large Apps: Building scalable and maintainable navigation systems.
  • Application State & Event-Driven Changes: Handling complex state changes triggered by events.
  • Localization: Best practices for localizing large mobile applications.
  • Modular Architecture & Dependency Injection: Structuring apps for scalability with modular architecture.
  • Automated Testing: Ensuring app quality through comprehensive automated testing strategies.
  • Manual Testing: Complementing automated tests with essential manual testing efforts.

Part 3: Challenges Due to Large Engineering Teams​

  • Planning and Decision Making: Formalizing processes for efficient team collaboration.
  • Architecting Ways to Avoid Stepping on Each Other’s Toes: Creating architectures that support multiple teams working concurrently.
  • Shared Architecture Across Several Apps: Unifying architectures across multiple apps within the same company.
  • Tooling Maturity for Large Engineering Teams: Developing and adopting tools to support large-scale development.
  • Scaling Build & Merge Times: Strategies to keep build and merge times manageable in large codebases.
  • Mobile Platform Libraries and Teams: Leveraging shared libraries and specialized teams to support app development.

Part 4: Challenges Due to Stepping Up Your Game​

  • Experimentation and Feature Flags: Managing feature rollouts and conducting A/B testing.
  • Compliance, Privacy, and Security: Ensuring compliance with regulations and maintaining security at scale.
  • App Size and Forced Upgrading: Strategies for managing app size and handling forced upgrades.
  • The Future of Mobile at Scale: Insights into future trends and developments in mobile app development.

Part 5: Advanced Topics​

  • Experimentation: Deep dive into A/B testing and feature management.
  • Feature Flag Hell: Managing the complexity of feature flags in large apps.
  • Performance: Techniques for optimizing app performance and handling bottlenecks.
  • Analytics, Monitoring, and Alerting: Tools and practices for maintaining app health and performance.
  • Mobile On-Call: Setting up effective on-call rotations for mobile teams.
  • Advanced Code Quality Checks: Techniques for maintaining high code quality in large codebases.
  • Compliance, Privacy, and Security: Advanced strategies for managing compliance and security.
  • Client-Side Data Migrations: Handling complex data migrations on the client side.
  • Forced Upgrading: Managing and implementing forced upgrades effectively.
  • App Size: Strategies to optimize and reduce app size for better user experience.
Link to Book→