Přeskočit na obsah
_CORE
AI & Agentic Systems Core Information Systems Cloud & Platform Engineering Data Platform & Integration Security & Compliance QA, Testing & Observability IoT, Automation & Robotics Mobile & Digital Banking & Finance Insurance Public Administration Defense & Security Healthcare Energy & Utilities Telco & Media Manufacturing Logistics & E-commerce Retail & Loyalty
Reference Technologie Blog Know-how Nástroje
O nás Spolupráce Kariéra
CS EN
Pojďme to probrat

Backend integrace

Mobilní klient propojený s celým ekosystémem.

Integrujeme mobilní aplikace s ERP, WMS, CRM a dalšími systémy — přes REST, GraphQL, WebSocket i legacy protokoly.

<200ms
API latence P95
99.9%
Uptime
<1s
Real-time delivery
OAuth 2.0 + PKCE
Auth security

Proč je backend integrace kritická

Mobilní aplikace bez backend integrace je izolovaný ostrov. Hodnota vzniká propojením — mobilní klient čte data z ERP, zapisuje do WMS, synchronizuje s CRM, přijímá notifikace z monitoringu. Bez kvalitní integrace je mobilní aplikace jen hezký formulář.

Integrace je také nejčastější zdroj problémů. Pomalé API, nekonzistentní kontrakty, chybějící error handling, security díry v autentizaci. Stavíme integrační vrstvu, která je rychlá, bezpečná a odolná vůči selhání.

REST API

Standard pro většinu mobilních integrací. Jednoduchý, předvídatelný, široce podporovaný.

Mobilní klient má specifické požadavky, které se liší od webového frontendu:

  • Minimální payload: Mobilní síť je pomalá a drahá. Žádné zbytečné fieldy, žádné nested objekty, které klient nepotřebuje. Sparse fieldsets (?fields=id,name,status).
  • Pagination: Cursor-based pagination pro stabilní stránkování při změnách dat. Offset-based pro jednodušší případy. Page size optimalizovaný pro mobilní UI (20-50 položek).
  • Caching: ETag a Last-Modified hlavičky. Conditional requests (If-None-Match, If-Modified-Since). 304 Not Modified šetří bandwidth. Cache-Control pro explicitní TTL.
  • Compression: Gzip/Brotli pro response body. Pro binární data (obrázky, dokumenty) server-side resizing podle požadovaného rozlišení.

API versioning

Mobilní klienty nemůžete aktualizovat naráz — uživatel může mít verzi starou měsíce. API musí podporovat backward compatibility:

  • URL versioning: /api/v1/orders, /api/v2/orders. Jasné, explicitní.
  • Backward-compatible evoluce: Nové fieldy přidáváme, staré neodstraňujeme. Nullable new fields.
  • Deprecation policy: Stará verze API funguje minimálně 6 měsíců. Sunset header informuje klienta. Analytika ukazuje, kolik klientů používá starou verzi.

OpenAPI specifikace

API definováno v OpenAPI (Swagger). Z jedné specifikace generujeme:

  • Klientský kód: OpenAPI Generator pro Swift a Kotlin — type-safe API klient, žádné ruční psaní network vrstvy
  • Dokumentaci: Automaticky generovaná, vždy aktuální
  • Mock server: Frontend tým vyvíjí proti mock API, nemusí čekat na backend
  • Contract testy: Ověření, že implementace odpovídá specifikaci

GraphQL

Když mobilní klient potřebuje flexibilní queries — různé obrazovky potřebují různá data ze stejných entit.

Kdy GraphQL místo REST

GraphQL řeší dva problémy REST:

  1. Over-fetching: REST endpoint vrátí celý objekt, klient potřebuje 3 z 20 fieldů. Mobilní síť přenáší zbytečná data.
  2. Under-fetching: Detail objednávky vyžaduje data z /orders/{id}, /customers/{id}, /products/{ids} — tři roundtripy. GraphQL to vyřeší jedním query.

Apollo Client (iOS/Android) s normalized cache. Automatická deduplikace dat v cache — order detail a order list sdílejí stejná data. Cache-first policy pro okamžitou odezvu, network pro aktualizaci.

Subscriptions pro real-time

GraphQL Subscriptions přes WebSocket pro real-time data:

  • Live tracking (poloha řidiče na mapě)
  • Chat zprávy
  • Status updates (stav objednávky se změní → UI se okamžitě aktualizuje)
  • Collaborative features

WebSocket a real-time komunikace

Pro use cases, kde data tečou v reálném čase a polling nestačí.

Architektura real-time komunikace

