Přeskočit na obsah

Jak jsem z mobilu postavil nativní macOS appku za jedno odpoledne

· 4 min čtení

Pracuju hodně v tmux sessions přes SSH. Vzdálený server, terminál, žádné GUI. A jednu věc v tomhle prostředí prostě neuděláte — drag & drop.

Potřebujete poslat soubor na server? Otevřete nový terminál, napíšete scp, vzpomínáte si na cestu, kopírujete, vkládáte. Nebo to hodíte na nějaký cloud, dostanete link, který za hodinu expiruje. Ztráta času pokaždé.

Chtěl jsem jednoduchou věc: hodit soubor na ikonku v menu baru, a dostat v clipboardu cestu na serveru. Nic víc.


Odpoledne s telefonem v ruce

Neseděl jsem u počítače. Měl jsem telefon, SSH přístup na vzdálený server s Claude Code a nápad.

Začal jsem tím, čím začínám vždycky — pořádným researchem. Claude Code prozkoumal, jak funguje SFTP v Swiftu, jaké jsou možnosti menu bar appek na macOS, jak se řeší SSH klíče a Keychain integrace. Pak jsem mu dal za úkol napsat detailní plán.

Research a plán byly klíčové. Na základě dobrého zadání napsal Claude Code skoro celou appku na první pokus.

Plán měl jasnou strukturu: menu bar ikonka, drag & drop handler, SFTP upload engine, Keychain pro credentials, konfigurace v Preferences. Claude Code to vzal a začal psát Swift kód.

A tady to přišlo — celá základní funkčnost fungovala skoro oneshot. Drop soubor na menu bar → SFTP upload → cesta v clipboardu. Na první pokus.


CI pipeline přes mobil

Swift appku ale musíte buildnout na macOS. Já seděl s telefonem a SSH terminálem na Linuxovém serveru. Řešení? GitHub Actions.

Claude Code nastavil CI pipeline, která buildí macOS appku na GitHub runnerech. Pushnu kód → Actions buildí → dostanu .app bundle. Celé přes git z příkazové řádky.

Debugging přes mobil vypadal takhle: podívám se na build log v GitHub Actions, řeknu Claude Code co opravit, on commitne, pushne, čekám na další build. Opakovat.

Neříkám, že to bylo pohodlné. Ale fungovalo to. A hlavně — appka na konci dne fungovala.


2 hodiny u počítače

Druhý den jsem si sedl k Macu. Funkce běžela. Co chybělo, byl polish.

Ikonka v menu baru musela vypadat správně — čistá, moderní, v tmavém i světlém režimu. SwiftUI preferences panel potřeboval vyladit. Upload progress indikátor. Notifikace po dokončení uploadu.

Tohle zabralo asi 2 hodiny. Vizuální detaily, UX, finální leštění. Funkce tam byla — jen to chtělo vypadat jako pořádná macOS appka, ne jako prototyp.


Co DropShot umí

Technicky: Swift 5.9, SwiftUI, macOS 13+. Lokalizace v češtině a angličtině. VoiceOver podpora. Respektuje Reduce Motion.

DropShot v menu baru — drop soubor, capture screenshot, upload na server


Proč to píšu

Tenhle příběh není o DropShotu. Je o tom, co se stane, když máte dobrý plán a AI nástroj, který ho umí realizovat.

Za odpoledne — z telefonu — vznikla funkční nativní macOS appka. Ne prototyp, ne mockup. Appka, která řeší konkrétní problém a kterou používám každý den.

Nativní macOS appka ve Swiftu. Za odpoledne. Z telefonu. To je posun, který si většina lidí nedokáže představit, dokud to nevidí.

Ne teoretické možnosti AI — ale reálné výsledky na reálných projektech.

DropShot je open source a zdarma.

→ GitHub: kojott/dropshot

Pokud vás zajímá, jak AI nástroje můžou změnit produktivitu vašeho týmu — ozvěte se.


Mohlo by vás zajímat

Sdílet

Claude Code tahák zdarma

Příkazy, prompty, pluginy a workflow z workshopů za 75 000 Kč/den. Stáhněte si zdarma.

Chci tahák →

Související články

5 nástrojů, které jsem postavil pro Claude Code – a proč je používám každý den

Když vám AI nestačí z krabice, postavíte si vlastní nástroje. Garbage collector, Telegram notifikace, dokumentační optimalizér, remote server setup a DropShot.

4 min čtení

Také o: Claude Code, open source, produktivita

Proč nikdy nečtu první plán od Claude Code

První plán od AI je vždy děravý — vymyšlené funkce, chybějící edge casy. Jak používám /replan plugin pro Claude Code, abych dostal plán, kterému můžu věřit.

6 min čtení

Také o: Claude Code, produktivita

/loop — Jak jsem z Claude Code udělal autonomního agenta

Jeden příkaz v terminálu a AI asistent se změní v agenta, který plánuje, implementuje a uklízí. Detailní průvodce mým setupem s /improve-gitlab.

8 min čtení

Také o: Claude Code, produktivita