Moje

Myslivost

Zpět na hlavní stránku

Historie verzí

Changelog

Přehled všech podstatných změn, oprav a nových funkcí v každé verzi aplikace.

1.0.6

7. 7. 2026 Aktuální
Zabezpečení
  • ▸Přátelství se schvalováním — přidání přítele nyní probíhá přes žádost, kterou musí druhá strana přijmout. Nikdo si vás nemůže přidat ani vám posílat oznámení bez vašeho souhlasu; přátele nově vidíte oboustranně
  • ▸Soukromí fotografií — fotky záznamů jsou nově v neveřejném úložišti a zpřístupňují se pouze přes dočasné odkazy oprávněným uživatelům; zrušením sdílení přístup k fotkám zaniká
  • ▸Ochrana kódů spolků a profilů — spolkové kódy už nejsou viditelné jiným uživatelům; u cizích profilů se zobrazuje pouze jméno, avatar, spolek a odznak, citlivé údaje (stav předplatného, členství) zůstávají skryté
  • ▸Vynucení pravidel na serveru — limity DEMO režimu a systémová oznámení nyní hlídá přímo databáze, takže je nelze obejít
Přidáno
  • ▸Záchranná obrazovka při chybě — pokud aplikace narazí na neočekávanou chybu, místo prázdné bílé obrazovky se zobrazí srozumitelná hláška s tlačítkem pro návrat
Změněno
  • ▸Mapové podklady Mapy.cz — turistická mapa s vrstevnicemi a lesními cestami místo dosavadního podkladu; přesnější orientace v revíru
  • ▸Úspornější profilové fotky — avatary se zmenšují a ukládají do úložiště místo databáze; rychlejší načítání profilů a nižší spotřeba dat
Opraveno
  • ▸E-mailové odkazy v mobilní aplikaci — odkazy pro potvrzení registrace a obnovu hesla nyní fungují i v mobilní aplikaci (dříve vedly na neotevíratelnou adresu)

1.0.5

22. 5. 2026
Změněno
  • ▸Rychlejší první načtení — hlavní JS balíček zmenšen z 920 kB na 222 kB (−76 %) díky rozdělení knihoven do samostatných souborů (manualChunks); při nasazení nové verze stáhne prohlížeč jen aplikační kód, vendor zůstane v cache
  • ▸Lehčí lesní pozadí — PNG verze (1,8 MB) nahrazena za WebP (216 kB); úspora ≈ 1,6 MB při každém načtení
  • ▸Optimalizace databáze (RLS) — 27 přístupových pravidel přepsáno na (select auth.uid()), aby se uživatel ověřoval jednou za dotaz místo jednou za řádek; výrazný benefit při růstu objemu dat
  • ▸Indexy cizích klíčů — přidáno 5 indexů na profiles.org_code, record_likes.user_id, organizations.admin_user_id a další; eliminuje sequential scany při joinech
  • ▸Regenerované Supabase typy — TypeScript typy synchronizovány s aktuálním schématem (Phase 2 tabulky organizations, record_likes, organization_codes a RPC redeem_code, join_organization); IDE napovídání plně funkční
  • ▸Vyčištěný kód — odstraněno 19 ESLint chyb (převážně any typy v autentizaci, EXIF parseru a notifikacích); přísnější typová kontrola napříč projektem
Opraveno
  • ▸500 Internal Server Error na webhostingu — odstraněna direktiva Options -MultiViews z .htaccess, kterou tehdejší hosting nepovoloval; aplikace nyní startuje bez chyby serveru
  • ▸Bílá obrazovka v iOS aplikaci — opraven CJS/ESM interop problém po code-splittingu; React a všechny knihovny na něm závislé sjednoceny do jednoho vendor balíčku, aby destructured importy (s.forwardRef) korektně fungovaly v Capacitor WebView
  • ▸Module preload v Capacitoru — vypnut build.modulePreload, aby WebView na schématu capacitor:// nepadal na CORS preflight pro <link rel="modulepreload" crossorigin>
  • ▸Verze v native projektech — iOS MARKETING_VERSION a Android versionName zarovnány na 1.0.4 (předtím zaostávaly na 1.0.0), build čísla zvýšena pro uploady do App Store / Play Console

1.0.4

