The mobile engineering book that every app developer should read.

Improve the way you work and strengthen your skills as an experienced mobile engineer.

13 of 19 chapters already available today.

This early release edition is an unedited work-in-progress. You can already read 13 chapters by buying the book today and you will receive new chapters as soon as they are finished. When the book is finished in 2024 (estimated), you will receive the full, polished, edited version.


Are you preparing for a System Design interview?

Be sure to check out Chapter 2: Turning a briefing into a strong plan. Available in the book sample for FREE.

It will aid you in converting a briefing into a comprehensive high-level technical design.

Then read Chapter 3: Holistic-Driven Development — available in the book — to demonstrate how to translate a design into a program from scratch.

What the experts are saying


Donny Wals

iOS engineer, Speaker, Author of Practical Concurrency and Practical Combine.

“This book takes a step back to focus on the core principles behind good system design for mobile apps, and really helps to peel back the layers of what good code design should look like.”

Marie Denis

Entrepreneur, Women Make creator, former iOS engineer at Twitter.

“Overall, I found it user-friendly, easy to read. I particularly like the concrete project example, which realistically mirrors a day-to-day work scenario. The approach is practical.”

Hugo Visser

Google Developer Expert for Android, Main robot at Little Robots

“If your team is struggling with code patterns or arguing about architectures, this book provides valuable advice to get back to actually shipping features.”


Don't just be busy. Deliver.

Stop getting stuck in a difficult codebase that's hard to modify. Learn how to keep a growing codebase nimble and easily adjustable so that you can focus on delivering features.

Learn to be more resourceful in your engineering practice when working with constraints, such as dealing with limited information and available time.

Having this newly acquired knowledge will allow you to make swifter and smarter technical decisions for your team or at your company.

Gain knowledge that you can apply instantly

You will cover the process of creating a feature from scratch — all the way to delivering large-scale solutions.

Each step of this process is explained in depth and in detail; This approach is tailor-made for the mobile engineer.

The book's process strongly resembles those that exist in a real-life working environment, whether that's a small team or multinational enterprise.

By making use of this practical approach, it allows you to learn tangible skills and knowledge that you can apply to your own work the very next day.

The book is suited for all mobile platforms.

Strengthen and improve your skillset

System Design is becoming an increasingly standard aspect of the interview process and a responsibility of mobile engineers in terms of their expected skillset and competencies.

Use this book to build on your current skills to improve your day-to-day work and prove that you can handle difficult requirements for mobile apps.

Confidently move away from building small features by showing that you can deliver app-wide solutions.

What's inside

TABLE OF CONTENTS

1. About this book

2. Turning a briefing into a strong plan

3. Holistic-Driven Development; Turning a plan into code

4. System-wide testing; Delivering higher quality apps

5. Cross-domain testing; Testing more with less effort

6. Dependency Injection foundations

7. Sane Dependency Injection without fancy frameworks

8. Dependency injection on a larger scale

9. UI frameworks, architectures, and supporting multiple products

10. Delivering reusable UI views; The art of decomposing a design

11. Reasoning about Views, Components, Screens, and Bindings

12. Pragmatically implementing UI

13. Delivering self-sufficient features, part I; The art of staying nimble


Subject to change, coming in 2024 ⬇️


14. Delivering self-sufficient features, part II; Data loading techniques

15. UI navigation flows

16. Nurturing a Design System

17. Large-scale app architectures

18. Quality assurance and testing strategies

19. Applying the methodologies to your own work

Tjeerd has put together the definitive book to building a mobile app for large and small companies alike.

Leo Dion (Host of Empowerapps podcast)

About the author

Tjeerd in ’t Veen is a mobile engineer who challenges the way we create mobile applications.

Having gained experience as a staff engineer at Twitter and as a mobile tech lead at ING international bank, he possesses expertise in developing mobile applications with scalability, adaptability, and robustness.

