Domů » UltimWeb » MabMess » Jak to funguje?

MabMess: Komplexní technická dokumentace a přehled funkcí

MabMess je moderní, bezpečná a multiplatformní komunikační platforma postavená na frameworku Flutter. Cílem projektu je poskytnout uživateli naprosté soukromí díky end-to-end šifrování (E2EE) a zároveň nabídnout pokročilé funkce, které známe z velkých platforem, ovšem s důrazem na čistotu kódu a vlastní kontrolu nad daty.

1. Architektura systému

Aplikace MabMess je rozdělena do několika logických vrstev, což zajišťuje snadnou údržbu a rozšiřitelnost.

Klientská část (Frontend)

  • Framework: Flutter (Dart) pro mobilní zařízení (Android, iOS) a desktop (Windows).
  • State Management: Riverpod 2.x – reaktivní správa stavu, která zajišťuje, že se UI okamžitě aktualizuje při změně dat.
  • Lokální databáze: Drift (SQLite) – výkonné relační úložiště s podporou reaktivity a migrací schémat.
  • Komunikace: WebSocket (Socket.io protokol) pro real-time zprávy a HTTPS (Dio) pro přenos médií a doplňkové API.

Serverová část (Backend)

  • Runtime: Node.js.
  • Databáze: MySQL (uložiště relací, metadat zpráv a uživatelských profilů).
  • Real-time engine: Socket.io pro udržování permanentního spojení s klienty.
  • File Storage: Dočasné úložiště pro nahraná média s automatickou čistící logikou (soubory jsou mazány po doručení nebo po krátkém časovém okně).

2. Bezpečnost a šifrování (E2EE)

Bezpečnost je jádrem MabMess. Na rozdíl od běžných aplikací MabMess nepoužívá šifrování pouze na cestě k serveru, ale přímo mezi koncovými zařízeními.

Kryptografický zásobník

  • Výměna klíčů: Protokol ECDH (Elliptic Curve Diffie-Hellman) nad křivkou X25519.
  • Symetrické šifrování: AES-256-GCM – každá zpráva je zašifrována unikátním klíčem odvozeným z privátního klíče odesílatele a veřejného klíče příjemce.
  • Identita: Každé zařízení generuje svůj vlastní pár EC klíčů. Při párování desktopu se privátní identita bezpečně přenáší z telefonu přes jednorázový šifrovaný kanál.
  • Safety Numbers: Možnost ověření identity kontaktu pomocí číselného otisku klíče (bezpečnostní kód).

3. Klíčové funkce aplikace

Real-time messaging

  • Stavy doručení: Čtyřfázový systém: Čeká se (Pending) -> Odesláno na server (Sent) -> Doručeno na zařízení (Delivered) -> Přečteno (Read).
  • Indikátory psaní: Real-time vizualizace, když protějšek píše zprávu, včetně podpory pro skupiny.
  • Úpravy a mazání: Podpora pro editaci textu po odeslání a funkci „Smazat pro všechny“ (Delete for all), která fyzicky odstraní data z databází všech příjemců.
  • Reakce: Možnost reagovat na jakoukoliv zprávu pomocí emoji.

Multimédia a soubory

  • Chytrá optimalizace: Před odesláním aplikace automaticky komprimuje fotky a videa, aby šetřila data (nastavitelný limit až 75 MB).
  • Audio zprávy: Integrovaný rekordér s vizualizací waveformy a možností poslechu před odesláním.
  • Galerie médií: Přehledné zobrazení všech fotek a videí z chatu v karuselu nebo v celoobrazovkovém prohlížeči.
  • Správa dokumentů: Podpora pro PDF a ZIP soubory s integrovaným prohlížečem (pdfrx).

Pokročilé typy zpráv

  • Sdílení polohy: Odesílání aktuálních GPS souřadnic s adresou a možností otevření v externích mapách.
  • Ankety (Polls): Vytváření interaktivních hlasování v 1v1 i skupinových chatech s real-time aktualizací výsledků.
  • Události (Events): Možnost navrhnout termín schůzky a nechat ostatní hlasovat o datech.

