App maken met AI: valkuilen en controles voor iOS
Door Mehdi Azizi
Bijgewerkt op , 9 min
Claude, ChatGPT en Cursor schrijven snel je iOS-code. Signing, abonnementen, Apple-review, echte iPhone: wat ze missen en hoe je alles controleert.
Een iOS-app maken met AI: het korte antwoord
Ja, je kunt een iOS-app maken met AI als beginner. Deze manier van bouwen heeft een naam: vibe coding. Claude, ChatGPT of Cursor schrijven prima schermen, navigatie, eenvoudige logica en aanroepen naar een database. Waar ze slecht in zijn, is alles wat buiten de code gebeurt: het signeren van de app, de configuratie van App Store Connect, abonnementen, de review van Apple en crashes die alleen op een echte iPhone opduiken.
Met andere woorden: AI bespaart je weken op het meest zichtbare deel van het werk, en laat je alleen staan bij het deel dat bepaalt of je app ooit uitkomt. Deze gids laat zien waar die grens ligt, hoe je de AI stuurt zodat ze nuttig blijft, en hoe je controleert wat ze maakt voordat Apple of je gebruikers dat voor je doen.
Ik codeer mijn eigen iOS-apps met Claude en Cursor, elke dag. Solys, een wekker met minigames, en TradaZen, een tradingsimulator, staan in de App Store. Nolera en Clic zijn door Apple afgewezen en daarna gecorrigeerd. Alles hieronder komt uit dat werk, niet uit een demo. Twijfel je nog over de tool? Ik vergelijk Claude Code, Cursor en ChatGPT voor een iPhone-app in een aparte gids.
Waar AI echt goed in is
Schermen en navigatie
Beschrijf een scherm nauwkeurig (wat het toont, wat elke knop doet, wat er gebeurt als de lijst leeg is) en de AI geeft je binnen een paar seconden een net component terug. Hier is de winst het meest spectaculair, vooral met React Native en Expo, omdat de AI enorm veel van dit soort code heeft gezien. Het is trouwens de stack die ik voor al mijn apps gebruik, en ik leg uit waarom op de pagina React Native en Expo voor een mobiele app.
Eenvoudige bedrijfslogica
Een score berekenen, een lijst sorteren, een datum formatteren, een formulier valideren: dat doet de AI snel en vrij goed, op voorwaarde dat je haar de randgevallen geeft. Een lege lijst, een te lang veld, een datum in een andere tijdzone. Als je ze niet noemt, behandelt ze ze niet altijd.
Uitleggen wat je niet begrijpt
Dit is het meest onderschatte gebruik. Plak een foutmelding, een stuk configuratie of een afwijzing van Apple, en vraag "leg me uit wat dit betekent, zonder te corrigeren". Je leert sneller dan met een tutorial, omdat de uitleg over je eigen project gaat.
Een backend aansluiten
Tabellen aanmaken in Supabase, een functie schrijven die de gegevens van de ingelogde gebruiker leest, de laadstatus beheren: deze tools kent de AI goed. Houd alleen de beveiliging in de gaten, daar komen we verderop op terug.
Wat AI mist als je een iOS-app maakt
Dit is het deel dat niemand je laat zien in de video's "ik heb in een weekend een app gemaakt". Elk van deze punten kan je publicatie dagenlang blokkeren, nog los van de automatische controles bij het uploaden, zoals ITMS-90338 voor niet-openbare API's.
Signing en certificaten
Om op een iPhone te draaien en in de App Store te komen, moet je app gesigneerd zijn met een certificaat en een provisioning profile die aan je Apple Developer-account gekoppeld zijn. De AI kan je het principe uitleggen, maar ze kent je account niet zonder geautoriseerde toegang. Soms verzint ze stappen die niet meer bestaan, of haalt ze de Xcode-methode en de Expo-methode door elkaar, wat kan eindigen in ITMS-90034 bij het uploaden. Met EAS Build is het de tool die deze bestanden voor je aanmaakt en beheert, push-sleutel inbegrepen: laat hem dat doen in plaats van een geraden procedure te volgen.
De configuratie van App Store Connect
De productpagina van de app, de bundle-ID, de privacyverklaringen, de vraag over encryptie, de screenshots, de links naar de gebruiksvoorwaarden: deze gegevens moeten overeenkomen met de ingediende versie. Sommige agents kunnen handelen in een ingelogde browser, zoals Claude Code met Chrome. Die toegang moet geautoriseerd zijn en het resultaat gecontroleerd; een procedure die wordt opgedreund zonder de huidige interface te lezen, kan verouderd zijn.
Abonnementen
Hier verlies je met AI de meeste tijd. De code van een paywall is makkelijk. Wat lastig is, is de samenhang tussen drie plekken: de producten die je in App Store Connect aanmaakt, hun configuratie in RevenueCat, en de code die ze toont. Een ID dat één teken afwijkt, een product dat nog niet samen met de versie ter review is ingediend, en je paywall blijft leeg bij de reviewer. De AI kan deze consoles lezen als je haar passende toegang geeft; zonder die toegang kan ze de samenhang met de code niet controleren. Het hele traject staat beschreven op de pagina in-app-abonnementen op iOS.
De review van Apple
De AI kent de grote lijnen van de App Review Guidelines, maar ze kan niet naar je app kijken met de ogen van een reviewer. Ze zegt je niet uit zichzelf dat een verplicht scherm wordt afgesneden op een kleine iPhone, dat een beoordelingsverzoek te vroeg komt, dat er een demo-account ontbreekt in de review notes, of dat je app te veel op een website lijkt voor guideline 4.2. De eerste twee zijn afwijzingen die ik echt heb gekregen op Solys, beschreven in waarom Apple een app afwijst.
Crashes op een echte iPhone
De simulator en de development-app vergeven veel. Een echte iPhone in productie niet. Een native module die ontbreekt in de build, een permissie zonder uitlegtekst, gegevens die te vroeg bij het opstarten worden gelezen: de app opent en sluit meteen weer, zonder melding. Een agent kan tests uitvoeren of screenshots analyseren, maar alleen als de testopzet dat toelaat. Een resultaat in de simulator valideert op zichzelf niet de binary die op je iPhone staat. Het is aan jou om de app vóór elke upload op je telefoon te installeren, en TestFlight is daarvoor gemaakt.
AI schrijft code die er goed uitziet. Alleen een test op je iPhone vertelt je of hij het ook is.
Hoe je de AI stuurt zodat ze nuttig blijft
Het probleem is bijna nooit de intelligentie van het model. Het is wat je het te lezen geeft.
Geef haar je context, één keer voor altijd
Schrijf een kort bestand in de root van het project dat je stack beschrijft (Expo, de SDK-versie, Supabase, RevenueCat), de mappenstructuur en je regels. Claude Code leest een CLAUDE.md-bestand, Cursor heeft zijn eigen regelbestanden. Zonder die context gokt de AI, en vaak gokt ze op een andere stack dan de jouwe. Mijn tutorial om een app te maken met Claude Code geeft een volledig voorbeeld van dit bestand.
Hak het op in kleine taken
"Maak een habit-tracker-app met abonnement voor me" levert een enorm en fragiel project op. "Maak het scherm dat de gewoontes van vandaag toont, met een lege staat en een laadstaat" levert een scherm op dat je in vijf minuten kunt nalezen en testen. Eén taak, één controleerbaar resultaat, dan de volgende.
Vraag om een plan vóór de code
Voor alles wat meerdere bestanden raakt, begin je met "stel een plan voor, nog niet coderen". Je leest het plan, corrigeert wat niet klopt, en dan start je. Zo voorkom je verrassende herschrijvingen waarbij de AI de helft van je project omgooit om een knop toe te voegen.
Laat haar de actuele documentatie lezen
De tools veranderen snel: Expo, RevenueCat en App Store Connect wijzigen regelmatig. Als een antwoord je twijfelachtig lijkt, plak dan de officiële documentatiepagina in het gesprek, of gebruik een tool die haar die geeft. Een AI die de docs van vandaag leest, vergist zich veel minder dan een AI die zich die van twee jaar geleden herinnert.
Houd de beslissingen in eigen hand
De AI stelt voor, jij beslist. De keuze van het idee, de prijs, wat de app niet gaat doen: dat is jouw werk. Als je de AI elke functie laat toevoegen die ze voorstelt, krijg je een app die tien dingen middelmatig doet in plaats van één ding heel goed. Om een eerste versie af te bakenen, lees je de pagina MVP van een iOS-app.
Hoe je controleert wat de AI maakt
Dit is de vaardigheid die mensen die publiceren scheidt van mensen die halfaf projecten verzamelen.
Lees elke wijziging na
Je hoeft niet alles regel voor regel te begrijpen. Maar je moet drie vragen kunnen beantwoorden: welke bestanden zijn veranderd, waarom, en komt het overeen met wat ik vroeg. Heeft de AI een bestand aangeraakt dat niets met je vraag te maken heeft, vraag dan waarom voordat je het accepteert.
Test op je iPhone, niet alleen op de computer
Installeer de app zo snel mogelijk op je eigen telefoon, en daarna bij elke belangrijke stap. Controleer de eerste start na installatie, de vliegtuigmodus, een klein en een groot scherm, het geopende toetsenbord bij formulieren. Dat is de regel die ik vóór elke inzending bij Apple toepas, voor al mijn apps.
Voeg tools toe die zien wat jij niet ziet
In mijn apps meldt Sentry crashes met de betreffende regel code, en laat PostHog zien waar gebruikers afhaken. Zonder die tools blijft een bug in productie onzichtbaar tot er een slechte beoordeling binnenkomt. De AI kan je helpen ze te installeren; jij moet kijken wat ze je vertellen.
Let op de beveiliging van gegevens
Als de AI tabellen aanmaakt in Supabase, controleer dan of de toegangsregels (de RLS-policies) echt actief zijn: elke gebruiker mag alleen zijn eigen gegevens lezen. Controleer ook dat er geen geheime sleutel in de code van de app belandt, want die kan gedecompileerd worden. Dat zijn twee fouten die de AI makkelijk maakt als je ze haar niet verbiedt.
Stel haar de omgekeerde vraag
Als de code geschreven is, vraag dan: "wat kan hier misgaan?" of "lees deze code na alsof je een Apple-reviewer bent". Hetzelfde model dat de code schreef, vindt vaak zijn eigen vergeten punten als je de vraag vanuit een andere hoek stelt. Het vervangt je test op de iPhone niet, maar het scheelt heen-en-weer.
De realistische route als beginner
- Kies een piepklein idee: één hoofdfunctie, geen tien.
- Installeer een stack die de AI goed kent: Expo, React Native, Supabase als je accounts nodig hebt.
- Bouw scherm voor scherm, met één kleine taak per verzoek en een test bij elke stap.
- Test op je iPhone met een development build, en daarna met TestFlight.
- Sluit het geld aan: producten in App Store Connect, RevenueCat, paywall.
- Bereid het App Store-dossier voor: productpagina, screenshots, privacy, notes voor de reviewer.
- Dien in bij Apple, lees het antwoord aandachtig, corrigeer wat gevraagd wordt.
Elke stap heeft zijn valkuilen, en de AI helpt je bij de helft ervan. Voor het totaaloverzicht beschrijft de pagina een iPhone-app maken het volledige traject. En vraag je je af hoe ver je komt zonder zelf een regel code te schrijven, lees dan een app maken zonder te coderen.
Je iOS-app maken met AI, tot in de App Store
AI heeft veranderd wie een iOS-app kan maken. Het heeft niet veranderd wat Apple eist om hem te publiceren, en ook niet wat er nodig is om de eerste abonnementen binnen te halen. Dat deel heb ik in de iOS Kit gestopt: de startcode van mijn apps, abonnementen inbegrepen, en de Claude Code-skills voor elke stap. Het traject is uitgewerkt per tool: Claude Code-training of vibe coding-training. De homepage laat stap voor stap zien hoe je op deze manier een mobiele app maakt.
Weet je niet wat je tegenhoudt, de code, de AI of Apple? De gratis diagnose vertelt het je en stuurt je mijn checklist tegen afwijzingen door Apple.
Ik beloof je geen inkomsten en geen publicatie: Apple beslist over de goedkeuring, en de markt over de rest. Wat ik je geef, is de methode die ik zelf op mijn apps toepas.
Veelgestelde vragen
Kun je als beginner een iOS-app maken met AI?
Ja. AI schrijft prima schermen, navigatie, eenvoudige logica en aanroepen naar een database. Ze is slecht in alles wat buiten de code gebeurt. Dat geldt voor signing, App Store Connect, abonnementen, de review van Apple en crashes die alleen op een echte iPhone zichtbaar zijn.
Welke AI gebruik je om een iOS-app te maken?
Claude, ChatGPT of Cursor schrijven prima schermen, navigatie en eenvoudige logica. Het probleem is bijna nooit de intelligentie van het model, maar wat je het te lezen geeft. Geef het je stack, je regels en de actuele documentatie. Ik vergelijk Claude Code, Cursor en ChatGPT voor een iPhone-app in een aparte gids.
Kan ChatGPT een app maken?
Ja, voor het zichtbare deel: ChatGPT schrijft, net als Claude of Cursor, prima schermen, navigatie, eenvoudige logica en aanroepen naar een database. Maar het kent je Apple-account niet zonder geautoriseerde toegang, en het kijkt niet naar je app met de ogen van een reviewer. Alleen een test op je iPhone vertelt je of de code klopt.
Hoe maak je stap voor stap je eigen app met AI?
Kies een piepklein idee, met één hoofdfunctie. Installeer een stack die de AI goed kent: Expo, React Native, en Supabase als je accounts nodig hebt. Bouw scherm voor scherm, met één kleine taak per verzoek en een test bij elke stap. Test op je iPhone met een development build en daarna TestFlight, voordat je het geld aansluit, het App Store-dossier voorbereidt en indient bij Apple.
Hoe controleer je code die door AI is geschreven?
Lees elke wijziging na: welke bestanden zijn veranderd, waarom, en of het overeenkomt met je vraag. Installeer de app zo snel mogelijk op je eigen iPhone, en daarna bij elke belangrijke stap. Controleer of de toegangsregels van Supabase, de RLS-policies, actief zijn. Controleer ook dat er geen geheime sleutel in de code van de app belandt, want die kan gedecompileerd worden.
Waarom blijft een door AI geschreven paywall leeg bij de reviewer?
De code van een paywall is makkelijk. Het lastigste is de samenhang tussen drie plekken: de producten in App Store Connect, hun configuratie in RevenueCat en de code die ze toont. Een ID dat één teken afwijkt, of een product dat nog niet ter review is ingediend, maakt de paywall leeg. Zonder passende toegang tot deze consoles kan de AI die samenhang niet controleren.