Popis architektury, API a použitého stacku mobilní aplikace.
Mobilní aplikace komunikuje přes HTTPS s REST API vrstvou portálových aplikací. Náš intranet tedy slouží jako middleware mezi mobilním klientem a SAP backendem, odkud mobilní aplikace získává data přes RFC volání.
Business data, RFC function modules
Registrace zařízení a výměna tokenů
HttpServlet + JPA / EJBSpráva registrací — portálový frontend pro generování tokenů, QR kódů a revokaci
JAX-RS + portálové UICRUD nad výkazy, projektový strom, otevřená období — data z SAP přes RFC
JAX-RS + SAP RFCNativní iOS a Android aplikace
Expo / React NativeMobilní aplikace nepoužívá klasické přihlášení heslem nebo certifikátem. Místo toho uživatel autorizuje své zařízení jednorázově přes intranet, kde už má platnou session.
Token nenahrazuje uživatele — slouží pouze k autorizaci zařízení a nahrazuje uživatelský certifikát. Systém pracuje se třemi typy tokenů s různou platností a účelem.
V portálové aplikaci Remote Devices si uživatel spravuje svá registrovaná zařízení — generuje registrační tokeny, přejmenovává zařízení a v případě potřeby revokuje přístup.
| Typ tokenu | Platnost | Účel |
|---|---|---|
| REGISTRATION | 10 minut | Jednorázová výměna za refresh token — zobrazuje se jako QR kód |
| REFRESH | 365 dní | Uložen v zařízení, slouží k opakovanému generování access tokenů |
| ACCESS | 5 minut | Krátkodobý token posílaný jako Bearer header v každém API requestu |
Z_MBC_MID_TOKENS
Tokeny (registration, refresh, access)
Z_MBC_MID_REGISTRATIONS
Registrace zařízení
Uživatel provede registraci zařízení pouze jednou. Poté se aplikace autorizuje automaticky pomocí uloženého refresh tokenu.
Uživatel v portálové aplikaci Remote Devices vygeneruje jednorázový registrační token s platností 10 minut.
POST /registrationsRegistrační token se v aplikaci zobrazí formou QR kódu.
Uživatel naskenuje QR kód kamerou mobilního zařízení. Aplikace extrahuje registrační token.
expo-cameraMobilní aplikace zavolá API portálového Login modulu a vymění registrační token za refresh token. Registrační token okamžitě expiruje.
POST /registrationRefresh token je uložen v šifrovaném úložišti zařízení spolu s UUID identifikátorem zařízení. UUID je zároveň uloženo v portálové databázi u záznamu registrace.
expo-secure-storePomocí refresh tokenu si mobilní aplikace na pozadí generuje krátkodobý access token.
POST /tokenAccess token se posílá jako Bearer header v každém requestu na portálové API.
Po expiraci access tokenu aplikace tiše provede obnovu pomocí uloženého refresh tokenu. Mechanismus zahrnuje deduplikaci souběžných požadavků.
Registrace zařízení a správa tokenů
Správa registrovaných zařízení a identita uživatele
CRUD operace nad výkazy, projekty a obdobími
Aplikace je postavená na Expo SDK 55 s file-based routingem. Každá knihovna v seznamu řeší konkrétní funkční požadavek.
Framework a file-based routing. Auth gate v layoutu, skupiny (app)/(tabs) pro navigační strukturu.
Core runtime. Nová architektura, jeden codebase pro iOS i Android.
GPU-akcelerované fluid animace v headeru. Canvas, Path, RuntimeShader pro GLSL post-processing, particle systém s blur + threshold pipeline.
Off-UI-thread animace. Logo reveal se spring sekvencí, shared values jako bridge pro Skia paths, splash screen fade.
QR skenování při prvním přihlášení. CameraView s barcode filtrováním pouze na QR kódy.
Šifrované úložiště pro refresh + access tokeny a UUID zařízení. Keychain (iOS) / Keystore (Android).
Akcelerometr pro fluid fyziku. Detekce náklonu s dead-zone a smoothingem, dual-mode frekvence (active 30 Hz / idle 5 Hz).
Nativní frosted glass UI. GlassView pro FAB a navigační karty, fallback na semi-transparent pozadí pro starší platformy.
Infrastruktura pro navigační gesta. GestureHandlerRootView obaluje celou aplikaci.
Animované MIBCON logo. SVG paths s Reanimated spring reveal efektem a clip-path animací.
Gradient overlays pro UI prvky a přechodové efekty v rámci aplikace.
Nativní screen kontejnery pro výkon navigace. Každá obrazovka je nativní view, ne React wrapper.