20. 5. 2026
Přidáno
  • ▸B2B organizace – uživatelé se mohou připojit k mysliveckému spolku pomocí kódu spolku; správci spolku mají přístup k administraci členů na stránce /admin/org/:code
  • ▸Varování před vypršením PREMIUM – informační banner se zobrazuje 3, 2 a 1 den před koncem předplatného; po každém uzavření se znovu ukáže příští den
  • ▸Modální okno po přechodu do DEMO – po vypršení nebo ručním přepnutí do DEMO režimu aplikace zobrazí přehledné informační okno s možností přejít do nastavení
  • ▸SuperAdmin stránka – správa organizací a aktivačních kódů přesunuta z postranního sheetu na dedikovanou stránku /admin/super
  • ▸Odlišné pozadí přihlašovací stránky pro desktop – na obrazovkách ≥ 1280 px se zobrazuje nové lesní záběry na místo mobilního pozadí
  • ▸E-mailové šablony – přidány HTML šablony pro Supabase (potvrzení registrace, obnova hesla) laděné vizuálním stylem aplikace
Změněno
  • ▸Demo limit navýšen z 1 na 2 záznamy pro každý z povolených typů (shozy, úlovky)
  • ▸Při přechodu z PREMIUM na DEMO se aktivní odznak automaticky resetuje na první, pokud byl vybrán odznak uzamčený v DEMO režimu
  • ▸Název pole „Funkce ve spolku" v editaci profilu přejmenován na Další informace
  • ▸Název spolku se v editaci profilu automaticky předvyplní po aktivaci B2B kódu a není jej možné ručně měnit
  • ▸Vizuál informačního prvku o končícím předplatném: bílé pozadí, šedý rámeček, odstraněny amber barvy
  • ▸Aktualizován text v burger menu: „Zakupte premium nebo zadejte kód spolku."
  • ▸Toast notifikace přestylizovány do iOS/Apple stylu (bílé pozadí, vícenásobný stín, větší padding)
Opraveno
  • ▸Překlep „šozy" opraven na správné „shozy" v textech aplikace
  • ▸Spolková ikona (koruna) v burger menu nyní správně zobrazuje tloušťku tahu stroke-width: 1

1.0.3

10. 5. 2026
Přidáno
  • ▸Shlukování značek na mapě – překrývající se záznamy se automaticky sdružují do clusterů; každý cluster zobrazuje celkový počet a barevné tečky pro jednotlivé typy prvků
  • ▸Odznaky v profilu – 9 unikátních odznaků, výběr aktivního odznaku zobrazeného u avatara; odznaky 3–9 vyžadují PREMIUM
  • ▸Připínání záznamů – záznamy označené jako „připnuto" se zobrazují v horní části domovské obrazovky
  • ▸DEMO / PREMIUM systém – plná implementace přístupového řízení; demo omezení na shozy a úlovky, ostatní typy uzamčeny; aktivace přes B2C kódy s historií uplatnění
  • ▸Vizuální zámek – uzamčené prvky na domovské obrazovce zobrazují ikonu zámku, klepnutí otevře burger menu s možností aktivace
  • ▸Správa viditelnosti prvků – v burger menu lze přetažením měnit pořadí dlaždic a skrývat nepotřebné typy prvků
Změněno
  • ▸Detekce offline stavu přepracována — nahrazena spolehlivým singletónem (network.ts) místo navigator.onLine; na nativních platformách využívá @capacitor/network a Android ConnectivityManager.NetworkCallback
  • ▸Offline indikátor nyní zobrazuje kombinovaný chip „Offline · DEMO", jsou-li aktivní oba stavy současně
  • ▸Profil karty na domovské obrazovce rozšířen o badge overlay na avataru
Opraveno
  • ▸Na iOS se po stažení sheetu zboku zobrazovala mezera mezi spodní hranou listu a spodním okrajem obrazovky; opraveno pomocí ::after pseudo-elementu (bg-inherit, h-[100vh])
  • ▸Záznamy přidané v offline režimu se nyní správně zobrazují v seznamu ještě před synchronizací díky sloučení dat serveru s lokální frontou
  • ▸Opraveno padání aplikace při obnovení cache: Set objekty v TanStack Query datech nahrazeny plain arrays (WebKit: JSON.stringify(new Set()) vrací {})

1.0.2

4. 5. 2026
Přidáno
  • ▸Systém přátel – vyhledávání uživatelů podle jména nebo e-mailu, oboustranné přátelství
  • ▸Sdílení nástěnky – vlastník může sdílet celou svou nástěnku se zvoleným přítelem
  • ▸Sdílení jednotlivého záznamu – záznam lze nasdílet konkrétnímu příteli bez zpřístupnění ostatních dat
  • ▸Realtime notifikace – přidání přítele nebo sdílení záznamu generuje push notifikaci v aplikaci prostřednictvím Supabase Realtime (postgres_changes na tabulce notifications)
  • ▸Veřejný profil uživatele – stránka /user/:id zobrazuje profil, statistiky a sdílené záznamy; přístupná přes klepnutí na profil kartu nebo z přehledu přátel
  • ▸Offline fronta (zápis) – záznamy přidané bez připojení se ukládají do IndexedDB a synchronizují při obnovení spojení; fotografie se nahrávají po jedné s obnovou po přerušení
  • ▸Synchronizace při reconnectu – SyncOnReconnect komponenta spouští synchronizaci při mountu i při každém obnovení připojení (debounce 3 s)
