Building Mobile Apps at Scale 39 Engineering Challenges

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

This book collects challenges engineers face when building iOS and Android apps at scale. By scale, I mean having numbers of users in the millions and being built by large engineering teams. These teams launch features continuously and still ensure the app works reliably, and in a performant way. This book is a summary of the current industry practices used by large, native mobile teams and points to some of the common approaches to tackle them. Much of the experience conveyed in this book comes from my time working at Uber on a complex and widely-used app. More than 30 other engineers working in similarly complex environments have contributed their insights; engineers building apps at the likes of Twitter, Amazon, Flipkart, Square, Capital One and many other companies.

Author(s): Gergely Orosz
Edition: v 1.01
Publisher: www.mobileatscale.com
Year: 2021

Language: English
Pages: 134
Tags: iOS Android Mobile Development

Introduction
Acknowledgements
About the Author
Sponsors
When Things are Simple

PART 1: Challenges Due to the Nature of Mobile Applications
1. State Management
2. Mistakes Are Hard to Revert
3. The Long Tail of Old App Versions 4. Deeplinks
5. Push and Background Notifications 6. App Crashes
7. Offline Support
8. Accessibility
9. CI/CD & The Build Train
10. Third-Party Libraries and SDKs
11. Device and OS Fragmentation
12. In-App Purchases

PART 2: Challenges Due to App Complexity
13. Navigation Architecture Within Large Apps
14. Application State & Event-Driven Changes
15. Localization
16. Modular Architecture & Dependency Injection
17. Automated Testing
18. Manual Testing

PART 3: Challenges Due to Large Engineering Teams
19. Planning and Decision Making
20. Architecting Ways to Avoid Stepping on Each Other’s Toes
21. Shared Architecture Across Several Apps
22. Tooling Maturity for Large Engineering Teams
23. Scaling Build & Merge Times 72
24. Mobile Platform Libraries and Teams

PART 4: Languages and Cross-Platform Approaches
25. Adopting New Languages and Frameworks
26. Kotlin Multiplatform and KMM
27. Cross-Platform Feature Development
28. Cross-Platform App Development versus Native
29. Web, PWA & Backend-Driven Mobile Apps

PART 5: Challenges Due to Stepping Up Your Game
30. Experimentation
31. Feature Flag Hell
32. Performance
33. Analytics, Monitoring and Alerting 34. Mobile On-Call
35. Advanced Code Quality Checks 36. Compliance, Privacy and Security 37. Client-Side Data Migrations
38. Forced Upgrading
39. App Size

Closing Thoughts