Evakuační zavazadlo je tradiční součást krizové připravenosti domácnosti -
kufr nebo batoh s vodou, jídlem, doklady a lékárničkou, který má rodina po ruce,
pokud musí během několika minut opustit byt. Problém není v tom, co do něj patří:
seznamy kolují od HZS ČR i civilních iniciativ. Problém je v udržování. Voda
a trvanlivé potraviny mají expiraci, léky se mění s předpisem, baterie v detektoru
kouře je potřeba občas zkontrolovat a doklady je dobré mít fotograficky zálohované
po každé výměně. V papírové nebo excelové podobě tenhle checklist reálně vydrží
aktuální jen pár týdnů po sestavení.
Aplikace Ember Omnia (pracovní název projektu: Evakuační zavazadlo) řeší tenhle problém jako živý inventář - eviduje, co domácnost má mít, kolik toho reálně má, kdy jí to začne expirovat a co je potřeba pravidelně kontrolovat. Cílí na jednotlivce i rodiny (dospělí, děti, senioři, domácí mazlíčci) a je stavěná jako offline-first: appka musí fungovat bez připojení, protože v krizové situaci nemá spoléhání na internet smysl. Appka je teď dostupná jako webová appka (PWA) na blog.myscriptorium.cz/en/apps/evac/ - kdokoliv si ji může zdarma vyzkoušet, aktuálně v testovacím provozu. Paralelně vzniká i nativní verze pro Android, které se věnuje závěr článku.
Od nápadu k zadání
Vývoj začal klasickým product-requirements procesem - autor s Claude si nejprve ujasnili rozsah fáze 1 formou MRD dokumentu: jedno zařízení bez cloud synchronizace, jeden profil na uživatele, offline-first provoz mimo záložku s novinkami. Onboarding flow dostal pevný tvar: uvítací obrazovka, nastavení domácnosti (počet dospělých, dětí, seniorů, domácí zvířata podle druhu, doba udržitelnosti 48 hodin až 10 dní nebo vlastní hodnota), výběr šablon kategorií k importu, automatický přepočet množství podle profilu a nakonec dashboard.
Datový model byl navržen tak, aby zvládl škálovat na víc profilů později, i když fáze 1 počítala jen s jedním. Mimo scope byly od začátku explicitně vyřazeny: multi-profil, cloud sync mezi zařízeními, OCR čtení expirace z fotky dokladu, lokalizovaný feed zpráv podle polohy a sdílení profilu mezi uživateli - všechno odloženo do fáze 2.
Na startu zůstaly tři otevřené otázky: jakou platformu zvolit (nativní, nebo cross-platform), odkud brát zdroj krizových zpráv a jaký vizuální styl appka dostane. Padla shoda na řešení „klidné, důvěryhodné" - s volbou light/dark/color témat a bez plošné „panika-červené" barvy, vyhrazené jen pro skutečně kritické stavy.
Datový model a šablony
Jádrem appky je seed soubor s předpřipravenými šablonami - JSON struktura
verzovaná přes template_version, rozdělená do osmi kategorií:
Doklady a finance, Voda, Trvanlivé jídlo, Lékárnička, Technika a nářadí,
Hygiena, Oblečení, Ostatní a podmíněná kategorie Domácí mazlíčci, která se
importuje jen když profil obsahuje alespoň jedno zvíře.
Každá položka má typ - spotřební, trvalá, dokument nebo úkon - a appka s ní podle typu jinak zachází. Spotřební položky (voda, jídlo, léky) mají definovanou spotřebu na osobu a den; z ní appka při onboardingu spočítá požadované množství podle vzorce:
Trvalé a dokumentové položky (hasicí deka, multifunkční nůž, kopie rodného listu) se podle dnů neškálují - jen podle počtu osob nebo zvířat, případně mají pevné množství. Položky typu úkon (kontrola nádrže v autě, výměna baterie v detektoru kouře, aktualizace fotek dokladů) nemají expiraci, ale interval kontroly ve dnech, ze kterého appka odvozuje připomínku od data poslední kontroly.
Výsledný stav položky appka odvozuje sama: OK, chybí, brzy expiruje, expirováno nebo ke kontrole. Po importu může uživatel kteroukoliv vypočtenou hodnotu ručně přepsat, vypnout škálování a zadat pevné množství, nebo si založit vlastní kategorii a položku od nuly.
Co appka aktuálně umí
První spuštění appky provede uživatele čtyřkrokovým průvodcem. Nejdřív appka zjistí složení domácnosti - počet dospělých, dětí, seniorů a domácích mazlíčků (s výběrem druhu: pes, kočka, jiné) přes jednoduchá +/− počítadla. Následuje volba doby udržitelnosti zásob (48 h, 72 h, 5, 7 nebo 10 dní, případně vlastní počet dní). Třetí krok nabízí výběr kategorií šablon k naimportování a poslední krok je shrnutí, po jehož potvrzení se množství rovnou přepočte podle zadaného profilu a appka otevře Dashboard. Kterékoliv vypočtené množství jde po importu kdykoliv ručně upravit u konkrétní položky.
Hlavní obrazovka, Přehled, ukazuje procentuální připravenost zavazadla, sekci Vyžaduje pozornost s položkami, které chybí, brzy expirují nebo je potřeba zkontrolovat, a přehled kategorií s vlastní procentuální připraveností každé z nich. Uživatel může kdykoliv přidat vlastní kategorii; uvnitř kategorie jde položky přidávat, editovat i mazat. U každé položky appka eviduje typ, jednotku, požadované a aktuální množství, nepovinné datum expirace, vlastní předstih upozornění, interval kontroly u úkonů, poznámku a fotku.
Z Přehledu appka přepíná do Checklist módu - zjednodušeného zobrazení pro reálnou evakuaci. Ten drží jen checkboxy sbaleno/nesbaleno s procentuálním průběhem balení a tlačítkem Odškrtnout vše, bez jakékoliv možnosti editace: rychlá orientace ve stresu.
Samostatná záložka Novinky zobrazuje feed krizových a zpravodajských zpráv s ručním obnovením. V aktuální testovací verzi je zdrojem pro všechny uživatele jednotně BBC World News; appka počítá s vlastním feed enginem s uživatelsky nastavitelnými zdroji do budoucna.
Nastavení, personalizace a zálohy
Nastavení dovolují appku doladit k obrazu svému. Kromě přepínače jazyka a výběru z vizuálních témat - appka navazuje na patnáct barevných variant s vlastními fonty a CRT scanline efektem pro retro témata, které vznikly na původní webové verzi - jde tu upravit i profil domácnosti (dospělí, děti, senioři, mazlíčci, doba udržitelnosti). Testovací verze má jedno omezení: změna profilu zatím zpětně nepřepočítává množství u už existujících položek, ty je potřeba upravit ručně.
Notifikace se nastavují globálně (výchozí počet dní předstihu před expirací) i individuálně u konkrétní položky. Fungují ale nestejně napříč platformami: appka umí jednou denně upozornit na expiraci nebo kontrolu i bez otevření, ale jen když je nainstalovaná přes Chrome nebo Edge na Androidu nebo na desktopu - a i tam záleží na tom, jak často prohlížeč úlohu na pozadí skutečně spustí. V Safari na iOS to bez vlastního serveru nejde; appka tam upozorní vždy jen při otevření.
Appka dál umožňuje upravit koeficienty přepočtu spotřeby pro dítě a seniora (jako podíl spotřeby dospělého), jedním klikem označit roční revizi zavazadla jako hotovou a pracovat s daty i mimo appku - export zálohy do JSON souboru, jeho zpětné nahrání, nebo úplné smazání dat a start od nuly.
Instalace a testovací provoz
Appka běží jako Progressive Web App na blogu autora, na adrese blog.myscriptorium.cz/en/apps/evac/ - statickém webu postaveném z GitHub repozitáře a nasazovaném přes Vercel. Aktuální testovací verze nese označení RCv0.771 a appka je otevřená komukoliv, kdo si ji chce vyzkoušet zdarma, bez registrace.
Na Androidu a desktopu nabídne PWA appka instalaci na plochu přímo tlačítkem v nastavení; pokud už nainstalovaná je, nastavení to potvrdí zaškrtnutím. Na iPhonu a iPadu appka instalaci sama nabídnout neumí - funguje to jen přes Safari (ne přes Chrome na iOS) a vyžaduje tři ruční kroky: klepnutí na Sdílet, výběr Přidat na plochu a potvrzení. Nainstalovaná appka běží kompletně offline, s výjimkou stahování novinek.
Android verze
Vedle webové appky vzniká paralelně i nativní verze pro Android - Ember Omnia
(Kotlin, Jetpack Compose, Room, WorkManager; balíček cz.ember.evakuace),
aktuálně již veřejně vydaná na Google Play všem zdarma. Instalovaná appka jde dál než PWA:
přidává modul World Health - kompozitní skóre globálního rizika portované
z autorova webu newsandradio.cz,
nabízí i jiné funkce - chrání citlivá data PIN zámkem a zálohuje je jako ZIP archiv.
Aplikace je ve vývoji a kromě opravování chyb budeme rozvíjet i další funkce.
Nativní appka je zamýšlená jako referenční, hlavní verze - webová appka na blogu se aktualizuje ručně a podle potřeby, ne automaticky, takže může proti Androidu mírně zaostávat.
Appku si můžete rovnou vyzkoušet na blog.myscriptorium.cz/en/apps/evac/. A pokud vás baví středověká atmosféra, vyzkoušejte hru Scriptorium.