Změněno
  • ▸Dolní navigace rozdělena na dvě skupiny flex-1 okolo plovoucího tlačítka + pro pixel-přesné zarovnání na střed
  • ▸Všechny bottom sheety jsou na desktopu omezeny na šířku 1 100 px a vycentrovány pomocí left/right: max(0px, calc(50% - 550px)) (bez translateX kvůli kolizi s animací translateY)
  • ▸Safe area insets aplikovány důsledně napříč komponentami pomocí env(safe-area-inset-bottom)
Opraveno
  • ▸Opravena synchronizace dvou instancí Supabase klienta; nyní je klient singleton importovaný výhradně z src/integrations/supabase/client.ts
  • ▸Přihlašovací formulář na iOS nyní správně scrolluje vstupy nad klávesnici bez nutnosti custom JS (odstraněna závislost na @capacitor/keyboard)

1.0.1

26. 4. 2026
Přidáno
  • ▸Zpracování fotografií – před nahráním se fotky automaticky zmenší na max. 1 400 px na delší straně a převedou do WebP (kvalita 0,82)
  • ▸Automatické předvyplnění GPS a data – EXIF metadata se čtou z nahraného snímku; souřadnice a datum záznamu se předvyplní bez nutnosti ručního zadávání
  • ▸Nativní EXIF plugin pro Android – vlastní Capacitor plugin ExifReaderPlugin obchází redakci GPS dat v Android 10+ čtením přes ContentResolver z content:// URI
  • ▸Aktuální poloha záložní – pokud fotografie EXIF souřadnice neobsahuje, aplikace se pokusí získat GPS z @capacitor/geolocation
  • ▸Zpětné tlačítko na Androidu – OnBackPressedCallback v MainActivity.java naviguje zpět v historii WebView; bez historie minimalizuje aplikaci (moveTaskToBack) místo ukončení
  • ▸Edge-to-edge Android – WindowCompat.setDecorFitsSystemWindows(false) v MainActivity.java; WebView sahá za status bar a navigační lištu
Změněno
  • ▸Heslo při registraci nově validováno schématem Zod: min. 8 znaků, velké i malé písmeno, číslice
  • ▸Chybové hlášky autentizace přeloženy do češtiny (např. „Invalid login credentials" → „Nesprávný e-mail nebo heslo")
  • ▸Focusový outline na dotyková zařízení potlačen pomocí :focus:not(:focus-visible) v index.css (zachován pro klávesnicovou navigaci)
Opraveno
  • ▸Opraveno chybné zobrazení profilového avataru při neexistující URL v Supabase Storage
  • ▸Opravena animace slide-in pro bottom sheety na starších verzích Safari

1.0.0

20. 4. 2026 První vydání
Přidáno
  • ▸Registrace a přihlášení e-mailem a heslem (Supabase Auth)
  • ▸Obnova zapomenutého hesla e-mailem
  • ▸Pět typů záznamů: Shoz, Úlovek, Posed, Krmelec, Bod zájmu
  • ▸Čtyřkrokový průvodce přidáváním záznamu (typ → fotografie → podrobnosti → poloha)
  • ▸Nahrávání až 5 fotografií na záznam do Supabase Storage (record-photos bucket)
  • ▸Seznam všech záznamů s filtrováním podle typu
  • ▸Detail záznamu s editací a smazáním
  • ▸Mapa s Leaflet zobrazující záznamy s GPS souřadnicemi
  • ▸Profil uživatele s avatarem, jménem a popisem
  • ▸Statistiky na domovské obrazovce (počet záznamů, úlovků, fotografií)
  • ▸Podpora PWA (manifest, service worker, ikony)
  • ▸Nativní sestavení pro iOS a Android přes Capacitor 8
  • ▸Cache TanStack Query persistována do localStorage (klíč moje-myslivost-cache-v2)
  • ▸RLS politiky na všech tabulkách; uživatel čte a píše pouze vlastní data
  • ▸Automatické vytvoření řádku v profiles po registraci (DB trigger)
  • ▸Responzivní layout s postranním sidebarem na desktopu (≥ 996 px)