Skip to content

A series with complete breakdown of everything you need to learn in mobile system design

License

Notifications You must be signed in to change notification settings

SwiftAnytime/Mobile-System-Design-Interview-Guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

Mobile System Design Interview Guide

A series with complete breakdown of everything you need to learn in mobile system design. We update this repository every week.

📌 What is Mobile System Design?

Mobile System Design is one of the 3 main technical rounds in any iOS job Interview. System design as the word suggests "designing a system" and here system means "application/software". This is simply a key term used to summarise all the moving parts involved in the overall development of a mobile application.

There are mainly 2 categories in which we can divide all the sub-parts involved in mobile system design.

  • High Level Design
  • Low Level Design

High Level Design :

High level design consists system architecture, database design, server client relationship etc. Some important topics that one should definitely learn are:

  1. Local Storage
  • Keychain Access
  • User Defaults
  • NSCache
  • CoreData
  1. API Design
  • Types of HTTP request methods
  • Uploading and downloading media using API
  1. WebSockets & Polling
  • Polling & Long Polling
  • WebSockets
  1. Push Notifications
  • Notifications Architecture
  • Local Notifications
  • Rich Push Notifications
  • Silent Notifications
  1. Infinite Scroll

  2. Remote Storage

Low Level Design :

Low level design deals with breaking down the high level design into more actionable and programmable parts. It involves data structures, algorithms, design patterns etc. Some most important topics to learn are:

  1. Architecture Design
  • MVC
  • MVVM
  1. Design Patterns
  • Factory Pattern
  • Builder Pattern
  • Observer Pattern
  • Coordinator Pattern
  • Singleton Pattern
  1. Application knowledge of SOLID Principles

  2. Dependency Injection

  3. Multi-threading

📌 What are the expectations of an Interviewer?

Now that we understand what is needed to learn Mobile System Design, let’s talk about the expectation of an Interviewer from the candidate. The interviewer will judge the candidate on the basis of these 3 points primarily :

Thinking Ability

  • Ask questions to interviewer to clarify your doubts regarding the problem.
  • Ask about the feature constraints.
  • Note down, Functional and Non-functional requirements of the problem.

Problem Solving Mindset

  • Start with drawing the High Level Design.

Quality of Solution

  • Talk about Data Models and API design.
  • Draw the Low level design of the app feature.

What they don’t expect is, that you have to build a completely coded application right at the moment. The interviewer will start with asking you a specific question and will keep changing the constraints of the problem statement to understand you even better.

📌 How should you prepare for Mobile System Design round?

An Interviewer mostly ask the candidate a specific feature out of the mobile application design.

For example: “How will you design Instagram Reels like feature in your app?”

Here you don’t need to know or think of how to design the whole Instagram app, your focus needs to be only on the given problem statement i.e. how to design Instagram Reels in an app.

In order to answer such question, you have to have prior experience with either implementing such feature or understanding of the frameworks and modules involved. If you have neither build such feature nor have the understanding of the tech stack involved then either you are a junior iOS dev or you haven’t exposed yourself to good opportunities yet.

But don't worry, we have a good news for you, we are going to start publishing a completely free video series on our Youtube that will help you learn mobile system design concepts.

We have recently launched the pre-order release of our new course "Cracking Mobile System Design Interview" that touch upon each and every aspect of Mobile System Design in detail and help you become a real Mobile System Design superstar💪🏻

Pre-order now and get an exclusive FLAT 40% off using the code COMMUNITY-ANYTIME [..offer ending on 25th March,2024⏳]

About

A series with complete breakdown of everything you need to learn in mobile system design

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published