Mobile System Design Foundations for app developers

Hitesh Kohli
4 min readJan 27, 2024
Photo by Lucas Santos on Unsplash

Understanding Mobile System Design

Mobile system design is one of those topics that sounds overwhelming to talk about. We as developers love to solve complex engineering problems and hate it when we can’t ship the favourite feature of our app. This love-hate relationship can be solved with the help of mobile system design.

So what is mobile system design and why should developers care about it?

Mobile system design is the study of developing apps that are convenient to use and high in quality. It forms the foundation of decisions that help app developers design and develop high-quality apps faster.

Therefore, if you want to level up yourself as an app developer. Mobile system design is essential to understand.

Foundations of Mobile System Design:

  • Apps should be governed by convenience and quality
  • Apps should help your users understand their problem
  • Apps should help users solve their problems not make a game out of it
  • App systems are designed like games

These were some of the foundations of mobile system design and decision-making. They are out of the scope of this article. Therefore I will write about them some other day.

Lessons in Mobile System Design:

Lesson1 — Prepare the Data Model

Data Model is the collection of all entities which are shown on the UI of the app. UI consists of multiple entities that are parsed from JSON and presented on the app. If we are not able to keep track of all the needed entities then it may slow down the development cycle. As we have go to and fro from the backend engineer to our client. Therefore, it is important to make a data model beforehand.

The data model gives shape to the JSON from the backend. If we are missing any entities in JSON then we easily compare it with the datamodel and find the missing ones. It results in faster decision-making and increases the speed of the development cycle.

Lesson -2 Understanding the Usecase of your app

We can understand the app’s use case with the help of our target audience. If our target audience is casual users, who will use the app for convenience then the app will be a utility app. If the target audience prefers to use it daily, for entertainment then it is an entertainment app.

The use case of our app will decide the different conditions of the app. For example — CPU usage, memory usage, landscape or portrait, etc.

Let us take an example:

If your app is a game then it's okay if it requires more space. If your app is a utility app like the MakeMyTrip app which will be used once in a while. Then it should not occupy too much space. Usage of space defines if the user decides to keep the app or delete it

Therefore lesson 2. Always make a plan before coding your app and try to estimate different use cases and how the app will function in different scenarios.

Lesson 3 — Understand the target audience of the app

Previously we have talked about the use case and understanding your targeted audience. The use case of your app and target audience go hand in hand with each other. The larger the target audience, the smaller the case of the app and vice versa.

Let us take an example:

If the app is like Instagram, it will be used on a scale of millions. The use case of the app becomes small. Here use case means the features that can be implemented into the app. Instargam has a broad audience therefore features surrounding one area can be implemented. Instagram can not play or experiment with other features as much.

Instagram — An online gallery to showcase your friends

Whereas if the app is used by a small audience. Like construction workers. Then the use case of the app becomes bigger. It means multiple features can be implemented into the app. For example in the case of construction worker’s app. We can include features to measure the height and width of a wall or portal to buy beams or wood material, etc.

Construction Worker app — Construction workers can use multiple features in an app which makes their work easier

These were broader mobile system design lessons.

I will go deeper in my next blog and talk more about the development side.

This is it for today. Thank you for reading. If I have written something wrong please forgive me.

If you want these blogs in your inbox

Here is an interesting newsletter for you ->



Hitesh Kohli

I will help you build distribution with apps |Building and Designing apps| Writing Newsletters 📩| Building @Developcommute & Niwa