Blog Infos
Author
Published
Topics
Published
Disclaimer
Defining The Task
Gathering Requirements
Functional requirements
Non-functional requirements
Out of scope
High-Level Diagram

High-Level Diagram

Server-side components:
Client-side components:
Deep Dive
Deep Dive: API Service
1. Bi-directional Communication Layer
{
  connection_id: String?
  event_type: "HELLO|MSG_IN|MSG_OUT|MSG_READ|BUY"
  payload: { ... }
}

Job Offers

Job Offers


    Senior Android Software Engineer (f/m/d)

    Paradox Cat GmbH
    Munich
    • Full Time
    apply now

    Android Software Engineer (f/m/d)

    Paradox Cat GmbH
    Munich
    • Full Time
    apply now

    Android Test Automation Engineer

    Komoot
    Remote
    • Full Time
    apply now

OUR VIDEO RECOMMENDATION

, ,

From Scoped Storage to Photo Picker: Everything to know about Storage

Persistence is a core element of every mobile app. Android provides different APIs to access or expose files with different tradeoffs.
Watch Video

From Scoped Storage to Photo Picker: Everything to know about Storage

Yacine Rezgui
Android developer advocate
Google

From Scoped Storage to Photo Picker: Everything to know about Storage

Yacine Rezgui
Android developer ad ...
Google

From Scoped Storage to Photo Picker: Everything to know about Storage

Yacine Rezgui
Android developer advocat ...
Google

Jobs

2. HTTP-based layer
3. Cloud Messaging Layer
{
  user_id: String
  messages: [
    {
      user_name: String
      text: String
      created_at: String
    },
    ...
  ]
}
API Service Diagram

API Service Diagram

ChatMessageData:
+ id: String
+ user_id: String
+ text: String
+ status: String
+ created_at: Long
+ attachments: String // comma-separated list

Candidate: “You can convert it into a model object.”

ChatMessage
+ id: String
+ userId: String
+ text: String
+ status: ChatMessageStatus
+ createdAt: Date
+ attachments: [Attachments]
Deep Dive: Data Model

Entity-relationship “like” Diagram

ChatInfo:
+ chatId: String
+ lastUsername: String
+ lastUserProfileUrl: Url
+ lastMessageText: String
+ lastMessageTimestamp: Date
Deep Dive: Attachments
Follow-up Questions
Timestamps
Security & Privacy
Conclusion
Looking for more content?

YOU MAY BE INTERESTED IN

YOU MAY BE INTERESTED IN

blog
Below is a simple framework for Mobile System Design interviews. As an example, we…
READ MORE
blog
Study open-source projects — not every project is perfect but you can still learn…
READ MORE

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.

Menu