An essential read for anyone working in mobile development
Gergely started writing this e-book when he realized that despite working at a mobile-first company, most of his leadership did not fully grasp just how challenging mobile development can be — especially when it comes to apps used by millions of people.
The final result turned out to be a missing guide that deserves a place on every mobile developer’s bookshelf. Upon reading it, not only will you have a deeper understanding of app complexity and how things work under the hood, but you’ll also find useful tips for stepping up your game and approaching app architecture in scaling teams.
You can download the e-book for free, with bonus content here.
Part 1 — Challenges Due to the Nature of Mobile Applications
- Building mobile applications comes with a set of challenges: platform fragmentation, a constantly changing toolset, and a different ecosystem.
- Developing apps for mobile is complicated by having to deal with state management, a long tail of old app versions, push notifications, deeplinks, or third-party libraries and SDKs, and so on.
- Teams can increase their confidence in their releases by finding the right approach to tackle these challenges — including implementing the right CI, integrating feature flags, crash reporting, and optimizing release strategies.
Part 2 — Challenges Due to App Complexity
- Mobile applications have a more variable navigation architecture compared to web applications.
- As apps become larger in size, the need to make the app more modular and to build it from separately tested and trusted components becomes more essential.
- Different types of automated tests improve the robustness and reliability of apps, by being repeatable automatically and by maintaining code coverage, which helps prevent regression areas.
Part 3 — Challenges Due to Large Engineering Teams
- Scaling a team drives a lot of challenges, from early on in the planning phase all the way to deployment. As your team grows, you always need to find the architecture, tools, and platforms that support you in tackling these challenges and building a scalable app faster.
- Breaking the app down into smaller testable and isolated components and building a cross-platform architecture framework can help minimize the global states and decisions structured around the business logic.
- Mobile companies should consider creating a platform team to be responsible for app infrastructure, release management, developer tooling, architecture, SDKs, and internal library ownership.
Part 4 — Languages and Cross-Platform Approaches
- The languages and frameworks used to create mobile applications constantly evolve with some leading tools losing popularity and fading into the background over time.
- With the two main platforms — iOS and Android — to cater for, there are always tradeoffs between platform-specific tools and cross-platform tools, such as Flutter or React Native.
- There are a wide range of things to consider when adopting a new language, including the maturity of the language and the difficulties of migrating existing code.
Part 5 — Stepping Up Your Game
- To be able to build the best-quality apps for millions of customers, world class apps increasingly conduct experiments, implement in-house tools, and integrate third-party tools and feature flags.
- Mobile teams should start thinking about performance monitoring to fix issues in the early stages, but monitoring and alerting the mobile apps should run deeper than just detecting crashes.
- Code coverage and test automation should never be ignored and can significantly improve the quality of your app.
If you’d like to get the full picture, you can download the complete e-book with bonus content, including Developer Advocate insights and perspectives on the challenges, written by Moataz Nabil, Kevin Toms, and more.