Ustvari aplikacijo s Claude Code: vodič za iPhone
Avtor: Mehdi Azizi
Posodobljeno , 15 min
Namesti Claude Code, ustvari projekt Expo, napiši CLAUDE.md, promptaj zaslon za zaslonom in pošlji na TestFlight z EAS: celoten vodič.
Ustvariti aplikacijo s Claude Code: kratek odgovor
Za aplikacijo s Claude Code potrebuješ plačljiv dostop do Claude Code (združljivo naročnino ali Console s plačilom po porabi), Node.js, iPhone z Expo Go in projekt Expo. Napišeš datoteko CLAUDE.md, ki opiše tvoj sklad tehnologij in pravila, zahtevaš en zaslon naenkrat, vsak zaslon preizkusiš na svojem iPhonu, nato pa aplikacijo z EAS pošlješ na TestFlight.
Ta vodič dopolnjuje moj priročnik ustvari aplikacijo za iOS z umetno inteligenco, ki razloži, kaj AI dela dobro in kaj zgreši. Tukaj gremo v prakso: ukazi, datoteke, prompti.
Svoje aplikacije za iOS vsak dan kodiram s Claude Code in Cursorjem. Moj sklad: React Native, Expo, EAS, RevenueCat in Supabase. Solys, budilka z mini igrami, in TradaZen, aplikacija za vadbo trgovanja, sta objavljeni v App Storu. Nolera in Clic je Apple zavrnil, nato sem ju popravil. Vse, kar sledi, izhaja iz tega dela.
Če želiš videti to metodo na objavljeni aplikaciji, sem dokumentiral pot aplikacije TradaZen, od prvega commita do Applovih zavrnitev in preobratov. Ta izkušnja dopolnjuje korake vodiča.
1. korak: zberi predpogoje
Pred prvim ukazom preveri, da imaš vse to.
Plačljiv račun Claude
Claude Code ni vključen v brezplačni paket claude.ai. Po dokumentaciji podjetja Anthropic potrebuješ račun Pro, Max, Team, Enterprise ali Console. Paket Pro zadošča za začetek, v okviru njegovih omejitev porabe.
Node.js in terminal
Expo zahteva Node.js v različici LTS, na macOS, Windows ali Linuxu. Claude Code teče na macOS 13 ali novejšem, Windows 10 ali novejšem in na glavnih distribucijah Linuxa.
iPhone in Expo Go
Na iPhone iz App Stora namesti Expo Go, da lahko preizkusiš prve zaslone, ne da bi prevajal svojo aplikacijo. Preden ustvariš projekt, na strani Expo Go preveri, katera različica SDK je združljiva s tvojo namestitvijo. Najnovejši SDK in različica v App Storu nista vedno na voljo hkrati: Expo je ta zamik dokumentiral maja 2026. Zato ne izhajaj iz številke različice iz starega vodiča. Če želiš uporabljati lastne nativne module, predvidi razvojno gradnjo (development build).
Mac? Ni obvezen
Gradnje za iOS se prevajajo na strežnikih Expo z EAS Build, z različico Xcode, ki jo določi tvoj Expo SDK (ITMS-90725), in EAS Submit deluje na macOS, Linuxu in Windows. Do TestFlighta lahko torej prideš z osebnim računalnikom. Vodič objavi aplikacijo za iOS brez Maca podrobno opiše ta postopek.
Račun Apple Developer, kasneje
Za kodiranje in testiranje v Expo Go iz App Stora ga ne potrebuješ. Obvezen postane, ko aplikacijo pošiljaš na TestFlight. K temu se vrnemo v 7. koraku.
2. korak: namesti Claude Code
Na macOS, Linuxu ali WSL Anthropic priporoča nativni namestitveni program:
curl -fsSL https://claude.ai/install.sh | bash
Na Windows, v PowerShellu:
irm https://claude.ai/install.ps1 | iex
Nato preveri, ali je namestitev uspela:
claude --version
Če ti je ljubši npm, je ukaz npm install -g @anthropic-ai/claude-code. Ne dodajaj sudo spredaj, dokumentacija to izrecno odsvetuje.
Ob prvem zagonu claude se odpre brskalnik, da se prijaviš v svoj račun. Potem pišeš v slovenščini: Claude bere tvoje datoteke, predlaga spremembe in zaganja ukaze, z tvojim dovoljenjem.
3. korak: ustvari projekt Expo
Pojdi v mapo, kjer hraniš projekte, in zaženi:
npx create-expo-app@latest mon-app
cd mon-app
npx expo start
Če orodje ponudi izbiro med združljivostjo z Expo Go iz App Stora in najnovejšim SDK, za to vajo izberi združljivost. V vsakem primeru pred nadaljevanjem preveri, ali Expo Go na tvojem iPhonu podpira ustvarjeno različico. Razvojno gradnjo lahko pripraviš, ko jo bo projekt potreboval.
V terminalu se pojavi koda QR. Skeniraj jo s kamero iPhona: aplikacija se odpre v Expo Go. Prvič se pogosto zatakne pri eni podrobnosti: Expo Go odpre tvoj projekt samo, če sta Expo CLI in Expo Go prijavljena v isti račun Expo. Na računalniku zaženi npx expo login in se v aplikaciji prijavi z istim računom.
Zakaj Expo in ne Swift? Claude zelo dobro pozna React Native, ti pa testiraš brez Maca. To izbiro razložim na strani React Native in Expo za mobilno aplikacijo.
Zapomni si eno omejitev Expo Go: vsebuje samo nativne module, ki jih že ima vgrajene. Takoj ko dodaš nativno knjižnico, ki je ne pozna, na primer nakupe v aplikaciji, boš potreboval razvojno gradnjo. Za prve zaslone to ni težava.
Izberi pravo testno okolje
Expo Go, razvojna gradnja in TestFlight ne dokazujejo istega. Expo opisuje razvojno gradnjo kot tvojo lastno testno aplikacijo z nativnimi moduli, ki jih tvoj projekt potrebuje.
| Kaj želiš preveriti | Kje testirati | Česa test ne pokaže |
|---|---|---|
| Prikaz prvega zaslona in preizkus navigacije | Expo Go, z združljivim SDK | Delovanja nativnih modulov, ki jih Expo Go nima |
| Uporabo nativne knjižnice, dodane v projekt | Razvojna gradnja, ki vključuje to knjižnico | Distribuirane različice niti tega, ali jo bo Apple sprejel |
| Pregled aplikacije za testerje, nato test nakupov | Gradnja, poslana na TestFlight, in pravilno nastavljeni izdelki | Pravega plačila stranke ali odobritve za prodajo |
Preden dodaš odvisnost, vprašaj Clauda: „Je združljiva z mojim SDK in trenutnim testnim okoljem? Moram aplikacijo znova prevesti? Odgovor podpri z dokumentacijo.“ Tako ne zapraviš večera s popravljanjem modula, ki ga Expo Go preprosto ne more naložiti, ali SDK, ki je ob pošiljanju zavrnjen zaradi nejavnega API.
4. korak: napiši datoteko CLAUDE.md projekta
To je najbolj donosen korak. Claude Code lahko hrani spomin projekta, a pravila moraš zapisati izrecno. Datoteka CLAUDE.md v korenu projekta prinaša navodila, skupna vsem sejam. Tja zapišeš, česar Claude ne more uganiti.
V mapi projekta zaženi claude in vpiši /init. Po dokumentaciji Claude analizira projekt in ustvari prvi CLAUDE.md z ukazi in konvencijami, ki jih najde. Nato ga dopolniš s svojimi pravili. Anthropic priporoča manj kot 200 vrstic: daljša ko je datoteka, slabše se navodila upoštevajo.
Tukaj je kratek primer, podoben temu, kar uporabljam:
# Moja aplikacija
## Sklad
- Expo (SDK iz create-expo-app), React Native, strogi TypeScript
- Navigacija: Expo Router, ena datoteka na zaslon v app/
- Podatki: Supabase (kasneje), nikoli skrivnega ključa v aplikaciji
## Pravila
- En zaslon naenkrat. Ne dotikaj se datotek zunaj zahteve.
- Nobene fiksne višine v točkah: velikosti glede na zaslon,
ScrollView, če vsebina lahko preseže zaslon.
- Vsak zaslon obravnava 3 stanja: nalaganje, prazno, napaka.
- Besedila vmesnika v slovenščini s šumniki.
- Preden kodiraš več kot 2 datoteki: predlagaj načrt in počakaj na mojo odobritev.
## Ukazi
- Zagon: npx expo start
- Testi: uporabi skripto, ki dejansko obstaja v package.json.
Če je še ni, to sporoči; ne poročaj o uspešnih testih.
- Tipi: npx tsc --noEmit
- Po vsaki spremembi: zaženi teste in tipe, nato mi povej,
kaj se je spremenilo in kako to preverim na iPhonu.
Pravilo o fiksnih višinah ni tam po naključju. K temu se vrnemo v 6. koraku.
5. korak: promptaj en zaslon naenkrat
„Naredi mi aplikacijo za sledenje navadam z naročnino“ ustvari ogromen, krhek projekt, ki ga ni mogoče pregledati. Metoda, ki deluje, je obratna: ena zahteva, en zaslon, en rezultat, ki ga preizkusiš v petih minutah.
Začni z načrtom
Za vse, kar zadeva več datotek, preklopi v način načrtovanja. Pritiskaj Shift+Tab, dokler v vrstici stanja ne vidiš plan mode on. V tem načinu Claude bere datoteke in predlaga načrt, a ničesar ne spremeni pred tvojo odobritvijo. Prebereš, popraviš in potrdiš.
Prvi prompt za okvir je videti takole:
Želim aplikacijo za sledenje navadam. Različica 1: ena sama funkcija,
odkljukanje današnjih navad. Predlagaj seznam zaslonov in
strukturo map. Zaenkrat ničesar ne kodiraj.
Opiši zaslon, njegova stanja in omejitve
Nato en prompt na zaslon. Več mejnih primerov poimenuješ, manj jih Claude pozabi:
Ustvari zaslon app/index.tsx, ki prikaže današnje navade.
- Vsaka vrstica: ime navade, potrditveno polje, trenutni niz.
- Prazno stanje: besedilo in gumb „Dodaj navado“.
- Stanje nalaganja in stanje napake z gumbom „Poskusi znova“.
- Podatki zaenkrat prihajajo iz lokalne tabele.
- Mora delovati na iPhonu SE in na največjem iPhonu:
brez fiksne višine, seznam se pomika.
Na koncu zaženi teste in tipe.
Popravljaj, ne da bi pustil vse prepisati
Ko kakšna podrobnost ni v redu, bodi natančen in omeji obseg:
Na mojem iPhonu gumb „Dodaj navado“ zdrsne pod spodnjo vrstico,
ko je seznam dolg. Popravi samo to težavo v app/index.tsx,
ne da bi se dotaknil drugih datotek. Razloži vzrok.
V terminal lahko prilepiš tudi posnetek zaslona: Claude ga prebere.
Vaja: navada, ki ostane odkljukana po ponovnem zagonu
To je učna vaja, ki jo narediš v svojem projektu, ne posnetek že dokončane funkcije. Cilj je preiti od ustvarjenega zaslona k preverljivemu vedenju. Ne zahteva ne uporabniškega računa ne nakupa v aplikaciji.
- Obdrži eno samo lokalno navado z imenom „Beri 10 minut“.
- Zahtevaj potrditveno polje in lokalno shranjevanje, združljivo s tvojim projektom Expo.
- Prosi agenta, naj navede spremenjene datoteke, morebitno odvisnost in dejansko izvedene ukaze.
- Namesti ali odpri aplikacijo na iPhonu in opravi spodnja preverjanja.
Na obstoječem zaslonu omogoči odkljukanje navade „Beri 10 minut“
in ohrani njeno stanje po zaprtju in ponovnem odprtju aplikacije.
Uporabi lokalno shranjevanje, združljivo z odvisnostmi projekta.
Ne ustvarjaj računa, strežnika, naročnine ali dodatne statistike.
Pred kodiranjem razloži, kako boš obravnaval nalaganje in neuspešno
branje ali shranjevanje. Nato naredi omejeno spremembo.
Na koncu: spremenjene datoteke, izvedeni ukazi, nepreizkušene omejitve
in natančni koraki za preverjanje rezultata na iPhonu.
| Dejanje na iPhonu | Pričakovani rezultat | Če ne uspe |
|---|---|---|
| Prvo odprtje aplikacije | Navada in njeno polje sta vidna, brez napake | Preveri začetno stanje in nalaganje iz shrambe |
| Odkljukaj, zapri in znova odpri aplikacijo | Navada ostane odkljukana | Preveri zapis in nato branje istega ključa |
| Odstrani kljukico in znova zaženi | Navada ostane neodkljukana | Preveri, ali se shrani tudi vrednost false |
| Ponovi postopek v letalskem načinu | Lokalna funkcija ostane na voljo | Poišči omrežno odvisnost, dodano brez razloga |
| Povečaj velikost besedila | Ime in kontrolnik ostaneta dostopna | Odstrani omejitve, ki odrežejo ali skrijejo dejanje |
Če ena vrstica ne uspe, ne zahtevaj „prepiši vse“. Opiši dejanje, pričakovani in dejanski rezultat. Na primer: „Po ponovnem zagonu je polje spet prazno, čeprav sem ga odkljukal. Razloži vzrok in popravi shranjevanje, ne da bi spremenil dizajn.“
Prenesi predlogo CLAUDE.md in kontrolni list (.md). Odpri ga v urejevalniku ali aplikaciji za zapiske. Preden ga predaš agentu, prilagodi ukaze svojemu projektu.
6. korak: daj v pregled in testiraj
Claude Code piše kodo, ki je videti pravilna. Ali res je, ti povedo samo testi in tvoj iPhone.
Testi, da ne pokvariš tega, kar deluje
Bolj ko aplikacija raste, bolj vsaka zahteva tvega, da pokvari že potrjen zaslon. Projekt, ki ga ustvari Expo, nima testov: najprej prosi Clauda, naj namesti Jest z jest-expo, kot priporoča dokumentacija Expo. Nato zahtevaj teste za pomembno logiko (izračun niza, preverjanje obrazca) in naj jih zažene po vsaki spremembi. Zato so ukazi za teste zapisani v CLAUDE.md: Claude jih izvede, ne da bi ga moral opominjati. Z datoteko pravil in testi AI precej manj pokvari tisto, kar je že delovalo.
Preglej vsako spremembo
Ni ti treba razumeti vsake vrstice. Moraš pa vedeti, katere datoteke so se spremenile in zakaj. Če se je Claude dotaknil nepovezane datoteke, ga pred potrditvijo vprašaj za razlog. Nato postavi vprašanje: „Kaj se lahko tukaj pokvari?“
Preveri na majhnem in velikem iPhonu
To lekcijo sem najdražje plačal. Apple je Solys zavrnil po pravilu 2.1: demo uvajanja je bilo na iPadu Air, kjer je aplikacija tekla v načinu združljivosti z iPhonom, nemogoče dobiti. Vzrok: višine, zapisane v fiksnih točkah, ne glede na velikost zaslona. Na mojem iPhonu je bilo vse v redu. Koda je bila pregledana, testi zeleni. Nobeno orodje ni pogledalo zaslona v drugi velikosti.
Od takrat vsak zaslon preverim vsaj na najmanjšem in največjem iPhonu. Če imaš samo en telefon, bo zadostoval simulator Xcode na Macu ali prijatelj z drugim modelom. Posebej poglej dolga besedila, odprto tipkovnico pri obrazcih in gumbe, pritrjene na dno.
Česa Claude Code ne zna dobro
Claude Code blesti pri zaslonih in logiki. Zunaj tvoje mape je precej manj zanesljiv.
Podpisovanje in certifikati
Brez dovoljene povezave s tvojim računom Apple Claude ne pozna njegovega stanja. Lahko si izmisli postopek s certifikati, ki meša Xcode in Expo. Podpisovanje prepusti EAS: dokumentacija Expo pojasnjuje, da lahko EAS CLI te datoteke ustvari in shrani namesto tebe, ko se povežeš z računom Apple Developer.
App Store Connect
Opis v trgovini, izjave o zasebnosti, posnetki zaslona in pravne povezave so podatki, ki jih moraš preveriti v App Store Connect. Claude Code zdaj lahko deluje v prijavljenem brskalniku prek svoje integracije s Chromom, s potrebnimi dostopi. To ne zagotavlja, da so polja pravilna: preberi podatke, preveri uporabljene račune ter sam potrdi zaveze in oddajo v pregled.
Naročnine
Napisati paywall traja deset minut. Uskladiti izdelke v App Store Connect, njihovo nastavitev v RevenueCat in kodo je druga zgodba. En znak razlike v identifikatorju in paywall pri pregledovalcu ostane prazen. Najpogostejše pasti so naštete v napakah začetnikov pri paywallu za iOS.
Mejni primeri
Brez navodil Claude obravnava običajen primer. Ni omrežja, prazen seznam, prekinjen nakup: te moraš poimenovati ti.
Varnost Supabase
Ko Claude ustvarja tabele v Supabase, preveri, da je vklopljena varnost na ravni vrstic (RLS), s pravilniki, ki vsakega uporabnika omejijo na njegove podatke. Preveri tudi, da v kodi aplikacije ni nobenega skrivnega ključa. Ti dve prepovedi zapiši v CLAUDE.md, takoj ko povežeš bazo.
7. korak: na TestFlight z EAS
Tvoji zasloni so preverjeni v Expo Go ali v razvojni gradnji, odvisno od uporabljenih modulov. Zdaj preidi na gradnjo, ki jo boš razdelil testerjem.
Priprava EAS
Zdaj potrebuješ plačljiv račun Apple Developer: kot opominja Expo, je obvezen za pošiljanje aplikacije v App Store. Nato namesti orodje Expo in nastavi projekt:
npm install --global eas-cli
eas login
eas build:configure
V app.json pod ios.bundleIdentifier dodaj edinstven identifikator paketa, na primer com.tonnom.monapp.
Prevajanje in pošiljanje
eas build --platform ios --profile production
eas submit --platform ios
Prvi ukaz prevede aplikacijo na strežnikih Expo. Ob prvem zagonu ti EAS ponudi povezavo z računom Apple, da ustvari certifikate. Drugi pošlje gradnjo v App Store Connect. Vse lahko narediš tudi naenkrat z eas build --platform ios --auto-submit.
Apple mora gradnjo obdelati, preden se pojavi v TestFlightu, in ta obdelava jo lahko zavrne, na primer z ITMS-90717 zaradi prozorne ikone. Uspešno pošiljanje torej ne pomeni, da jo je že mogoče namestiti: preveri njeno stanje v App Store Connect. Notranje in zunanje testerje ter beta pregled razložim v vodiču TestFlight za testiranje aplikacije za iPhone.
Na tej gradnji ponovi preverjanja iz 6. koraka. Aplikacija, ki deluje v Expo Go, se lahko v produkciji še vedno sesuje, na primer ko manjka nativni modul.
Koliko to res stane
Tukaj so cene, kot jih navajajo storitve, preverjene 27. septembra 2026, v dolarjih. Zaračunani znesek je odvisen tudi od tvoje regije, davkov in porabe: preden se naročiš, preveri ponudbo.
- Naročnina Claude: paket Pro stane 20 $ na mesec ali 17 $ na mesec pri letnem plačilu. Paketi Max se začnejo pri 100 $ na mesec, za večjo porabo.
- Račun Apple Developer: 99 $ na leto, obvezen za TestFlight in App Store.
- EAS: brezplačni paket Expo vključuje 15 gradenj za iOS na mesec, v čakalni vrsti z nizko prioriteto. Paket Starter stane 19 $ na mesec, plus dodatna poraba.
Za majhen prototip sta Pro in brezplačni paket EAS lahko dobra osnova, če ostaneš znotraj njunih kvot. Pred TestFlightom dodaj račun Apple, nato posebej oceni storitve, ki jih res potrebuješ: bazo podatkov, shrambo ali plačljiv API. Predloga proračuna za prvo aplikacijo ti pomaga razporediti te postavke. Upoštevati moraš še svoj čas za nastavitve in preverjanje.
Iskrene omejitve in kje se zatakne
Claude Code je spremenil, kdo lahko ustvari aplikacijo za iPhone. Ni pa spremenil tega, kar Apple zahteva za objavo. Zavrnitev pride hitro: Solys jih je dobil, Nolera in Clic tudi. Najpogostejši razlogi so opisani v članku zakaj Apple zavrne aplikacijo.
S tem vodičem lahko sam prideš do TestFlighta. Najpogosteje se zatakne pozneje: povezava naročnin, priprava gradiva za pregledovalca, razumevanje zavrnitve. Za pregled celotne poti preberi stran ustvari aplikacijo za iPhone.
Za ta del iOS Kit združuje začetno kodo mojih aplikacij, vključno z naročninami, skille za Claude Code za vsak korak in Apple Review Kit. Celotna pot je na strani tečaj Claude Code za ustvarjanje aplikacije za iOS.
Si že obtičal in ne veš, pri čem? Brezplačna diagnostika ti pove, kaj te res zavira, in ti pošlje moj kontrolni seznam proti Applovim zavrnitvam.
Pogosta vprašanja
Lahko ustvarim aplikacijo za iPhone s Claude Code, ne da bi znal programirati?
Da, za zaslone in preprosto logiko, če vsak korak pregledaš in testiraš. Ne, če upaš, da ti ne bo treba ničesar razumeti. Znati moraš prebrati sporočilo o napaki, zagnati ukaz in preveriti, kaj je Claude spremenil. To se hitro naučiš med gradnjo.
Je Claude Code brezplačen?
Ne. Claude Code zahteva račun Pro, Max, Team, Enterprise ali Console. Brezplačni paket claude.ai ga ne vključuje. Paket Pro zadošča za začetek, z omejitvami porabe, ki jih moraš spremljati.
Potrebujem Mac za aplikacijo za iOS s Claude Code?
Ne. Kodiraš na katerem koli računalniku, testiraš v Expo Go na iPhonu, EAS pa aplikacijo prevede in pošlje s strežnikov Expo. Mac je še vedno priročen zaradi simulatorja, ni pa obvezen.
Claude Code ali Cursor za aplikacijo React Native?
Uporabljam oba, vsak dan. Claude Code dela v terminalu in sam izvede spremembo in teste. Cursor je urejevalnik. Metoda šteje bolj kot orodje: pravila, en zaslon naenkrat, testi.
Koliko časa traja objava prve aplikacije s Claude Code?
Odvisno od velikosti aplikacije in tvojega časa. Aplikacija z eno samo funkcijo gre precej hitreje. Najbolj nepredvidljiv del ostaja Applov pregled.
Lahko Claude Code nastavi naročnine v aplikaciji?
Lahko napiše kodo za paywall in RevenueCat. S povezanimi orodji in potrebnimi dovoljenji lahko posega tudi v konzole. Iz obstoja kode nikoli ne sklepaj, da so izdelki nastavljeni: preveri identifikatorje, cene in pravice po nakupu, nato na TestFlightu preizkusi nakup in obnovitev. Pogoste napake pri paywallih za iOS ti dajo točke za preverjanje.