Tjeerd is the author of the highly-rated book Swift in Depth. You can visit his blog on swiftindepth.com.

Connect with Tjeerd

From the community


Buy the book

Early release edition

13 of 19 chapters available today.

Receive the full book once finished.


What you'll get:

  • The eBook in PDF and ePUB formats
  • 19 chapters total or more
  • Currently at 302 pages (and counting!)
  • Free lifetime updates
  • Receive chapters as soon as they're released
  • Full book available in 2024 (estimated)

Free preview

Frequently Asked Questions

What is an early release edition?

This book is a work in progress, each chapter is released one by one. If you buy the book today, you will be able to read all finished chapters. Once the book is finished, you will get the definitive, edited, book containing all chapters.

What is System Design, is it UI related?

System Design is about technical design. It's about coming up with all the components, API's, and architecture necessary to make a mobile app work. This book will cover the technical design of various components across multiple abstractions and domains.

Is there UI in this book?

This is not a traditional "UI Book" where we cover components and how to style them.

However, the book does cover many important topics related to UI. Such as creating a design system, delivering reusable components, component abstractions, and how to reason about UI architectures.

Is this book focusing on interviews or building an app?

It assists you with both. In this book we'll go over the processes of turning requirements into a robust feature all the way to a modular codebase. Along the way you'll learn mental models that you can apply to your own application and interviews.

This book is not a template to common approaches however. The books' aim is to give you tools so you can solve any problem, not just pre-rehearsed problems.

This way, you can handle any problem that's thrown at you during the system design interviews.

Is this book for Android, Flutter, or iOS engineers?

All mobile engineers! That includes Android, iOS, Flutter, and Hybrid solutions such as React Native.

The book uses iOS and Swift as a vehicle to explain concepts and best practices. Where necessary, the book explains specific Swift keywords.

If you’re Android engineer: Rest assured that Swift reads similar to Kotlin in many ways. With little effort, you'll be able to understand the Swift code examples.

If I already make apps, is this book for me?

Absolutely. The book assumes you're already a developer working on apps, or about to become one. If you’re a senior or junior engineer, then this book is written for you.

I have never even made an app, is this book for me?

The book is aimed at people that have at least some experience in the app-development world. 
However, if you've never made an app before, this book will show you what the process entails.

Is this an eBook or printed book?

This product is an eBook. Offered in both ePUB and PDF formats.

Will there be a printed book version?

It is being considered. But the initial goal is to make the eBook available first.

Is this a programming book?

Sort of, but not really. The book covers the process of developing a mobile application. However, it's not a "code book". The book uses Swift to show concepts and how to implement something on a code-level. But it won't show you how to make a complete app from scratch.

It uses code as a vehicle to explain ways of thinking and how to get things done. But this book is more about mental models and avoiding pitfalls. It's about making better choices at every step of the process. From a requirement to a full-fledged, tested, implementation.

What does the subtitle “Resourceful engineering" entail ?

Developing a mobile application has a wide range of topics, from building a small view to maintaining a giant modularized application using a variety of tooling. The term "system design" can encompess even more, from interviews, to architectures, to shared code solutions such as hybrid, a Rust core layer, or Kotlin Multiplatform.

With Resourceful Engineering we refer to a very common, yet local, process in an app codebase, which is 'getting requirements and having to deliver a solution, features, and various components'

In reality, this means you have to move forward despite not knowing all the answers. Making strong choices with limited information is key.

To be resourceful means to be making the best out of the situations with the limited resources that you have.

In this case, that means you will learn to make good decisions at each step of the feature development process. During this process, we’ll try to get all the answers, find the hidden details, and work in such a way, so that our code can adapt to new (unforeseen) requirements.

Help, I can’t afford this book!

If you’re a student or in an unemployed situation, contact me at [email protected], and we can talk options and discounts.

What if I buy it and don't like it?

Send an email to [email protected] within 15 days from the purchase and you will get a refund. No questions asked.