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.
“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.”
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.”
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.
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.
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.
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.
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.
Connect with Tjeerd
Just started reading “Mobile System Design” by @tjeerdintveen— the softcore engineer (@SoftcoreEngnr) September 6, 2023
Thoroughly impressed by the first chapter itself. Cannot wait to complete it and infuse all the learnings.
I have a system design interview coming up for iOS in about 3 weeks. Anyone available to help me practice? I’ve been reading this https://t.co/hbUETCKrrj and it’s been very helpful :)— Taylor Simpson (@phzytaylor) January 22, 2024
Exploring @tjeerdintveen's https://t.co/byhJdiTZiS for the second time as it updates. It's a valuable resource for mobile engineers at any level, significantly aiding my project work. Even received direct help from Tjeerd on an occasion! #MobileEngineering #iOS— Edvinas Gestautas (@edvinasges) February 2, 2024
13 of 19 chapters available today.
Receive the full book once finished.
What you'll get:
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.