Preskočiť na obsah
Všetky články

Vývoj6 min čítania

iOS aplikácie priamo z iPhonu: vzdialený vývoj s Claude Code

Nastav si kompletný workflow na vzdialený vývoj pre iOS cez SSH, Tailscale a Claude Code – a vyvíjaj aplikácie odkiaľkoľvek, len s telefónom v ruke.

Čo keby si mohol vyvíjať iOS aplikácie v kaviarni, vo vlaku alebo na gauči – len s iPhonom? Notebook netreba. Stačí telefón, vzdialený Mac a Claude Code, ktorý odvedie tú ťažkú prácu.

Nie je to hypotetický workflow. Je to praktické nastavenie, ktoré ti zaberie asi 15 minút, a keď raz beží, môžeš programovať odkiaľkoľvek na svete. Takto vyvíjam a testujem ReelMeal, moju iPhone aplikáciu, ktorá z videí o varení na TikToku, Instagrame a YouTube robí recepty.

Architektúra

Základný cyklus je jednoduchý:

iPhone (SSH) → Claude Code na Macu → spustí sa build → aplikácia sa nainštaluje do zariadenia

Z terminálovej aplikácie v iPhone sa cez SSH pripojíš na Mac, vzdialene spustíš Claude Code a necháš ho buildovať a nasadzovať aplikácie priamo do telefónu, ktorý držíš v ruke. Všetko zvládne jedno zariadenie.

Čo budeš potrebovať

  • Mac s nainštalovaným Xcode (tvoj stroj na buildy)
  • iPhone s terminálovou aplikáciou
  • Účet v Tailscale (stačí bezplatný plán)
  • Asi 15 minút

Krok 1: Zapni SSH na Macu

Otvor System Settings → General → Sharing a zapni Remote Login.

Skontroluj, ktorí používatelia majú prístup – tvoj účet by mal byť v zozname. Tým povolíš SSH pripojenia k Macu.

Krok 2: Nainštaluj Tailscale na Mac

Stiahni si Tailscale z tailscale.com alebo z Mac App Store. Prihlás sa alebo si vytvor účet.

Tailscale pridelí tvojmu Macu:

  • IP adresu v tvare 100.x.x.x
  • hostname v tvare your-mac.tail1234.ts.net

Vznikne tak bezpečná virtuálna privátna sieť, ktorá funguje cez akúkoľvek fyzickú sieť – doma, v kancelárii, na mobilných dátach, kdekoľvek.

Krok 3: Nainštaluj Tailscale aj na iPhone

Stiahni si Tailscale z App Store a prihlás sa tým istým účtom.

Teraz sú obe zariadenia v jednej virtuálnej sieti bez ohľadu na to, kde sa fyzicky nachádzajú. iPhone sa k Macu dostane, či si na tej istej WiFi, alebo na druhom konci planéty.

Krok 4: Stiahni si terminálovú aplikáciu

Dve spoľahlivé možnosti:

Blink Shell (platená) – najlepší zážitok, podporuje Mosh pre nestabilné pripojenia, pôsobí natívne.

Termius (má aj bezplatný plán) – čisté UI, jednoduché nastavenie hostov, na väčšinu použití funguje dobre.

Krok 5: Nastav pripojenie

V aplikácii Termius:

  1. Ťukni na + → New Host
  2. Alias: čokoľvek chceš (napr. „Mac“)
  3. Hostname: your-mac.tail1234.ts.net (alebo IP 100.x.x.x)
  4. Username: tvoje používateľské meno na Macu (zistíš ho príkazom whoami v Termináli na Macu)
  5. Password: heslo, ktorým sa prihlasuješ do Macu
  6. Port: 22 (predvolený)

V aplikácii Blink:

  1. Choď do Settings → Hosts
  2. Pridaj hostname a username
  3. Ulož a potom v termináli napíš ssh Mac

