← Kód máme venku

OwnTalk

Chat a hovory pro vlastní Nextcloud Talk z jednoho kódu pro Android, iOS, Windows, macOS i Linux. Jedna instalace zvládne víc účtů na různých serverech.

Náhled OwnTalk

Firma, která provozuje vlastní Nextcloud, má v Talku chat i videohovory na svém serveru. Lidé ale střídají telefon, notebook a linuxovou pracovní stanici a často mají dva účty, pracovní a soukromý, každý na jiném serveru. OwnTalk tohle pokryje jednou aplikací: jeden kód ve Flutteru běží na Androidu, iOS, Windows, macOS i Linuxu a jedna instalace je přihlášená k několika účtům na různých serverech zároveň. Zprávy, přílohy i hovory zůstávají na Nextcloudu, jehož adresu uživatel zadá. OwnTalk není aplikace od Nextcloud GmbH, je to samostatný klient.

Jeden klient místo tří

Nextcloud vydává Talk pro každou platformu zvlášť: aplikaci pro Android, aplikaci pro iOS a desktopovou aplikaci, každou ve vlastním repozitáři. OwnTalk sdílí jeden kód pro všech pět systémů, takže oprava i nová funkce dorazí na telefon i počítač ve stejném vydání.

Druhý důvod vzniku jsou upozornění. Nextcloud s Applem ani Googlem přímo nemluví a oznámení předává přes takzvanou push proxy. Výchozí proxy provozuje Nextcloud GmbH a podepisuje svým certifikátem Apple pro identifikátor vlastní aplikace, takže oznámení pro jinou aplikaci přes ni neprojde. OwnTalk proto dostal vlastní bránu nks-talk-notify, která má zdrojový kód venku stejně jako aplikace.

Co OwnTalk uživateli dává

Pracovní i soukromý Nextcloud v jedné aplikaci

Účty na různých serverech běží vedle sebe a jejich data jsou oddělená. Klepnutí na upozornění otevře účet a konverzaci, odkud přišlo.

Chat, který se otevře i bez signálu

Seznam konverzací i historie se načtou nejdřív z místní databáze SQLite a teprve potom se doplní ze serveru. Zpráva napsaná bez připojení čeká v uspořádané frontě a odejde, jakmile se spojení vrátí, ve stejném pořadí, v jakém vznikla. Ve vlaku nebo ve výtahu tak aplikace neukazuje prázdnou obrazovku a rozepsaná odpověď nezmizí.

Chat s funkcemi Talku

  • odpovědi, vlákna, reakce, zmínky s našeptáváním, úpravy a mazání, připnuté zprávy, připomínky, tiché a naplánované odeslání,
  • zprávy v Markdownu a nabídka formátování pro tučné písmo, kurzívu, přeškrtnutí a kód,
  • fotka a soubor, hlasová zpráva, anketa, poloha, kontakt nebo GIF,
  • vložený text delší než 4 000 znaků nebo 40 řádků se sám změní na přílohu .md či .txt a počká v poli pro psaní, dokud ho uživatel neodešle,
  • hledání napříč konverzacemi i uvnitř jedné.
Seznam konverzací v telefonu: hlavička Konverzace se jménem serveru, filtry a šest konverzací s poslední zprávou a datem
Seznam konverzací v telefonu.

Hovory se sdílením obrazovky

Volat jde se zvukem i videem, ve skupině a se sdílením obrazovky. Hovor jde přes high-performance backend Talku, nebo přes jeho vnitřní signalizaci, když server backend nemá. Když přímé spojení selže, použije se server TURN.

Telefon, tablet i velký monitor

V telefonu má aplikace jeden panel, na tabletu a počítači dva nebo tři. Na počítači jde všechno ovládat klávesnicí, aplikace se může spouštět po přihlášení do systému, zůstat v oznamovací oblasti a sama si stáhnout a nainstalovat novější vydání z GitHubu.

Zámek a přístupnost

Aplikaci jde zamknout biometrikou. Mluví česky a anglicky, má světlý i tmavý vzhled a je vyzkoušená s velkým písmem i se čtečkou obrazovky.

Jak OwnTalk funguje a jak dojde upozornění

Aplikace je napsaná ve Flutteru 3.44 a Dartu 3.12, hovory jdou přes WebRTC. Komunikaci se serverem Talku popisuje samostatný balík v čistém Dartu talk_protocol, aplikace je v adresáři apps/mobile. Přihlášení jde přes Nextcloud Login Flow v2: heslo k účtu se zadává na stránce vlastního serveru a aplikace dostane vygenerované heslo aplikace, které uloží do Android Keystore, respektive do Klíčenky Applu.

