Why Network conditions are unpredictable and why mobile systems should be design for imperfection?
Mobile apps operate in dynamic environments: elevators, subways, rural areas, and congested cities.
signal drops should be as seamless as possible.
What are the two tipes of networks in mobile systems?
Cellular Networks
Include 3G, 4G/LTE, and 5G.
Shared and variable: bandwidth fluctuates with coverage, congestion, and signal strength.
Users share capacity; performance degrades in dense or obstructed environments.
Wi-Fi in Mobile Context
Typically faster than cellular but unreliable when users move.
Frequent transitions (e.g. Walking out of a cafe) cause short outages or weak connections.
Devices may prefer Wi-Fi even when signal quality is poor, resulting in degraded performance.
Difference between cellular and WiFi?
Key constraints of networks in mobile devices?
Because of network constraints, mobile communications should be…. ?
Core principles of Recilient and Adaptive network connection in mobile systems?
List concrete techniques and architectures to solve connectivity issues:
Problem:
A user completes a multi-step loan form in a banking app. During submission, the device switches networks and loses connectivity.
What protocols are use to comunicate mobile clients with services and data?
Communication occurs via APIs, typically over TCP/IP and secured with TLS (HTTPS).
Describe the basic communication flow in mobile apps with servers.
Note: Mobile platforms (e.g., iOS URLSession, Android OkHttp) abstract this process, allowing developers to make simple API calls without handling low-level networking logic.
What is HTTP?
Hypertext Transfer Protocol
HTTP is a stateless, application-layer protocol that underpins most mobile communication. It operates through a request-response model.
Clients send requests using commands like GET, POST, or DELETE.
Servers process the request and return structured data (e.g., JSON).
List all HTTP methods
Key point: Method choice defines how data is transmitted and whether caching or retries are possible.
Parts of the structure of a HTTP request
Parts of the structure of a HTTP response
Status Line: Includes HTTP version and status code (e.g., HTTP/1.1 200 OK).
Headers: Describe returned content type, length, and caching info.
Body: Carries the requested data (e.g., JSON response).
Security Note: HTTP transmits data in plain text. HTTPS (TLS/SSL) encrypts all parts of the message, protecting data integrity and privacy.
What is Remote Procedure Call architecture (RPC)?
RPC allows clients to invoke functions on a remote server where resources are distributed among different services running on remote machines as if they were local calls—ideal for service-to-service or tightly coupled system communication.
The table below elaborates on the individual components of a Remote Procedure Call
How does RPC works?
RPC follows a request-response model. The client initiates a call, and data is packed and forwarded to the RPC runtime. A network connection is established to transmit the request to the remote server. The server processes the request, and sends back the response through the same process.
Why websockts are better thatn RPC?
. WebSockets provide a more suitable alternative for real-time, continuous, and bidirectional communication, essential in features like messaging, live updates, and gaming.
How do webSockets work?
WebSocket enables full-duplex, bidirectional communication over a single persistent TCP connection—ideal for real-time apps (e.g., messaging, gaming, live updates).
Describe the different use cases of HTTP, RPC and WebSockets
HTTP: Universal, simple, and ideal for standard request-response APIs.
RPC (gRPC): Efficient and structured, best for backend or microservice interactions.
WebSocket: Real-time and continuous communication for user-facing features.
Describe the communication flow of webSockets
What architectural styles dominate the communication between mobile apps and backend services?
REST, GraphQL, and gRPC
Describe the architectural style properties
Performance -Scalability -ease of development -portability -maintenance
Performance Must handle high request volume without bottlenecks.
Scalability Should easily expand in features or server capacity.
Ease of Development Simplicity and familiarity accelerate development.
Portability Adaptable across environments (mobile, web, desktop).
Maintenance Support Backed by tools, community, and documentation.
What is REST?
Representational State Transfer
A widely adopted architectural style that defines constraints for scalable, reliable, and efficient client-server interactions—particularly suitable for mobile apps facing network variability and limited resources.