Zpět na domů

System Design pohovor pro Android/iOS

Průvodce absolvováním System Design pohovoru pro mobilní vývojáře. Popsány 4 etapy: shromažďování požadavků, high-level design, detailizace (Retrofit, Room, Hilt), shrnutí. Fokus na Clean Architecture a mobile specificích.

Jak hacknout System Design pro mobilní devs
Advertisement 728x90

Strategie úspěšného System Design pohovoru pro mobilní vývojáře

System Design pohovor testuje schopnost navrhnout škálovatelné mobilní aplikace s ohledem na specifika platforem Android/iOS. Kandidát dostane úkol navrhnout architekturu služby – například messenger, YouTube nebo Twitter – a za 45–60 minut ukáže svůj myšlenkový proces. Důraz je na metodice: upřesnění požadavků, vysokou úroveň architektury, detailizaci komponent a závěrečné shrnutí. Pro mobilní pozice se zaměřte na lokální cachování, optimalizaci UI, spotřebu baterie, bez hlubokého ponoru do shardingu databází.

Etapa 1: Shromáždění požadavků (5 minut)

Začněte upřesněním úkolu cílenými otázkami. Zapište odpovědi na tabuli (Miro, Draw.io, Excalidraw) pro fixaci. Před přechodem získajte potvrzení od pohovorového komisaře.

Klíčové otázky pro mobilní aplikaci:

Google AdInline article slot
  • Funkční požadavky: uživatelské scénáře, jádrové funkce (uživatelé, použití, prioritní možnosti).
  • Rozsah: jen klient nebo API/server?
  • Podpora zařízení: chytré telefony, tablety, Wear OS?
  • Minimální verze API (ovlivňuje funkce, např. Scoped Storage v Androidu).
  • Nefunkční: offline cache, push notifikace, autentizace.

Prodiskutujte hraniční případy: slabé připojení, nízká baterie, velké objemy dat. To ukáže praktický přístup středně pokročilého/senior vývojáře.

Etapa 2: Vysokou úroveň architektury (10 minut)

Nakreslete blokovou schému klíčových komponent. Pro Android se opírejte o Clean Architecture: rozdělení na vrstvy Presentation, Domain, Data.

Příklad základní schématu:

Google AdInline article slot
  • Presentation: ViewModel, Fragment/Activity, RecyclerView.
  • Domain: UseCase, Repository.
  • Data: ApiDataSource (Retrofit/OkHttp), LocalDataSource (Room/SQLite).
  • DI: Hilt/Dagger.

Rozšiřte podle zadání: přidejte ImageLoader (Coil/Glide), PushService (Firebase), Coordinator pro navigaci.

Komentujte volby nahlas: „LocalDataSource používáme pro offline-first, aby se minimalizovaly síťové požadavky a spotřeba datového provozu.“ Projděte uživatelskými toky, potvrďte schému s pohovorovým komisařem.

Etapa 3: Detailizace komponent (20 minut)

Projděte každý blok: popište implementaci, alternativy, kompromisy. Prioritizujte jádrové komponenty, ignorujte vedlejší bez otázek pohovorového komisaře.

Google AdInline article slot

ApiDataSource: Retrofit + OkHttp pro REST. Alternativa – GraphQL s Apollo.

Plusy REST:

  • Standard CRUD, stateless.
  • Jednoduchá implementace.

Mínusy pro mobil:

  • Samostatná spojení na požadavek (horší pro časté aktualizace).
  • Overhead serializace (JSON), Base64 pro binární data.

Volba Retrofit vyhovuje appkám bez real-time (počasí, sociální sítě bez chatu).

LocalDataSource: Room pro SQLite. Zajistí offline, cache s invalidací (např. TTL nebo event-based).

Repository: Jediný zdroj pravdy, koordinuje Api/Local. Příklad: nejdřív lokální čtení, sync s API na pozadí.

UseCase: Obchodní logika (třídění, filtry). Izoluje Domain od Data.

Presentation: ViewModel pro správu stavu (StateFlow/LiveData), RecyclerView s DiffUtil pro plynulé aktualizace.

DI: Hilt pro modulární injekci, minimalizuje boilerplate.

Prodiskutujte optimalizace: Coroutines/Flow pro async, Paging 3 pro nekonečné seznamy, WorkManager pro sync na pozadí.

Etapa 4: Shrnutí a Q&A (10 minut)

Shrňte: opakujte architekturu, zdůrazněte kompromisy, navrhněte metriky (latence <200ms, spotřeba baterie <5%/hodinu). Odpovězte na otázky pohovorového komisaře. Zeptejte se na své: o současné architektuře firmy, nástrojích.

Co je důležité

  • Proces je důležitější než dokonalá schéma: ukazujte uvažování, otázky, hraniční případy.
  • Mobilní specifika: důraz na offline, baterii, výkon UI (60fps), ne backend škálování.
  • Clean Architecture: vrstvy, jednosměrný tok dat, testovatelný kód.
  • Kompromisy: odůvodňujte volby (Retrofit vs GraphQL podle objemu dat).
  • Časování: 5-10-20-10 min, komunikujte jako rovnocenný.

— Editorial Team

Advertisement 728x90

Číst dál