Přeskočit na obsah

Blog · Červenec 2026

Půl dne na appku. Den a půl na to, aby ji šlo dát cizím lidem.

  • Jakub Liška · Červenec 2026

Postavili jsme maskota, který vám pár minut před schůzkou přeletí přes obrazovku. Dáváme ho zdarma i se zdrojovým kódem.

Postavili jsme maskota, který vám pár minut před schůzkou přeletí přes obrazovku. Dáváme ho zdarma i se zdrojovým kódem. Tenhle díl je o tom, co všechno se muselo udělat mezi „funguje mi to" a „můžu to dát cizím lidem do počítače".

Notifikace na MacBooku pár minut před schůzkou

Než začnu, jedna věc dopředu. AI a vibecoding máme rádi doopravdy, ne jako marketingovou frázi. Pracujeme s AI denně, dělá nám sedmdesát až osmdesát procent práce. Za sebou máme tisíce a tisíce hodin napříč modely, spoustu slepých cest a miliony korun jen za testování, zkoušení, pokusy a omyly. Platili jsme je my, aby je nemuseli platit naši klienti.

Tenhle článek proto není o tom, že vibecoding je špatný nápad. Je přesně naopak. Ukazujeme ho veřejně proto, že chceme, aby bylo vidět, co všechno se za jednu jednoduchou appku schová. Ta rychlost je skutečná výhoda, ne iluze. Jen s sebou nese odpovědnost, o které se v nadšení málokdy mluví.

Maskot, který před schůzkou přeletí přes obrazovku

Pro tuhle ukázku jsme si záměrně vybrali software, appku, která se instaluje do vašeho počítače. Ne web, ne webovou appku. Ukázky AI zázraků, které vídáte na sítích, jsou skoro vždycky weby. Je to nejvděčnější disciplína na předvádění, protože když demo web nefunguje, uživateli se nic nerozbije, prostě zavře záložku. Software v cizím počítači je jiná liga.

Karta schůzky, která se zobrazí po najetí myší

Píšu o tom i proto, že jsem si za ty roky spálil prsty víckrát, než bych chtěl počítat. V sedmnácti jsem měl nápad na osobní projekt. Na doporučení jsem si najal vývojovou firmu a designéra. Slibovali, nedodávali. Skončilo to čtvrt milionu korun v minusu. Byly to všechny peníze, co jsem si šetřil od dětství. Hotová byla jen třetina toho, co slíbili. A právě proto v tomhle článku ukazuju neviditelnou práci tak otevřeně.

Maskoti aplikace Ptáček

Nejdřív ta appka

Notifikace na macOS je zdvořilá, decentní a dokonale přehlédnutelná. Bublina vyjede v rohu, po pár vteřinách zmizí a vy zjistíte, že vás na hovoru čekali dvanáct minut.

Ptáček řeší přesně tohle. Pár minut před schůzkou vám přes obrazovku přeletí maskot s názvem schůzky. Přes všechna okna, i přes prezentaci na celou obrazovku. Za pár vteřin sám zmizí.

Další maskoti aplikace Ptáček

Appka byla hotová za půl dne. Zbytek dvou dní patřil bezpečnosti

Funkční verze, tedy maskot, kalendář, plánovač a nastavení, byla hotová za půl dne. Kdybych appku tehdy hodil na internet, vypadala by navenek úplně stejně jako dnes. Jenže než mohla jít ven, musela projít kontrolou druhé, nezávislé AI, jejímž jediným úkolem bylo hledat díry v tom, co první model postavil. A nad oběma modely byla ještě ruční kontrola, protože poslední slovo má člověk. Ta kontrola a opravy zabraly den a půl.

Maskot a formule, podle které appka počítá čas do schůzky

Zdědili jsme cizí kanál na aktualizace

Appku jsme nestavěli od nuly, vyšli jsme z otevřeného projektu. Ten měl v sobě automatické aktualizace mířící na repozitář cizího autora. Kdyby to tam zůstalo, znamenalo by to, že si naši uživatelé můžou jednoho dne stáhnout kód, který jsme nikdy neviděli. Tohle je přesně ten typ věci, kterou AI při generování kódu nezmíní, protože ji o to nikdo nepožádal.

Spěch ke dveřím: appka připomene schůzku včas

Název schůzky je nedůvěryhodný vstup

Zní to absurdně: proč by měl být nebezpečný název vlastní schůzky? Protože do kalendáře vám může někdo poslat pozvánku a název si napíše sám. Takže se název nikdy nevkládá do stránky jako kód, jen jako text.

Bezpečnost: robot hlídá nedůvěryhodný název schůzky

Adresa kalendáře je heslo

Ta adresa je fakticky klíč: kdo ji má, vidí, kdy máte schůzky. Proto neleží v konfiguračním souboru, ale v systémové Klíčence, tedy tam, kde má Mac vaše hesla. A nikdy se nepíše do logu.

Kabely, které se spojují do jednoho toku dat

A pak sto malých věcí

Co dělat, když se schůzka zruší minutu před přeletem. Co když ji někdo posune. Co když se počítač probudí ze spánku a čeká v něm pět zmeškaných upozornění naráz.

Nic z toho není zajímavé. Všechno z toho uživatel pozná, když to neuděláte.

Práce, kterou není vidět

Diakritika v názvu rozbila podpis aplikace. Protože se soubor jmenoval Ptáček, systémový nástroj na podepisování zapečetil hlavní program jako přílohu a podpis přestal platit.

Třetí skupina maskotů aplikace

macOS umí appku spustit z dočasného místa. Appka vypadá, že funguje, ale nezapamatuje si nastavení ani povolení kalendáře.

Přetažení do koše po sobě nechává nepořádek. Nastavení, spouštění po přihlášení, adresa v Klíčence. Takže je v nastavení tlačítko Odinstalace, které to uklidí. Je to jediná věc v celé appce, která něco maže, tak má vlastní testy na to, že nesmaže nic jiného.

Tichý režim: appka místo chyby mlčí

Ticho místo chyby

Appka vyšla, testy byly zelené, podpis platil. Vypadalo to hotovo. Pak appku začal používat první skutečný uživatel a během jedné noci se ukázaly dvě věci, které žádný test neviděl.

Ostrá verze neuměla číst kalendář. Za vším stál jeden řádek v podpisu aplikace. Bez něj systém žádost tiše zamítne. Žádný dialog, žádná chybová hláška, prostě ticho.

Hejno maskotů, které mizí uprostřed letu

Maskoti začali mizet uprostřed letu. Pojistka nerozlišovala, čí okno hlídá. Byla to chyba, která tam byla od začátku, jen se neprojevila, dokud se nelítalo hustě.

Výsledek jedné noci: tři vydání za sebou, testů z osmnácti na dvaapadesát, a uživatel neviděl jedinou novou funkci. Přesně tohle je práce, která není vidět.

Nastavení appky Ptáček

AI je turbo, ne autopilot

Zrychlí vám první verzi appky na půl dne, ale nerozhodne za vás, co je přijatelné riziko a co ne. To rozhodnutí zůstává na člověku, pořád.

Článek původně vyšel na LinkedInu. Původní článek na LinkedInu

Začněte tady

Úvodních 15 minut stačí, abyste věděli, jestli to má smysl.

Řeknete, co vás pálí. My řekneme, jestli na to máme, kolik to zhruba stojí a kde bych na vašem místě začal. Bez prezentace.

Adresa
Legerova 1820/39, Praha 2

Kalendář provozuje Cal.com (třetí strana), načte se až po kliknutí.