Izrada iOS aplikacije uz AI: zamke i provjere
Autor: Mehdi Azizi
Ažurirano , 9 min
Claude, ChatGPT i Cursor brzo pišu tvoj iOS kod. Potpisivanje, pretplate, Appleova provjera, pravi iPhone: što propuštaju i kako sve provjeriti.
Izrada iOS aplikacije uz AI: kratki odgovor
Da, možeš napraviti iOS aplikaciju uz AI i kao početnik. Takav način rada ima ime: vibe coding. Claude, ChatGPT ili Cursor odlično pišu ekrane, navigaciju, jednostavnu logiku i pozive prema bazi podataka. Loše im ide sve što se događa izvan koda: potpisivanje aplikacije, postavljanje App Store Connecta, pretplate, Appleova provjera i rušenja koja se pojavljuju samo na pravom iPhoneu.
Drugim riječima, AI ti štedi tjedne na najvidljivijem dijelu posla, a ostavlja te samog na dijelu koji odlučuje hoće li tvoja aplikacija ikad izaći. Ovaj vodič pokazuje gdje je ta granica, kako usmjeravati AI da ostane koristan i kako provjeriti ono što napravi prije nego što to umjesto tebe naprave Apple ili tvoji korisnici.
Svoje iOS aplikacije svaki dan programiram uz Claude i Cursor. Solys, budilica s mini-igrama, i TradaZen, simulator trgovanja, nalaze se na App Storeu. Nolera i Clic su odbijene od Applea, a zatim ispravljene. Sve što slijedi dolazi iz tog rada, ne iz demonstracije. Ako se još dvoumiš oko alata, usporedio sam Claude Code, Cursor i ChatGPT za iPhone aplikaciju u zasebnom vodiču.
Što AI stvarno radi dobro
Ekrani i navigacija
Opiši ekran precizno (što prikazuje, što radi svaki gumb, što se događa kad je popis prazan) i AI će ti za par sekundi vratiti uredan komponent. Tu je dobitak najspektakularniji, pogotovo s React Nativeom i Expom, jer je AI vidio golemu količinu takvog koda. To je ujedno stack koji koristim u svim svojim aplikacijama, a zašto, objašnjavam na stranici React Native i Expo za mobilnu aplikaciju.
Jednostavna poslovna logika
Izračunati rezultat, sortirati popis, formatirati datum, validirati obrazac: AI to radi brzo i prilično dobro, pod uvjetom da mu zadaš rubne slučajeve. Prazan popis, predugo polje, datum u drugoj vremenskoj zoni. Ako ih ne navedeš, neće ih uvijek obraditi.
Objašnjavanje onoga što ne razumiješ
Ovo je najpodcjenjenija upotreba. Zalijepi poruku o grešci, dio konfiguracije ili Appleovo odbijanje i zatraži „objasni mi što ovo znači, bez ispravljanja". Učiš brže nego iz tutorijala, jer se objašnjenje odnosi na tvoj vlastiti projekt.
Spajanje backenda
Kreiranje tablica u Supabaseu, pisanje funkcije koja čita podatke prijavljenog korisnika, upravljanje stanjem učitavanja: AI dobro poznaje te alate. Samo pazi na sigurnost, o tome više u nastavku.
Što AI propušta kad radiš iOS aplikaciju
Ovo je dio koji ti nitko ne pokazuje u videima „napravio sam aplikaciju za vikend". Svaka od ovih točaka može ti blokirati objavu danima, a tu su još i automatske provjere pri slanju, poput ITMS-90338 za nejavne API-je.
Potpisivanje i certifikati
Da bi radila na iPhoneu i prošla na App Store, tvoja aplikacija mora biti potpisana certifikatom i provisioning profilom vezanima uz tvoj Apple Developer račun. AI ti može objasniti princip, ali ne poznaje tvoj račun bez odobrenog pristupa. Ponekad izmišlja korake koji više ne postoje ili miješa Xcode i Expo pristup, što pri slanju može završiti s ITMS-90034. S EAS Buildom taj alat sam generira i sprema te datoteke, uključujući i push ključ: pusti ga da to radi umjesto da slijediš nagađani postupak.
Postavljanje App Store Connecta
Stranica aplikacije, bundle identifikator, izjave o privatnosti, pitanje o enkripciji, snimke zaslona, poveznice na uvjete korištenja: ti podaci moraju odgovarati poslanoj verziji. Neki agenti mogu raditi u prijavljenom pregledniku, poput Claude Codea s Chromeom. Taj pristup mora biti odobren, a rezultat provjeren. Postupak izrecitiran bez čitanja trenutnog sučelja može biti zastario.
Pretplate
Ovdje ti AI pojede najviše vremena. Kod paywalla je lagan. Teško je uskladiti tri mjesta: proizvode kreirane u App Store Connectu, njihovu konfiguraciju u RevenueCatu i kod koji ih prikazuje. Identifikator koji se razlikuje za jedan znak, proizvod koji još nije poslan na provjeru zajedno s verzijom, i tvoj paywall se recenzentu prikaže prazan. AI može čitati te konzole ako mu daš odgovarajući pristup. Bez njega ne može provjeriti jesu li usklađene s kodom. Cijeli posao je opisan na stranici in-app pretplate na iOS-u.
Appleova provjera
AI poznaje osnove App Review Guidelines, ali ne zna gledati tvoju aplikaciju očima recenzenta. Neće ti sam reći da je obavezni ekran odrezan na malom iPhoneu, da zahtjev za ocjenu dolazi prerano, da u bilješkama za provjeru nedostaje demo račun ili da tvoja aplikacija previše sliči web stranici za smjernicu 4.2. Prva dva su odbijanja koja sam stvarno dobio na Solysu, opisana u tekstu zašto Apple odbija aplikaciju.
Rušenja na pravom iPhoneu
Simulator i razvojna aplikacija opraštaju puno toga. Pravi iPhone u produkciji ne oprašta. Nativni modul koji nedostaje u buildu, dozvola bez teksta objašnjenja, prerano čitanje podataka pri pokretanju: aplikacija se otvori i odmah zatvori, bez poruke. Agent može pokretati testove ili analizirati snimke zaslona, ali samo ako to sustav provjere omogućuje. Rezultat iz simulatora sam po sebi ne potvrđuje binarnu datoteku instaliranu na tvom iPhoneu. Na tebi je da prije svakog slanja instaliraš aplikaciju na svoj mobitel, a TestFlight služi upravo tome.
AI piše kod koji izgleda ispravno. Samo test na tvom iPhoneu govori je li stvarno ispravan.
Kako usmjeravati AI da ostane koristan
Problem gotovo nikad nije inteligencija modela. Problem je ono što mu daješ da pročita.
Daj mu svoj kontekst, jednom zauvijek
Napiši kratku datoteku u korijenu projekta koja opisuje tvoj stack (Expo, verziju SDK-a, Supabase, RevenueCat), strukturu mapa i tvoja pravila. Claude Code čita datoteku CLAUDE.md, a Cursor ima svoje datoteke s pravilima. Bez tog konteksta AI nagađa, i često nagađa neki drugi stack, ne tvoj. Moj tutorijal za izradu aplikacije s Claude Codeom sadrži cijeli primjer te datoteke.
Podijeli posao na male zadatke
„Napravi mi aplikaciju za praćenje navika s pretplatom" daje ogroman i krhak projekt. „Napravi ekran koji prikazuje današnje navike, s praznim stanjem i stanjem učitavanja" daje ekran koji možeš pročitati i testirati za pet minuta. Jedan zadatak, jedan provjerljiv rezultat, pa sljedeći.
Traži plan prije koda
Za sve što dira više datoteka, počni s „predloži plan, još ne piši kod". Pročitaš plan, ispraviš što ne valja, pa kreneš. Tako izbjegavaš iznenadna prepisivanja u kojima AI preradi pola projekta da bi dodao jedan gumb.
Neka čita ažurnu dokumentaciju
Alati se brzo mijenjaju: Expo, RevenueCat i App Store Connect redovito se mijenjaju. Kad ti se odgovor čini sumnjivim, zalijepi službenu stranicu dokumentacije u razgovor ili koristi alat koji mu je daje. AI koji čita današnju dokumentaciju griješi puno manje od onog koji se sjeća one od prije dvije godine.
Zadrži odluke za sebe
AI predlaže, ti odlučuješ. Izbor ideje, cijene, onoga što aplikacija neće raditi: to je tvoj posao. Ako pustiš AI da doda svaku funkciju koju predloži, dobit ćeš aplikaciju koja osrednje radi deset stvari umjesto jedne vrlo dobro. Za okvir prve verzije pročitaj stranicu MVP iOS aplikacije.
Kako provjeriti ono što AI napravi
Ovo je vještina koja razdvaja one koji objavljuju od onih koji gomilaju napola dovršene projekte.
Pročitaj svaku izmjenu
Ne moraš sve razumjeti redak po redak. Ali moraš znati odgovoriti na tri pitanja: koje su se datoteke promijenile, zašto, i odgovara li to onome što sam tražio. Ako je AI dirao datoteku koja nema veze s tvojim zahtjevom, pitaj ga zašto prije nego što prihvatiš.
Testiraj na iPhoneu, ne samo na računalu
Instaliraj aplikaciju na svoj mobitel što prije, a zatim nakon svakog važnog koraka. Provjeri prvo pokretanje nakon instalacije, način rada u zrakoplovu, mali i veliki ekran, otvorenu tipkovnicu na obrascima. To je pravilo koje primjenjujem prije svakog slanja Appleu, na svakoj svojoj aplikaciji.
Dodaj alate koji vide ono što ti ne vidiš
Na mojim aplikacijama Sentry javlja rušenja s točnim retkom koda, a PostHog pokazuje gdje korisnici odustaju. Bez njih bug u produkciji ostaje nevidljiv dok ne stigne loša ocjena. AI ti ih može pomoći instalirati, ali ti moraš gledati što ti govore.
Pazi na sigurnost podataka
Kad AI kreira tablice u Supabaseu, provjeri jesu li pravila pristupa (RLS politike) stvarno aktivna: svaki korisnik smije čitati samo svoje podatke. Provjeri i da nijedan tajni ključ ne završi u kodu aplikacije, koji se može dekompajlirati. To su dvije greške koje AI lako napravi ako mu ih ne zabraniš.
Postavi mu obrnuto pitanje
Kad je kod napisan, pitaj: „što se ovdje može pokvariti?" ili „pročitaj ovaj kod kao Appleov recenzent". Isti model koji je napisao kod često pronađe vlastite propuste kad promijeniš kut pitanja. To ne zamjenjuje tvoj test na iPhoneu, ali smanjuje broj povrata.
Realan put kad tek počinješ
- Odaberi sićušnu ideju: jednu glavnu funkciju, ne deset.
- Postavi stack koji AI dobro poznaje: Expo, React Native, Supabase ako trebaš korisničke račune.
- Gradi ekran po ekran, s jednim malim zadatkom po zahtjevu i testom na svakom koraku.
- Testiraj na iPhoneu s razvojnim buildom, zatim s TestFlightom.
- Spoji naplatu: proizvodi u App Store Connectu, RevenueCat, paywall.
- Pripremi materijale za App Store: stranica aplikacije, snimke zaslona, privatnost, bilješke za recenzenta.
- Pošalji Appleu, pažljivo pročitaj odgovor, ispravi ono što traže.
Svaki korak ima svoje zamke, a AI ti pomaže s polovicom njih. Za cjelovit pregled, stranica izrada iPhone aplikacije opisuje cijeli put. A ako se pitaš dokle možeš stići bez da sam napišeš ijedan redak koda, pročitaj izrada aplikacije bez programiranja.
Tvoja iOS aplikacija uz AI, sve do App Storea
AI je promijenio to tko može napraviti iOS aplikaciju. Nije promijenio ono što Apple traži za objavu, ni ono što treba da aplikacija naplati prve pretplate. Upravo sam taj dio stavio u iOS Kit: početni kod mojih aplikacija, uključujući pretplate, i Claude Code skillove za svaki korak. Put je opisan prema tvom alatu: Claude Code tečaj ili vibe coding tečaj. Početna stranica pokazuje kako na taj način napraviti mobilnu aplikaciju, korak po korak.
Ne znaš što te koči, kod, AI ili Apple? Besplatna dijagnostika će ti to reći i poslati ti moju checklistu protiv Appleovih odbijanja.
Ne obećavam ti ni zaradu ni objavu: Apple odlučuje o odobrenju, a tržište o ostalom. Ono što ti dajem je metoda koju i sam primjenjujem na svojim aplikacijama.
Česta pitanja
Može li početnik napraviti iOS aplikaciju uz AI?
Da. AI odlično piše ekrane, navigaciju, jednostavnu logiku i pozive prema bazi podataka. Loše mu ide sve što se događa izvan koda. To su potpisivanje, App Store Connect, pretplate, Appleova provjera i rušenja vidljiva samo na pravom iPhoneu.
Koji AI koristiti za izradu iOS aplikacije?
Claude, ChatGPT ili Cursor odlično pišu ekrane, navigaciju i jednostavnu logiku. Problem gotovo nikad nije inteligencija modela, nego ono što mu daješ da pročita. Daj mu svoj stack, svoja pravila i ažurnu dokumentaciju. Usporedio sam Claude Code, Cursor i ChatGPT za iPhone aplikaciju u zasebnom vodiču.
Može li ChatGPT napraviti aplikaciju?
Da, za vidljivi dio: ChatGPT, kao i Claude ili Cursor, odlično piše ekrane, navigaciju, jednostavnu logiku i pozive prema bazi podataka. Ali ne poznaje tvoj Apple račun bez odobrenog pristupa i ne gleda tvoju aplikaciju očima recenzenta. Samo test na tvom iPhoneu govori je li kod ispravan.
Kako napraviti vlastitu aplikaciju uz AI, korak po korak?
Odaberi sićušnu ideju s jednom glavnom funkcijom. Postavi stack koji AI dobro poznaje: Expo, React Native i Supabase ako trebaš korisničke račune. Gradi ekran po ekran, s jednim malim zadatkom po zahtjevu i testom na svakom koraku. Testiraj na iPhoneu s razvojnim buildom pa s TestFlightom, prije nego što spojiš naplatu, pripremiš materijale za App Store i pošalješ Appleu.
Kako kontrolirati kod koji je napisao AI?
Pročitaj svaku izmjenu: koje su se datoteke promijenile, zašto i odgovara li to tvom zahtjevu. Instaliraj aplikaciju na svoj iPhone što prije, a zatim nakon svakog važnog koraka. Provjeri jesu li Supabaseova pravila pristupa, RLS politike, aktivna. Provjeri i da nijedan tajni ključ ne završi u kodu aplikacije, koji se može dekompajlirati.
Zašto se paywall koji je napisao AI recenzentu prikazuje prazan?
Kod paywalla je lagan. Najteže je uskladiti tri mjesta: proizvode u App Store Connectu, njihovu konfiguraciju u RevenueCatu i kod koji ih prikazuje. Identifikator koji se razlikuje za jedan znak ili proizvod koji još nije poslan na provjeru ostavlja paywall prazan. Bez odgovarajućeg pristupa tim konzolama AI ne može provjeriti tu usklađenost.