Connection lifecycle: 1. Autentizace přes HTTP (OAuth token) 2. Upgrade na WebSocket s tokenem 3. Heartbeat (ping/pong) pro detekci dropped connections 4. Automatic reconnect s exponential backoff 5. Message queue pro zprávy odeslané během reconnectu

Socket.IO vs native WebSocket: Socket.IO přidává automatic reconnect, room management, fallback na long-polling. Native WebSocket pro lightweight scénáře. Volba podle komplexity.

Use cases

  • Live tracking: Řidič sdílí GPS polohu každých 5s. Dispečink vidí pozici na mapě v reálném čase. Geofencing pro automatické notifikace.
  • Messaging: In-app chat, zákaznická podpora. Typing indicators, read receipts, delivery status.
  • Collaborative editing: Více uživatelů edituje stejný dokument. Operational Transform nebo CRDT pro conflict-free sync.
  • Live dashboards: KPI metriky aktualizované v reálném čase. Počet objednávek, revenue, alert status.

Autentizace a bezpečnost

OAuth 2.0 + PKCE

Standard pro mobilní aplikace. Authorization Code flow s PKCE (Proof Key for Code Exchange) — bezpečnější než Implicit flow, vhodný pro public clients (mobilní aplikace nemůžou bezpečně uložit client secret).

Token management: - Access token: krátkodobý (15-60 minut), v paměti - Refresh token: dlouhodobý, v secure storage (Keychain/Keystore) - Token refresh transparentní pro uživatele — žádné opakované přihlášení - Biometrická autentizace pro přístup k refresh tokenu

Ochrana komunikace

  • TLS 1.3: Veškerá komunikace šifrovaná
  • Certificate pinning: Aplikace akceptuje jen certifikáty s konkrétním public key. Ochrana proti man-in-the-middle i při kompromitované CA
  • Certificate rotation: Pinning s backup pinem pro plynulou rotaci certifikátů bez update aplikace
  • Request signing: HMAC podpis pro kritické operace (platby, schvalování)

Secure storage

Tokeny, credentials a citlivá data nikdy v plaintext:

  • iOS: Keychain Services s kSecAttrAccessibleWhenUnlockedThisDeviceOnly
  • Android: Android Keystore s hardware-backed keys (StrongBox na podporovaných zařízeních)
  • Šifrování dat: AES-256 pro lokální databázi s citlivými daty

Error handling a resilience

Mobilní síť je nespolehlivá. Integrace musí být odolná:

  • Retry policy: Exponential backoff pro transient errors (timeout, 503). Idempotency key pro bezpečné retry mutací.
  • Circuit breaker: Po opakovaných selháních circuit breaker zastaví requesty a vrátí cached data. Recovery probe periodicky zkouší, zda je backend zpět.
  • Graceful degradation: Pokud je backend nedostupný, aplikace funguje v offline režimu. UI komunikuje stav: „Offline — data mohou být neaktuální.”
  • Timeout policy: Connect timeout 10s, read timeout 30s, write timeout 30s. Konfigurovatelné per endpoint.

Technologický stack

Networking: URLSession (iOS), OkHttp/Retrofit (Android), Ktor (KMP), Apollo (GraphQL).

Serialization: Codable (Swift), kotlinx.serialization, Protocol Buffers, MessagePack.

Auth: AppAuth (OAuth 2.0 + PKCE), Keychain/Keystore, BiometricPrompt/LocalAuthentication.

Real-time: Socket.IO, Scarlet (Android), Starscream (iOS), native WebSocket.

API design: OpenAPI 3.1, GraphQL SDL, Postman/Insomnia, Pact (contract testing).

Časté otázky

REST pro jednoduché CRUD a stabilní kontrakty. GraphQL pro komplexní UI s mnoha relacemi a variabilními datovými požadavky. WebSocket pro real-time komunikaci. Často kombinujeme — REST pro CRUD, WebSocket pro live updates.

OAuth 2.0 s PKCE flow — standard pro nativní aplikace. Refresh token v secure storage (Keychain/Keystore). Biometrická autentizace pro opakovaný přístup. Certificate pinning proti man-in-the-middle.

Ano. SOAP, XML-RPC, proprietární protokoly. Stavíme API gateway nebo middleware vrstvu, která starší systémy obalí moderním API. Mobilní klient komunikuje jen s čistým REST/GraphQL.

URL versioning (/v1/, /v2/) pro major changes. Backward-compatible evoluce pro minor changes. Deprecation policy: stará verze funguje minimálně 6 měsíců po release nové. Feature flags pro postupný rollout.

Máte projekt?

Pojďme si o něm promluvit.

Domluvit schůzku