Upozornění chodí třemi cestami, které se doplňují:

  • Push v2 přes vlastní bránu. Android a iOS se u Nextcloudu registrují s adresou brány nks-talk-notify, která zprávu předá Firebase Cloud Messaging nebo Apple Push Notification service. Adresu brány volí klient při registraci, takže se aplikace pro jednotlivé servery nesestavuje zvlášť. Správce Nextcloudu jednou nastaví bránu jako subscription_aware_server. Na iOS je brána nutná: zavřenou aplikaci probudí jen APNs a Nextcloud s ním sám nemluví.
  • Web Push na Androidu. Nextcloud 34 a novější umí doručovat přes Web Push a konektor UnifiedPush. Tahle záložní cesta se zapíná v Nastavení → Push notifikace bez nového sestavení a obejde se bez naší brány i našeho projektu ve Firebase. Zprávu ale přes služby Google Play nese veřejná brána projektu UnifiedPush; obsah je zašifrovaný, čas a cílové zařízení vidět jsou.
  • Client Push za běhu. Dokud aplikace běží, poslouchá na všech platformách websocket notify_push, pokud ho server nabízí. Tudy chodí zprávy okamžitě na počítači; Windows, macOS a Linux dostávají upozornění, dokud aplikace běží.

Na Androidu jde z upozornění rovnou odpovědět, aniž by se aplikace otevřela.

Desktopová verze s otevřeným menu účtu (Přidat účet, Nastavení) a vpravo panelem Informace o konverzaci s přepínači oznámení hovorů, oblíbené konverzace, hostů a režimu jen ke čtení
Na počítači tři panely: konverzace, chat a nastavení konverzace. Vlevo nahoře menu pro přidání dalšího účtu.

Kde se OwnTalk hodí

  • Firma s vlastním Nextcloudem, kde lidé pracují na Windows, macOS i Linuxu a chtějí v telefonu a na počítači stejnou aplikaci.
  • Správce, který se stará o servery několika zákazníků a potřebuje být ve všech jejich konverzacích z jednoho telefonu.
  • Provozovatel, který chce upozornění na iPhone doručovat přes vlastní infrastrukturu, ne přes proxy Nextcloud GmbH.

Co zůstává na serveru a co jde jinam

Konverzace i přílohy leží na Nextcloudu, aplikace si drží jen mezipaměť v zařízení. Brána nks-talk-notify obsah upozornění nepřečte: Nextcloud ho zašifruje klíčem zařízení a rozšifruje ho až telefon. Oficiální sestavení posílají hlášení pádů a anonymní údaje o používaných obrazovkách do vlastních instancí Sentry a Rybbit. Adresy a přihlašovací údaje se z hlášení odstraňují a identifikátor instalace je náhodné číslo bez vazby na účet. Kdo si aplikaci sestaví sám bez konfigurace telemetrie, nepošle nikam nic.

Skupinový chat v telefonu ve světlém režimu: bubliny zpráv se jmény a časy, dole pole Napište zprávu s tlačítky pro přílohu, GIF, emoji a hlasovou zprávu
Chat v telefonu ve světlém vzhledu.

Stav projektu

Poslední vydání je 1.0.32 z 27. října 2026, od září 2026 jich na GitHubu vyšlo 38. Do verze 1.0.13 se aplikace jmenovala NKS Talk; při přejmenování zůstaly identifikátory balíčků, složky s daty i nastavení na místě, takže aktualizace nepřijde o účty ani konverzace.

Na serveru je potřeba Nextcloud Talk 22 (Nextcloud 32) nebo novější. Aplikace chce Android 7.0, iOS 15 nebo macOS 11 a novější; pro Windows a Linux minimální verzi README neuvádí. Podle README prošlo 24. září 2026 v mobilní aplikaci 2 761 testů, 7 se přeskočilo a flutter analyze nic nenašel.

Instalátor pro Windows není podepsaný certifikátem vydavatele, takže SmartScreen při prvním spuštění jednou varuje. O zveřejnění na Google Play požádal autor 24. září 2026 a žádost čeká na posouzení Googlem.

Ke stažení

  • Windows, Linux a Android: instalátor pro Windows x64, archiv pro Linux x64 a balíček APK jsou u vydání v Releases i se souborem kontrolních součtů SHA256SUMS.
  • macOS: ZIP podepsaný Developer ID a notarizovaný u Applu se k vydání přidává dodatečně, sestavuje se na Macu mimo CI. V Mac App Storu aplikace není.
  • Google Play: veřejně v obchodě zatím není, běží uzavřené testování. Přihlásit se do něj jde účtem Google přes stránku testování.
  • iOS: v App Storu zatím není, sestavení jsou v TestFlightu na pozvánku. O pozvánku jde požádat na dev@nks-hub.cz.

Aplikace má vlastní web nc-talk.nks-hub.cz.

Zdrojový kód

Kód je na github.com/nks-hub/nks-nextcloud-talk pod licencí GPL-3.0-or-later. K sestavení je potřeba Flutter 3.44 (CI používá 3.44.4) a JDK, a to i pro Windows a Linux, protože na něm závisí knihovna pro hlášení pádů. OwnTalk má dva sourozence pro jiné aplikace Nextcloudu: OwnNotes pro poznámky a OwnDeck pro kanbanové nástěnky Decku.

← Zpět na přehled