4. Multiplatformní synchronizace

MabMess vyniká schopností udržovat všechna vaše zařízení v dokonalém souladu bez nutnosti centrálního cloudu.

Párování přes QR kód

Uživatel se na desktopu nepřihlašuje heslem. Místo toho naskenuje QR kód telefonem. Během tohoto procesu dojde k:

  1. Výměně veřejných klíčů.
  2. Zašifrování identity telefonu klíčem zobrazeným v QR kódu.
  3. Bezpečnému přenosu historie a kontaktů.

Automatický Sync (Peer-to-Peer)

Jakmile se dvě vaše zařízení uvidí online (např. zapnete PC), spustí se ChatSyncService:

  • Fáze 1 (Texty): Porovnají se ID zpráv a chybějící texty se okamžitě přenesou.
  • Fáze 2 (Média): Velké soubory se přenášejí na pozadí, aby se nezpomalovalo UI.
  • Prioritizace: Nejnovější zprávy se synchronizují jako první, aby mohl uživatel ihned pokračovat v konverzaci.

5. Logika serveru (Backend)

Server MabMess funguje jako „inteligentní pošťák“, nikoliv jako archivář.

  • Temporary Buffering: Pokud je příjemce offline, server zprávu uloží do fronty. Jakmile je doručena, server ji okamžitě maže.
  • Privacy First: Server nikdy nevidí obsah 1v1 zpráv (jsou E2E šifrované). Server vidí pouze metadata nutná pro doručení (komu, od koho, typ).
  • Self-Cleanup: Nahrané soubory (obrázky/videa) jsou na serveru uchovávány pouze po dobu nutnou k doručení (standardně 60 sekund po potvrzení doručení).
  • Push Brána: Integrace s Firebase Cloud Messaging (FCM) pro probuzení zařízení při příchozí zprávě nebo hovoru.

6. Integrace a UX vychytávky

  • Vlastní klávesnice: Možnost přepnout na interní bezpečnou klávesnici, která neposílá data výrobcům OS (Gboard/Samsung).
  • Biometrie: Zabezpečení celé aplikace otiskem prstu nebo FaceID.
  • Ochrana snímků obrazovky: Možnost zakázat pořizování screenshotů v celé aplikaci.
  • Adaptivní design: Rozhraní se automaticky přizpůsobuje od malých telefonů až po širokoúhlé monitory (Sidebar v desktopové verzi).
  • Tray integrace: Na Windows se aplikace po zavření okna minimalizuje do systémové lišty (ikonka u hodin), aby uživatel nezmeškal hovory.

7. Systém aktualizací

MabMess obsahuje vlastní mechanismus pro distribuci nových verzí mimo oficiální obchody:

  • Android: Aplikace kontroluje version.txt na serveru, v případě nové verze stáhne APK přímo v aplikaci a nabídne instalaci.
  • Windows: Stáhne se instalační balíček .exe, aplikace se korektně ukončí a spustí instalátor pro přepsání souborů.

8. Plánované funkce a rozvoj

  1. WebRTC Videohovory: Plná integrace peer-to-peer hovorů s nízkou latencí.
  2. AI Asistent: Implementace lokálního nebo zabezpečeného vzdáleného AI pro generování odpovědí nebo sumarizaci dlouhých konverzací.
  3. Fulltext v DB: Možnost prohledávat tisíce zpráv bleskově přímo na zařízení pomocí FTS5.
  4. Mizící zprávy: Nastavení času, po kterém se zpráva automaticky smaže ze všech zařízení.

Tento systém je navržen tak, aby poskytoval maximální komfort moderního chatu bez kompromisů v oblasti soukromí. Všechna data patří uživateli a server slouží pouze jako dočasný prostředník pro jejich přenos.