Izrada aplikacije s Claude Code: vodič za iPhone
Autor: Mehdi Azizi
Ažurirano , 15 min
Instaliraj Claude Code, napravi Expo projekt, napiši CLAUDE.md, traži ekran po ekran i pošalji aplikaciju na TestFlight preko EAS-a. Cijeli vodič.
Izrada aplikacije s Claude Code: kratki odgovor
Za izradu aplikacije s Claude Code trebaš plaćeni pristup Claude Codeu (kompatibilnu pretplatu ili Console s plaćanjem po potrošnji), Node.js, iPhone s Expo Go i Expo projekt. Napišeš datoteku CLAUDE.md koja opisuje tvoj stack i tvoja pravila, tražiš jedan po jedan ekran, svaki ekran testiraš na iPhoneu, a zatim aplikaciju šalješ na TestFlight preko EAS-a.
Ovaj vodič nadopunjuje moj vodič izrada iOS aplikacije uz AI, koji objašnjava što AI radi dobro, a gdje griješi. Ovdje prelazimo na praksu: naredbe, datoteke, promptovi.
Svoje iOS aplikacije svaki dan programiram s Claude Codeom i Cursorom. Moj stack: React Native, Expo, EAS, RevenueCat i Supabase. Solys, budilica s mini-igrama, i TradaZen, aplikacija za vježbanje tradinga, objavljene su na App Storeu. Nolera i Clic su bile odbijene od Applea, a zatim ispravljene. Sve što slijedi dolazi iz tog rada.
Ako želiš vidjeti ovu metodu primijenjenu na objavljenu aplikaciju, dokumentirao sam put TradaZena, od prvog commita do Appleovih odbijanja i promjena smjera. To iskustvo nadopunjuje korake iz ovog vodiča.
Korak 1: pripremi sve što trebaš
Prije prve naredbe provjeri imaš li sve ovo.
Plaćeni Claude račun
Claude Code nije uključen u besplatnu ponudu claude.ai. Prema Anthropicovoj dokumentaciji, trebaš Pro, Max, Team, Enterprise ili Console račun. S Pro planom možeš početi, unutar njegovih ograničenja korištenja.
Node.js i terminal
Expo traži Node.js u LTS verziji, na macOS-u, Windowsu ili Linuxu. Claude Code radi na macOS-u 13 ili novijem, Windowsu 10 ili novijem i glavnim Linux distribucijama.
iPhone i Expo Go
Instaliraj Expo Go s App Storea na svoj iPhone da isprobaš prve ekrane bez kompajliranja vlastite aplikacije. Prije nego napraviš projekt, provjeri koja je verzija SDK-a kompatibilna s tvojom instalacijom na stranici Expo Go. Najnoviji SDK i verzija koja se distribuira na App Storeu nisu uvijek dostupni u isto vrijeme: Expo je, primjerice, dokumentirao taj raskorak u svibnju 2026. Zato ne kreći od broja verzije iz nekog starog vodiča. Za korištenje vlastitih nativnih modula predvidi development build.
Mac? Nije obavezan
iOS buildovi se kompajliraju na Expoovim serverima pomoću EAS Builda, s verzijom Xcodea koju odabire tvoj Expo SDK (ITMS-90725), a EAS Submit radi na macOS-u, Linuxu i Windowsu. Dakle, do TestFlighta možeš doći s PC-ja. Vodič objava iOS aplikacije bez Maca detaljno opisuje taj lanac.
Apple Developer račun, kasnije
Ne treba ti za programiranje i testiranje u Expo Go s App Storea. Postaje obavezan kad šalješ aplikaciju na TestFlight. Na to se vraćamo u koraku 7.
Korak 2: instaliraj Claude Code
Na macOS-u, Linuxu ili WSL-u Anthropic preporučuje nativni instalacijski program:
curl -fsSL https://claude.ai/install.sh | bash
Na Windowsu, u PowerShellu:
irm https://claude.ai/install.ps1 | iex
Zatim provjeri je li instalacija uspjela:
claude --version
Ako više voliš npm, naredba je npm install -g @anthropic-ai/claude-code. Ne stavljaj sudo ispred, dokumentacija to izričito ne preporučuje.
Kod prvog pokretanja claude otvara se preglednik za prijavu u tvoj račun. Nakon toga pišeš na svom jeziku: Claude čita tvoje datoteke, predlaže izmjene i pokreće naredbe, uz tvoje odobrenje.
Korak 3: napravi Expo projekt
Uđi u mapu u kojoj držiš projekte i pokreni:
npx create-expo-app@latest moja-app
cd moja-app
npx expo start
Ako alat ponudi izbor između kompatibilnosti s Expo Go s App Storea i najnovijeg SDK-a, za ovu vježbu odaberi kompatibilnost. U svakom slučaju, prije nastavka provjeri podržava li Expo Go instaliran na tvom iPhoneu verziju koja je napravljena. Development build možeš pripremiti kad ga tvoj projekt bude trebao.
U terminalu se pojavi QR kod. Skeniraj ga kamerom iPhonea: aplikacija se otvara u Expo Go. Jedan detalj često zapne prvi put: Expo Go otvara tvoj projekt samo ako su Expo CLI i Expo Go prijavljeni u isti Expo račun. Pokreni npx expo login na računalu i prijavi se istim računom u aplikaciji.
Zašto Expo, a ne Swift? Claude jako dobro poznaje React Native, a testiraš bez Maca. Taj izbor objašnjavam na stranici React Native i Expo za mobilnu aplikaciju.
Imaj na umu jedno ograničenje Expo Go: sadrži samo nativne module koje već ima ugrađene. Čim dodaš nativnu biblioteku koju ne poznaje, recimo kupnje u aplikaciji, trebat će ti development build. Za prve ekrane to nije problem.
Odaberi pravo okruženje za testiranje
Expo Go, development build i TestFlight ne dokazuju istu stvar. Expo opisuje development build kao tvoju vlastitu testnu aplikaciju, s nativnim modulima koje tvoj projekt treba.
| Što želiš provjeriti | Gdje testirati | Ograničenja testa |
|---|---|---|
| Prikazati prvi ekran i isprobati navigaciju | Expo Go, s kompatibilnim SDK-om | Ponašanje nativnih modula kojih nema u Expo Go |
| Koristiti nativnu biblioteku dodanu u projekt | Development build koji uključuje tu biblioteku | Distribuirana verzija i njezino prihvaćanje od Applea |
| Proći aplikaciju namijenjenu testerima, zatim testirati kupnje | Build poslan na TestFlight i ispravno konfigurirani proizvodi | Stvarno plaćanje kupca ili odobrenje za prodaju |
Prije dodavanja ovisnosti pitaj Claudea: „Je li kompatibilna s mojim SDK-om i trenutnim okruženjem za testiranje? Treba li ponovno kompajlirati aplikaciju? Potkrijepi odgovor dokumentacijom.” Tako izbjegneš večer potrošenu na popravljanje modula koji Expo Go jednostavno ne može učitati, ili SDK-a odbijenog pri slanju zbog nejavnog API-ja.
Korak 4: napiši datoteku CLAUDE.md za projekt
Ovo je korak koji se najviše isplati. Claude Code može čuvati memoriju projekta, ali njegova pravila moraš izričito napisati. Datoteka CLAUDE.md, smještena u korijen projekta, daje upute zajedničke svim sesijama. Tu pišeš ono što Claude ne može pogoditi.
U mapi projekta pokreni claude, zatim upiši /init. Prema dokumentaciji, Claude analizira projekt i generira prvi CLAUDE.md s naredbama i konvencijama koje pronađe. Zatim ga dopuniš svojim pravilima. Anthropic preporučuje da ostaneš ispod 200 redaka: što je datoteka duža, to se upute manje poštuju.
Evo kratkog primjera, sličnog onome što ja koristim:
# Moja app
## Stack
- Expo (SDK iz create-expo-app), React Native, strogi TypeScript
- Navigacija: Expo Router, jedna datoteka po ekranu u app/
- Podaci: Supabase (kasnije), nikad tajni ključ u aplikaciji
## Pravila
- Jedan ekran odjednom. Ne diraj datoteke izvan zahtjeva.
- Nikakve fiksne visine u točkama: veličine relativne prema ekranu,
ScrollView ako sadržaj može prijeći rub.
- Svaki ekran ima 3 stanja: učitavanje, prazno, greška.
- Tekstovi sučelja na hrvatskom s dijakriticima.
- Prije izmjene više od 2 datoteke: predloži plan i čekaj moje odobrenje.
## Naredbe
- Pokretanje: npx expo start
- Testovi: koristi skriptu koja stvarno postoji u package.json.
Ako još ne postoji, javi to; ne prijavljuj uspješne testove.
- Tipovi: npx tsc --noEmit
- Nakon svake izmjene: pokreni testove i tipove, zatim mi reci
što se promijenilo i kako to provjeriti na iPhoneu.
Pravilo o fiksnim visinama nije tu slučajno. Na to se vraćamo u koraku 6.
Korak 5: traži jedan po jedan ekran
„Napravi mi aplikaciju za praćenje navika s pretplatom” daje ogroman, krhak projekt koji je nemoguće pregledati. Metoda koja radi je obrnuta: jedan zahtjev, jedan ekran, rezultat koji možeš testirati za pet minuta.
Počni s planom
Za sve što dira više datoteka prebaci se u plan mode. Pritišći Shift+Tab dok u statusnoj traci ne vidiš plan mode on. U tom načinu rada Claude čita datoteke i predlaže plan, ali ništa ne mijenja bez tvog odobrenja. Pročitaš, ispraviš, zatim potvrdiš.
Prvi prompt za postavljanje okvira izgleda ovako:
Želim aplikaciju za praćenje navika. Verzija 1: samo jedna funkcija,
označavanje današnjih navika. Predloži popis ekrana i
strukturu mapa. Zasad ništa ne programiraj.
Opiši ekran, njegova stanja i granice
Zatim jedan prompt po ekranu. Što više rubnih slučajeva navedeš, to ih Claude manje zaboravlja:
Napravi ekran app/index.tsx koji prikazuje današnje navike.
- Svaki redak: naziv navike, kućica za označavanje, trenutni niz.
- Prazno stanje: tekst i gumb „Dodaj naviku”.
- Stanje učitavanja i stanje greške s gumbom „Pokušaj ponovno”.
- Podaci zasad dolaze iz lokalnog niza.
- Mora stati i na iPhone SE i na najveći iPhone:
bez fiksne visine, popis se može listati.
Na kraju pokreni testove i tipove.
Ispravljaj bez prepisivanja svega
Kad neki detalj ne valja, budi precizan i ograniči opseg:
Na mom iPhoneu gumb „Dodaj naviku” ode ispod donje trake
kad je popis dug. Ispravi samo taj problem u
app/index.tsx, bez diranja drugih datoteka. Objasni uzrok.
U terminal možeš zalijepiti i snimku zaslona: Claude je čita.
Vježba: navika koja ostaje označena nakon ponovnog pokretanja
Ovo je edukativna vježba koju radiš u svom projektu, a ne prikaz već isporučene funkcije. Cilj je prijeći s generiranog ekrana na ponašanje koje se može provjeriti. Ne traži ni korisnički račun ni kupnju u aplikaciji.
- Zadrži samo jednu lokalnu naviku pod nazivom „Čitati 10 minuta”.
- Zatraži kućicu za označavanje i lokalno spremanje kompatibilno s tvojim Expo projektom.
- Zatraži od agenta da navede izmijenjene datoteke, eventualnu ovisnost i naredbe koje je stvarno pokrenuo.
- Instaliraj ili otvori aplikaciju na iPhoneu, zatim napravi provjere u nastavku.
Polazeći od postojećeg ekrana, omogući označavanje navike „Čitati 10 minuta”
i sačuvaj njezino stanje nakon zatvaranja i ponovnog otvaranja aplikacije.
Koristi lokalnu pohranu kompatibilnu s ovisnostima projekta.
Ne stvaraj ni račun, ni server, ni pretplatu, ni dodatnu statistiku.
Prije programiranja objasni kako ćeš riješiti učitavanje i neuspjeh
čitanja ili spremanja. Zatim napravi ograničenu izmjenu.
Na kraju: izmijenjene datoteke, pokrenute naredbe, netestirana ograničenja
i točni koraci za provjeru rezultata na iPhoneu.
| Radnja na iPhoneu | Očekivani rezultat | Ako ne uspije |
|---|---|---|
| Prvo otvaranje aplikacije | Navika i kućica su vidljive, bez greške | Provjeri početno stanje i učitavanje pohrane |
| Označi, zatim zatvori i ponovno otvori | Navika ostaje označena | Provjeri pisanje i zatim čitanje istog ključa |
| Odznači, zatim ponovno pokreni | Navika ostaje neoznačena | Provjeri sprema li se i vrijednost false |
| Ponovi postupak u načinu rada u zrakoplovu | Lokalna funkcija ostaje dostupna | Pronađi mrežnu ovisnost dodanu bez razloga |
| Povećaj veličinu teksta | Naziv i kontrola ostaju dostupni | Ukloni ograničenja koja režu ili skrivaju radnju |
Ne traži „prepiši sve” ako jedan redak ne prođe. Opiši radnju, očekivani i dobiveni rezultat. Na primjer: „Nakon ponovnog pokretanja kućica je opet prazna iako sam je označio. Objasni uzrok i ispravi spremanje bez mijenjanja dizajna.”
Preuzmi predložak CLAUDE.md i listu za provjeru (.md). Otvori ga u uređivaču ili aplikaciji za bilješke. Prilagodi naredbe svom projektu prije nego ga daš agentu.
Korak 6: daj na pregled i testiraj
Claude Code piše kod koji izgleda ispravno. Samo ti tvoji testovi i tvoj iPhone govore je li stvarno ispravan.
Testovi da ne pokvariš ono što radi
Što aplikacija više raste, to je veći rizik da svaki zahtjev pokvari već provjeren ekran. Projekt koji napravi Expo nema testove: najprije zatraži od Claudea da instalira Jest s jest-expo, kako preporučuje Expoova dokumentacija. Zatim zatraži testove za važnu logiku (izračun niza, validacija obrasca) i neka ih pokreće nakon svake izmjene. Zato su naredbe za testove zapisane u CLAUDE.md: Claude ih izvršava, a da ga ne moraš podsjećati. S datotekom pravila i testovima AI puno rjeđe kvari ono što je već radilo.
Pregledaj svaku izmjenu
Ne moraš razumjeti svaki redak. Moraš znati koje su se datoteke promijenile i zašto. Ako je Claude dirao datoteku koja nema veze sa zahtjevom, pitaj ga zašto prije nego prihvatiš. Zatim postavi pitanje: „što ovdje može puknuti?”.
Provjeri na malom i velikom iPhoneu
To me je najskuplje stajalo. Solys je Apple odbio prema pravilu 2.1: demo u onboardingu bilo je nemoguće pobijediti na iPadu Air, gdje je aplikacija radila u načinu kompatibilnosti s iPhoneom. Uzrok: visine zadane u fiksnim točkama, a ne relativno prema veličini ekrana. Na mom iPhoneu sve je bilo u redu. Kod je bio pregledan, testovi su bili zeleni. Nijedan alat nije pogledao ekran u drugoj veličini.
Od tada svaki ekran provjeravam barem na najmanjem i na najvećem iPhoneu. Ako imaš samo jedan telefon, poslužit će Xcodeov simulator na Macu ili prijatelj s drugim modelom. Posebno pazi na duge tekstove, otvorenu tipkovnicu na obrascima i gumbe pričvršćene na dno.
Što Claude Code radi loše
Claude Code je odličan za ekrane i logiku. Izvan tvoje mape puno je manje pouzdan.
Potpisivanje i certifikati
Bez odobrenog pristupa tvom Apple računu Claude ne zna njegovo stanje. Može izmisliti postupak za certifikate koji miješa Xcode i Expo. Prepusti potpisivanje EAS-u: Expoova dokumentacija objašnjava da EAS CLI može generirati i čuvati te datoteke umjesto tebe, nakon prijave u tvoj Apple Developer račun.
App Store Connect
Stranica aplikacije, izjave o privatnosti, snimke zaslona i pravne poveznice su podaci koje treba provjeriti u App Store Connectu. Claude Code sada može raditi u prijavljenom pregledniku preko svoje integracije s Chromeom, uz potrebne pristupe. To ne jamči da su polja točna: pročitaj podatke, provjeri korištene račune i sam potvrdi obveze i slanje na reviziju.
Pretplate
Napisati paywall traje deset minuta. Uskladiti proizvode u App Store Connectu, njihovu konfiguraciju u RevenueCatu i kod, to je druga priča. Identifikator koji se razlikuje za jedan znak i paywall kod reviewera ostaje prazan. Najčešće zamke navedene su u greškama početnika s iOS paywallom.
Rubni slučajevi
Bez uputa Claude obrađuje samo uobičajeni slučaj. Nema mreže, prazan popis, prekinuta kupnja: na tebi je da ih navedeš.
Sigurnost u Supabaseu
Kad Claude stvara tablice u Supabaseu, provjeri je li uključena sigurnost na razini redaka (RLS), s pravilima koja svakog korisnika ograničavaju na njegove podatke. Provjeri i da nijedan tajni ključ nije završio u kodu aplikacije. Upiši te dvije zabrane u svoj CLAUDE.md čim spojiš bazu.
Korak 7: prijeđi na TestFlight s EAS-om
Tvoji ekrani su provjereni u Expo Go ili u development buildu, ovisno o korištenim modulima. Sad prijeđi na build koji će se distribuirati testerima.
Pripremi EAS
Sada ti treba plaćeni Apple Developer račun: kako Expo napominje, obavezan je za slanje aplikacije na App Store. Zatim instaliraj Expoov alat i konfiguriraj projekt:
npm install --global eas-cli
eas login
eas build:configure
Dodaj jedinstveni bundle identifikator u app.json, pod ios.bundleIdentifier, na primjer com.yourname.myapp.
Kompajliraj i pošalji
eas build --platform ios --profile production
eas submit --platform ios
Prva naredba kompajlira aplikaciju na Expoovim serverima. Kod prvog pokretanja EAS ti nudi prijavu u Apple račun kako bi napravio certifikate. Druga šalje build u App Store Connect. Sve možeš napraviti i odjednom s eas build --platform ios --auto-submit.
Apple mora obraditi build prije nego se pojavi u TestFlightu, a ta ga obrada može odbiti, na primjer s ITMS-90717 zbog prozirne ikone. Uspješno slanje dakle ne znači da se build već može instalirati: provjeri njegovo stanje u App Store Connectu. Interni i vanjski testeri te beta revizija objašnjeni su u mom vodiču TestFlight za testiranje iPhone aplikacije.
Ponovi provjere iz koraka 6 na tom buildu. Aplikacija koja radi u Expo Go i dalje se može srušiti u produkciji, na primjer kad nedostaje nativni modul.
Koliko to stvarno košta
Evo cijena koje navode servisi, provjerenih 27. rujna 2026., u dolarima. Naplaćeni iznos ovisi i o tvojoj regiji, porezima i korištenju: provjeri ponudu prije pretplate.
- Claude pretplata: Pro plan je 20 $ mjesečno, ili 17 $ mjesečno uz godišnje plaćanje. Max planovi počinju od 100 $ mjesečno, za veće korištenje.
- Apple Developer račun: 99 $ godišnje, obavezan za TestFlight i App Store.
- EAS: Expoov besplatni plan uključuje 15 iOS buildova mjesečno, u redu čekanja niskog prioriteta. Starter plan košta 19 $ mjesečno, plus dodatno korištenje.
Za mali prototip Pro i besplatni EAS plan mogu biti dobra osnova, ako ostaneš unutar njihovih kvota. Dodaj Apple račun prije TestFlighta, a zatim zasebno izračunaj servise koji su ti stvarno potrebni: bazu podataka, pohranu ili plaćeni API. Predložak budžeta za prvu aplikaciju pomaže ti posložiti te stavke. Vrijeme za konfiguraciju i provjere također moraš predvidjeti.
Iskrena ograničenja i gdje se zapne
Claude Code je promijenio tko može napraviti iPhone aplikaciju. Nije promijenio što Apple traži za objavu. Odbijanje dođe brzo: Solys ga je dobio, Nolera i Clic također. Najčešći razlozi opisani su u tekstu zašto Apple odbija aplikaciju.
S ovim vodičem možeš sam doći do TestFlighta. Najčešće se zapne nakon toga: spajanje pretplata, priprema materijala za reviewera, razumijevanje odbijanja. Za pregled cijelog puta pročitaj stranicu izrada iPhone aplikacije.
Za taj dio iOS Kit okuplja početni kod mojih aplikacija, uključujući pretplate, Claude Code skillove za svaki korak i Apple Review Kit. Cijeli put je na stranici Claude Code tečaj za izradu iOS aplikacije.
Već si zapeo i ne znaš na čemu? Besplatna dijagnostika ti kaže što te stvarno koči i šalje ti moju checklistu protiv Appleovih odbijanja.
Česta pitanja
Može li se napraviti iPhone aplikacija s Claude Codeom bez znanja programiranja?
Da, za ekrane i jednostavnu logiku, ako pregledaš i testiraš svaki korak. Ne, ako se nadaš da ništa nećeš morati razumjeti. Moraš znati pročitati poruku o grešci, pokrenuti naredbu i provjeriti što je Claude promijenio. To se brzo nauči kroz izradu.
Je li Claude Code besplatan?
Nije. Claude Code traži Pro, Max, Team, Enterprise ili Console račun. Besplatna ponuda claude.ai ga ne uključuje. S Pro planom možeš početi, uz ograničenja korištenja na koja treba paziti.
Treba li mi Mac za izradu iOS aplikacije s Claude Codeom?
Ne. Programiraš na bilo kojem računalu, testiraš u Expo Go na iPhoneu, a EAS kompajlira i šalje aplikaciju s Expoovih servera. Mac je i dalje praktičan zbog simulatora, ali nije obavezan.
Claude Code ili Cursor za React Native aplikaciju?
Koristim oba, svaki dan. Claude Code radi u terminalu i sam nadovezuje izmjene i testove. Cursor je uređivač. Metoda je važnija od alata: pravila, jedan ekran odjednom, testovi.
Koliko traje objava prve aplikacije s Claude Codeom?
Ovisi o veličini aplikacije i tvom vremenu. Aplikacija s jednom funkcijom ide puno brže. Najnepredvidljiviji dio ostaje Appleova revizija.
Može li Claude Code konfigurirati pretplate u aplikaciji?
Može napisati kod za paywall i RevenueCat. S povezanim alatima i potrebnim dopuštenjima može raditi i u konzolama. Nikad ne zaključuj iz postojanja koda da su proizvodi konfigurirani: provjeri identifikatore, cijene i prava nakon kupnje, zatim testiraj kupnju i vraćanje kupnji na TestFlightu. Česte greške s iOS paywallom daju ti točke za provjeru.