Dôležité: username je tvoje skutočné unixové používateľské meno (napríklad peter), nie zobrazovaný názov Macu (napríklad „Peter's MacBook Air“). Over si to príkazom whoami na Macu.

Krok 6: Oprav oprávnenia v macOS

Keď sa prvýkrát cez SSH pokúsiš otvoriť priečinky ako Documents alebo Desktop, pravdepodobne uvidíš „Operation not permitted“. Takto macOS chráni citlivé priečinky.

Riešenie:

  1. Otvor System Settings → Privacy & Security → Full Disk Access
  2. Klikni na tlačidlo +
  3. Stlač Cmd + Shift + G a napíš /usr/libexec/sshd
  4. Pridaj ho a zapni
  5. Znova sa pripoj cez SSH

Prípadne pracuj v nechránených priečinkoch ako ~/Developer alebo ~/Projects – tieto obmedzenia sa na ne nevzťahujú a na projekty s kódom sú aj tak vhodnejšie.

Krok 7: Spusti Claude Code

Keď si pripojený cez SSH:

claude

To je všetko. Claude Code ti teraz beží na Macu a ovládaš ho z iPhonu odkiaľkoľvek.

Pridaj si hlasový vstup

Písanie na klávesnici telefónu ťa rýchlo omrzí. Našťastie máš viac možností:

Vstavané diktovanie v iOS

Ťukni na ikonu mikrofónu na klávesnici a hovor. Text sa prepisuje priamo do terminálu. Nový riadok vložíš, keď povieš „new line“. Jednoduché a nič netreba nastavovať.

Aplikácie s Whisperom (presnejšie)

Ak chceš vyššiu presnosť, najmä pri technických výrazoch:

Aiko – bezplatná aplikácia, ktorá spúšťa model OpenAI Whisper lokálne. Nadiktuješ, necháš prepísať, skopíruješ a vložíš do terminálu.

Whisper Transcription – podobný prístup, výborne si poradí s programátorskou slovnou zásobou.

Vlastná iOS skratka + Whisper API – vytvor si skratku, ktorá nahrá zvuk, pošle ho do OpenAI Whisper API a skopíruje výsledok. Stojí asi 0,006 $ za minútu, ale je veľmi presná.

Workflow potom vyzerá takto: ťukneš na skratku → hovoríš → vložíš do terminálu. Pribudne jeden krok, ale presnosť je citeľne lepšia.

Cyklus build a deploy

Keď si pripojený cez SSH a Claude Code beží, môžeš ho nechať buildovať a nasadzovať aplikácie do telefónu. Celý trik je v OTA (Over-The-Air) inštalácii – Mac zbuilduje .ipa, ponúkne ho cez HTTPS a ty ho nainštaluješ ťuknutím na odkaz v Safari.

Bezdrôtové debugovanie pomocou devicectl cez Tailscale spoľahlivo nefunguje, pretože vyhľadávanie zariadení od Apple vyžaduje, aby boli v tej istej fyzickej sieti. Riešením je OTA.

Predpoklady

  1. Zapni v iPhone Developer Mode (Settings → Privacy & Security → Developer Mode)
  2. Over si, že je zariadenie zaregistrované v tvojom Apple Developer účte

Krok 1: Vytvor build skript

Vytvor si na Macu skript (napr. ~/scripts/ota-build.sh):

#!/bin/bash

# Konfigurácia – uprav tieto hodnoty
APP_NAME="YourApp"
SCHEME="YourApp"
PROJECT_DIR="$1"
BUNDLE_ID="com.yourcompany.yourapp"
OUTPUT_DIR="$HOME/OTAServer"

# Tailscale hostname tvojho Macu
TAILSCALE_HOST="your-mac.tail1234.ts.net"
PORT="8443"

# Vytvor výstupný adresár
mkdir -p "$OUTPUT_DIR"
cd "$PROJECT_DIR"

# Build archívu
xcodebuild -scheme "$SCHEME" \
  -archivePath "$OUTPUT_DIR/$APP_NAME.xcarchive" \
  -configuration Release \
  archive

# Export IPA
xcodebuild -exportArchive \
  -archivePath "$OUTPUT_DIR/$APP_NAME.xcarchive" \
  -exportPath "$OUTPUT_DIR" \
  -exportOptionsPlist "$OUTPUT_DIR/ExportOptions.plist"

# Vygeneruj manifest.plist so správnymi URL
cat > "$OUTPUT_DIR/manifest.plist" << EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>items</key>
    <array>
        <dict>
            <key>assets</key>
            <array>
                <dict>
                    <key>kind</key>
                    <string>software-package</string>
                    <key>url</key>
                    <string>https://$TAILSCALE_HOST:$PORT/$APP_NAME.ipa</string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
                <string>$BUNDLE_ID</string>
                <key>bundle-version</key>
                <string>1.0</string>
                <key>kind</key>
                <string>software</string>
                <key>title</key>
                <string>$APP_NAME</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
EOF

echo "Build dokončený!"
echo "Inštalačná URL: itms-services://?action=download-manifest&url=https://$TAILSCALE_HOST:$PORT/manifest.plist"

Pridaj mu právo na spúšťanie: chmod +x ~/scripts/ota-build.sh

Krok 2: Vytvor ExportOptions.plist

Tento súbor Xcode povie, ako má podpísať tvoju aplikáciu:

mkdir -p ~/OTAServer
cat > ~/OTAServer/ExportOptions.plist << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>method</key>
    <string>development</string>
    <key>teamID</key>
    <string>YOUR_TEAM_ID</string>
</dict>
</plist>
EOF

Nahraď YOUR_TEAM_ID svojím Apple Developer Team ID (nájdeš ho na developer.apple.com → Membership).

Krok 3: Nastav HTTPS server

iOS pri OTA inštaláciách vyžaduje HTTPS. S Tailscale je to jednoduché:

# Nainštaluj Caddy (jednoduchý HTTPS server)
brew install caddy

# Získaj Tailscale HTTPS certifikát
tailscale cert $(tailscale status --json | jq -r '.Self.DNSName' | sed 's/\.$//')

Spusti server:

cd ~/OTAServer
caddy file-server --listen :8443 --root . --browse

Nechaj ho bežať v samostatnej session terminálu (alebo použi tmux/screen).

Krok 4: Jednorazové nastavenie iPhonu

iPhone musí certifikátu dôverovať. Stačí to urobiť raz:

  1. Otvor v iPhone Safari
  2. Choď na https://your-mac.tail1234.ts.net:8443/ (tvoj Tailscale hostname)
  3. Ak sa zobrazí upozornenie na certifikát, možno ho budeš musieť nainštalovať:
    • Stiahni certifikát
    • Choď do Settings → General → VPN & Device Management
    • Nainštaluj profil
    • Choď do Settings → General → About → Certificate Trust Settings
    • Zapni pre certifikát úplnú dôveru

Krok 5: Nainštaluj aplikáciu

Po dokončení buildu otvor v iPhone Safari a choď na:

itms-services://?action=download-manifest&url=https://your-mac.tail1234.ts.net:8443/manifest.plist

Safari ti ponúkne inštaláciu aplikácie. Ťukni na Install a aplikácia sa objaví na ploche.

Automatizácia s Claude Code

Keď to máš nastavené, povedz Claudovi, nech spustí build skript:

Zbuilduj a nasaď aplikáciu pomocou ~/scripts/ota-build.sh

Claude skript spustí a ty dostaneš inštalačnú URL. Otvor ju v Safari, ťukni na Install a hotovo.

Celý workflow

Keď je všetko pripravené:

  1. Otvor v iPhone Termius
  2. Pripoj sa cez Tailscale k Macu
  3. Spusti claude
  4. Opíš, čo chceš vytvoriť (pokojne to nadiktuj)
  5. Claude napíše kód a zbuilduje projekt
  6. Nový build sa objaví v telefóne
  7. Prepni do aplikácie, otestuj, prepni späť a pokračuj

Teraz vyvíjaš pre iOS z telefónu. Mac slúži len ako vzdialený build server.

Tipy, aby všetko išlo hladko

Namiesto SSH použi Mosh – ak máš nestabilné pripojenie (mobilné dáta, slabá WiFi), Mosh si s výpadkami poradí bez problémov. Blink ho podporuje natívne.

Nenechaj Mac zaspať – vypni uspávanie v nastaveniach Energy Saver alebo použi nástroj ako Amphetamine, ktorý ho udrží v chode.

Nastav si SSH kľúče – s prihlasovaním cez kľúče nebudeš musieť zakaždým zadávať heslo.

Používaj vyhradený priečinok na projekty – drž kód v ~/Developer alebo podobnom priečinku a vyhneš sa problémom s oprávneniami.

Kedy to dáva zmysel

Tento workflow sa oplatí najmä vtedy, keď:

  • máš voľnú chvíľu mimo pracovného stola (dochádzanie, cestovanie, čakárne)
  • chceš rýchlo skúšať nápady a nechce sa ti vyťahovať notebook
  • potrebuješ odkiaľkoľvek pushnúť rýchlu opravu
  • radšej diktuješ zmeny v kóde, než by si ich písal

Sústredenú prácu za stolom to nenahradí. Ale na chvíle, keď nie si pri svojom pracovnom počítači a chceš sa pohnúť ďalej, to zvládne prekvapivo veľa.

Záver

Bariéra medzi „potrebujem notebook“ a „môžem pracovať odkiaľkoľvek“ je nižšia, než si väčšina vývojárov uvedomuje. Terminálová aplikácia, Tailscale a Claude Code urobia z telefónu rozhranie, v ktorom sa dá naozaj vyvíjať.

Nastavenie zaberie 15 minút. Slúžiť ti bude navždy.

Vyskúšaj to cestou do práce. Možno ťa prekvapí, koľko toho dokážeš vytvoriť na 6-palcovej obrazovke.

Chceš, aby niečo také bežalo aj u teba?

MCP servery a automatizácie staviam aj pre firmy. Začni bezplatným AI auditom alebo mi napíš, čo máš na mysli.