Zelf een iPhone app maken? Start hier

In de app store van Apple leven op dit moment bijna 2 miljoen (!) apps. De kans bestaat dat je als lezer van dit artikel overweegt om zelf een iPhone app te maken. Ik leg je graag uit welke opties je hebt en hoe je het aanpakt.

Aangemaakt op . Laatst bijgewerkt op .

Korte samenvatting van dit artikel

  • Benodigdheden: om een iOS app te kunnen bouwen heb je een aantal zaken nodig:

    1. Een Mac systeem met macOS (Mac OS X) versie Ventura 13.5 of hoger. Heb je geen Macbook (Pro) of iMac? Dan is de goedkoopste optie een Mac Mini.

    2. Een Apple Developer account.

    3. Het programma Xcode. Deze is gratis te downloaden op Mac OS X.

    4. Kennis van en ervaring met iOS programmeertaal: Swift. Voor de taal zijn gratis online cursussen beschikbaar zoals deze cursus in Swift. Objective-C, de taal die voor Swift werd gebruikt om apps te maken voor iOS, kan nog worden gebruikt maar het is niet noodzakelijk om deze taal onder de knie te krijgen.

    5. Kennis van en ervaring met 'frameworks' (Foundation, Alamofire, SwiftUI). Een framework is een bibliotheek met kant en klare stukken code. Dit vergemakkelijkt en versnelt het bouwen van jouw eigen iOS app. Je maakt tijdens het bouwen automatisch vlieguren in en met frameworks.

    6. Kennis van de App Store Review Guidelines. Jouw app moet aan de richtlijnen van Apple voldoen om goedgekeurd te kunnen worden.

  • Stappenplan: je doorloopt bepaalde stappen bij het bouwen van een iOS app. Dat start met een idee, gevolgd door (markt)onderzoek, plannen, bouwen, testen, publiceren en vervolgens (blijven) onderhouden.

  • Benodigde kennis: je hebt kennis nodig van Apple's eigen programmeertaal Swift. Verderop in dit artikel verwijs ik naar enkele (gratis) Swift cursussen waarmee je direct kunt beginnen.

Je (eerste) eigen iOS app bouwen

De Apple App Store vierde vorig jaar zijn 15e verjaardag. We gebruiken gemiddeld 9 apps per dag en op een gemiddelde dag worden er maar liefst 993 (!) nieuwe apps in de App Store gepubliceerd.

Dat alles heeft er voor gezorgd dat er op het moment van schrijven (april 2024) zo'n 2 miljoen apps vanuit de App store gedownload kunnen worden. De omzet vanuit al die apps bedroeg over heel 2023 89.3 miljard dollar.

Staafdiagram met het aantal totale downloads in de App Store tussen 2019 en 2024

Aantal totale App Store downloads in miljarden 2019-2024. Bron: appventurez.com

De mobiele app markt is booming en groeit nog altijd hard. Alle ruimte dus voor nieuwe iPhone app ideeën en concepten. Maar een iOS app bouwen is een flinke onderneming. Je hebt een goed idee, doorzettingsvermogen en het liefst een development team nodig.

De vraag is: waarmee bouw je een iPhone app, en waar begin je?

Kant van de Marketing

We gaan niet (te diep) in op het onderzoeken van een app-idee. Daar zijn namelijk allerlei manieren en methoden voor waar we in dit artikel niet genoeg op kunnen inzoomen.

We nemen je wel mee in de basics ervan. Het is namelijk niet alleen belangrijk hoe en waarmee je jouw iOS app bouwt, maar voordat je begint is het net zo belangrijk om eens goed bij je idee stil te staan. Wat is er uniek aan jouw app (idee)?

1) Werk je idee uit

Een succesvolle nieuwe app lost vaak iets op of maakt iets makkelijker en/of sneller.

Wat is er absoluut uniek aan jouw app? Maakt het het leven van iemand makkelijker, aangenamer, of verhelpt het een probleem op een manier dat geen enkele andere app kan?

Onderzoek de markt en natuurlijk de Apple App Store grondig. Bekijk of er vraag is naar jouw idee. Vaak zijn fora en online (social media) platformen zoals Reddit, Quora en Medium goede bronnen. Ook Facebook groepen zijn een goede inspiratiebron.

Werk vervolgens op papier of digitaal uit wat de belangrijkste functionaliteiten van jouw app moeten worden. Hoe gaat het doen wat jij voor ogen hebt?

2) Mockup en Wireframe

Na het uitwerken van een idee en bijbehorend (markt)onderzoek volgt vaak het maken van een mockup en wireframe.

Hierin visualiseer je de ideeën op papier en/of scherm. Je kunt hiervoor software zoals Sketch of Adobe XD gebruiken.

Met het schetsen krijg je een gevoel voor de gebruikerservaring en wat er mogelijk verbeterd kan worden.

Een wireframe is een gedetailleerde weergave van de app, die vrijwel ieder scherm en de layout van ieder scherm weergeeft. Ook alle knopjes, velden, plaatjes en formulieren zijn hierin opgenomen.

Na bovenstaande ga je logischerwijs aan de slag met het daadwerkelijk bouwen van je iOS app. Hoe je dat aanpakt? Laat dit artikel daar nu net over gaan!

Wat heb je nodig?

Om een iOS app te kunnen bouwen heb je een aantal zaken nodig. Zo is het bijvoorbeeld mogelijk om op een Windows machine een iOS app te bouwen, maar moet je dat eigenlijk niet willen: je maakt het jezelf daarmee namelijk een stuk moeilijker.

1) Een iMac, Macbook of Mac Mini

Je hebt een fysieke of virtuele (daarover later meer) Mac nodig. Dat is simpelweg een vereiste voor het bouwen van een iPhone (of iPad) applicatie.

Op dat Mac systeem draai je macOS (Mac OS X) Ventura 13.5 of hoger. De huidige versie op het moment van schrijven (april 2024) is macOS 14.4.1. Die versie heb je minimaal nodig om de meest recente versie van het programma Xcode te gebruiken.

Wat Xcode is en waarom je het nodig hebt leg ik je verderop in dit artikel uit. Dit zijn de Mac modellen die macOS Ventura kunnen draaien:

  • MacBook modellen vanaf 2017

  • MacBook Air modellen vanaf 2018

  • MacBook Pro modellen vanaf 2017

  • Mac mini modellen vanaf 2018

  • iMac modellen vanaf 2017

  • iMac Pro (alle modellen)

  • Mac Pro modellen vanaf 2019

  • Mac Studio (alle modellen)

Beschik je niet over een Mac, dan is de voordeligste optie het aanschaffen van een Mac Mini.

Maar ik wil echt op Windows blijven!

Ben je er op gebrand om een Windows systeem voor het ontwikkelen van een iOS app te gebruiken dan zul je bijna altijd uitkomen op het draaien van een 'virtuele machine'. Dat is in het kort een computerprogramma dat een computer nabootst.

In zo'n virtuele computer binnen jouw Windows computer draai je dan Mac OS X via een tool zoals VMware of Virtualbox. De Macintosh software weet niet beter en gaat er vanuit dat het op een Apple apparaat draait.

Schermafbeelding van een VMware venster op ene Windows systeem waar macOS Sonoma 14 in draait

macOS Sonoma (14) in VMware op een Windows systeem

Er verschijnen daarnaast al enkele jaren berichten over het verschijnen van Swift (tools) binnen Windows. Er zijn inmiddels open source tools zoals WinUI die het makkelijker moeten gaan maken om iOS apps vanaf een Windows systeem te ontwikkelen.

Maar: in de meeste situaties waar iemand een Apple app binnen een Windows omgeving wil bouwen wordt vaker wel dan niet gekozen voor een hybride app aanpak. Een hybride app is een app die met 1 codebasis op meerdere platformen (dus op iOS en Android) gepubliceerd kan worden. Meer weten? Lees ons artikel over wat een hybride app is.

2) Een Apple Developer Account

Het tweede wat je sowieso nodig zult hebben voor het maken van een iOS applicatie is een Apple Developer Account.

Zo'n account is helemaal gratis en is anders dan het betaalde iOS Developer Account.

Door je te registreren krijg je toegang tot Apple Xcode, iOS SDK documentatie en andere (technische) snufjes zoals development videomateriaal.

Zo meld je je aan

Om je aan te kunnen melden heb je een Apple-ID nodig. Heb je die nog niet dan kun je die hier aanmaken.

Om je aan te melden voor het gratis developer account hoef je eigenlijk alleen in te loggen met je Apple ID en wat persoonlijke gegevens in te vullen. Ben je ingelogd dan kun je op deze pagina op de Apple website op 'Start Your Enrollment' klikken.

Schermafbeelding van de Apple website waar je je aan kunt melden voor het Apple Developer Program

Meer informatie over het aanmeldproces en het developer program kun je natuurlijk vinden op de website van Apple zelf.

Hoe verschillen een gratis en een betaald Apple Developer Account van elkaar?

Je hebt met een betaald Developer Account toegang tot meer functionaliteiten:

  • Alle iOS SKD en hardware functionaliteiten

  • Publiceren en distribueren van apps in de App Store

  • Toegang tot bèta versies van iOS, MacOS, tvOS en watchOS

  • Vrijheid om apps te verkopen

Bovenstaande betekent inderdaad dat je met een gratis Apple Developer Account jouw gebouwde app niet kunt publiceren in de Apple App Store.

Je kunt altijd met een gratis developer account starten. Red je het tot het einde en is jouw gebouwde iOS app klaar voor publicatie? Dan upgrade je via jouw Apple account eenvoudig naar een betaald development account.

3) Xcode

Xcode is het 'enige' programma dat je kunt gebruiken om iPhone en iPad apps te bouwen.

Wat is Xcode?

Xcode is Apple's eigen ontwikkelomgeving ('IDE') waarin native iOS apps gebouwd kunnen worden.

Het is het belangrijkste programma voor het bouwen van iOS apps op Apple-apparaten en heeft een uitgebreide set tools en functies voor ontwikkelaars aan boord.

Een belangrijk onderdeel van Xcode is de programmeertaal Swift. Ook die is speciaal door Apple voor de ontwikkeling van apps op Apple-apparaten in het leven geroepen.

Via Xcode heb je toegang tot de iOS SDK. Dat is een afkorting voor iOS Software Development Kit. De iOS SDK is voor Mac gebruikers gratis te downloaden en biedt toegang tot API's en frameworks.

Met die API's en frameworks heb je o.a. toegang tot functies en functionaliteiten van iOS apparaten. Denk daarbij aan de camera, locatiegegevens en bewegingssensoren. Toegang tot deze zogenaamde 'native functionaliteiten' zijn deel van de kracht van native apps.

Ook heb je in Xcode toegang tot de Xcode Interface Builder. Hierin kun je het ontwerp (de gebruikersinterface) van jouw app visueel ontwerpen. Je kunt hiermee bijvoorbeeld knoppen en tekst velden toevoegen.

Naast de Interface Builder zul je ook gebruik gaan maken van de Xcode Simulator. Dat is een ingebouwd hulpmiddel waarmee je de door jou gebouwde app kunt testen op verschillende apparaten en besturingssystemen. Zo kun je eenvoudig fouten en verbeteringen opsporen in verschillende schermformaten en resoluties.

Oftewel: zo'n beetje alles dat je voor de ontwikkeling van je iOS app nodig hebt is binnen Xcode te vinden.

Xcode installeren en gebruiken

Het installeren van Xcode stelt niets voor, de applicatie is namelijk gewoon te vinden in de App Store. Download en installeer vanuit de Apple App Store om te kunnen starten.

Voorbereidingen treffen

Nu weet je wat de basis vereisten zijn voor het bouwen van jouw iOS app, namelijk:

  1. Een Mac systeem of virtueel Mac systeem binnen een Windows omgeving

  2. macOS (Mac OS X) versie Ventura 13.5 of hoger

  3. Een Apple ID en Apple Developer Account

  4. Het programma Xcode

Als het goed is, heb je inmiddels Xcode in een macOS omgeving geïnstalleerd. Nu kunnen we bijna starten met het bouwen van een iOS app.

1. Tools voor iOS development

Tijd om de tools, technologieën, mogelijkheden en (programmeer)talen in de iOS SDK te ontdekken.

Binnen deze tools vallen frameworks zoals UIKit en SwiftUI, en programmeertalen zoals Swift en Objective-C. Je zal natuurlijk gebruikmaken van de IDE Xcode, maar ook tools om prestaties van je app te monitoren zoals 'Instruments'.

En zo zijn er tal van developer kits te vinden voor allerlei soorten applicaties: apps voor navigatie, gezondheidszorg of games. Denk dan aan een SpriteKit (voor het ontwikkelen van batterij efficiënte 2D games) of GameplayKit.

Veelgebruikte Developer Tools voor iOS apps

Er zijn een aantal developer tools waarvan een (heel) groot deel van de apps in de Apple App Store gebruik maakt:

  1. Apple Core Foundation: een verzameling C-interfaces en bibliotheken die fundamentele data types en diensten aanbiedt voor het beheren o.a. geheugen, strings en collecties.

  2. Apple AVFoundation: een 'full feature' framework dat interfaces aanbiedt voor het werken met mediabestanden, zoals het afspelen en opnemen van audio/video.

  3. Apple WebKit: Apple WebKit is een browser engine, de motor van een internet browser. Deze wordt bijvoorbeeld door de Safari web browser gebruikt. Hiermee kun je inhoud van het web in je iOS app integreren. De webkit bevat web standaarden zoals HTML en CSS.

  4. Google Firebase: platform dat backend diensten zoals databases, authenticatie, analytics en crashrapportages aanbiedt om het ontwikkelen van een (iOS) app te versnellen.

  5. Apple Core Data: een framework van Apple dat al meer dan 15 jaar bestaat. Het is de 'M' in 'MVC' en is ontworpen om je te helpen bij het beheren van de model laag van je app. Het gaat dan vooral om het opslaan, ophalen en manipuleren van data.

  6. Promises by Google: een modern framework dat het schrijven van asynchrone code faciliteert. Met asynchrone code zorg je ervoor dat het laden van een element in je app niet afhankelijk is van het (succesvol) laden van een voorgaand element.

  7. Protobuf: Protobuf (Protocol Buffers) is een cross platform data format (markup taal) welke gebruikt wordt voor het omzetten van gestructureerde data. Het is vergelijkbaar met XML maar dan kleiner, sneller en eenvoudiger.

  8. Apple Core Bluetooth: een framework dat communicatie met Bluetooth Low Energy (BLE) apparaten mogelijk maakt. Vooral fijn voor de ontwikkeling van een iOS app die met externe hardware werkt: bijvoorbeeld een app om de geluidsinstellingen van een draadloze koptelefoon aan te passen.

  9. Expo: een open-source platfom voor het bouwen van van universele native apps voor Android, iOS en web met JavaScript en React.

  10. RxSwift: een 'Swift' implementatie van 'Reactive Extenstions': een bibliotheek voor asynchroon programmeren.

  11. FSCalendar: FSCalendar is een volledig aanpasbare iOS kalender bibliotheek met ondersteuning voor verschillende weergave modi.

  12. CocoaLumberjack: een framework dat het mogelijk maakt om uitgebreidere en krachtigere logbestanden te gebruiken ten opzichte van de standaard log functionaliteit 'NSLog'.

  13. Mantle: maakt het omzetten van JSON naar model objecten en andersom eenvoudiger. Mantle is vooral handig voor apps die communiceren met een RESTful API.

  14. Apple Core ML: hiermee kunnen machine learning modellen in de iOS app die je bouwt geïntegreerd worden. Je kunt hiermee voorspellingen doen op basis van ingevoerde data. Denk bijvoorbeeld aan de app van je energieleverancier.

  15. YYModel: een performance framework voor iOS dat de conversie van JSON naar Objective-C objecten (en terug) mogelijk maakt.

  16. SAMKeychain: een zogenaamde 'wrapper' die het mogelijk maakt om toegang tot accounts te krijgen, wachtwoorden op te vragen, wachtwoorden in te stellen en wachtwoorden te verwijderen. Hiervoor gebruikt SAMKeychain de ingebouwde 'keychain' van Mac OS X / iOS.

  17. Bolts: een verzameling van bibliotheken ontworpen om simpele taken in iOS (en Android) apps te versimpelen.

  18. libPhoneNumber: een bibliotheek voor het verwerken, formatteren en valideren van internationale telefoonnummers.

  19. SwiftMessages: een berichtenbibliotheek die het makkelijk maakt om waarschuwing en notificaties in iOS te tonen.

(Programmeer)talen

In dit artikel hebben we het over het bouwen van een native iOS app. Native wil zeggen dat de app is geschreven in de taal die eigen is aan het besturingsysteem. Dat betekent dat de code in een keer gedraaid kan worden door de hardware van de computer. De tegenhanger hiervan zijn talen die eerst geïnterpreteerd moeten worden, voordat de computer de code kan uitvoeren.

Het verschilt ook van een hybride app of PWA (Progressive Web App). Een PWA doet zich voor als native applicatie maar wordt altijd binnen een browser gebruikt. Een hybride app is ontwikkeld om op meerdere platformen (dus Android en iOS) gebruikt te kunnen worden. Daar worden vaak andere technieken en talen voor gebruikt.

Bij het bouwen van een native iOS app komen native programmeertalen om de hoek kijken:

Swift

Swift is de beste keuze voor het maken van een iOS applicatie. De taal is door Apple zelf ontwikkeld en in 2014 gepubliceerd. Swift is bijna 2.6x sneller dan Objective C en 8.4x sneller dan Python.

De zogenaamde syntax van Swift is vergelijkbaar met de programmeertaal Javascript en maakt het voor beginners makkelijker om de taal te leren lezen en begrijpen.

Swift wordt als een zeer veilige programmeertaal gezien doordat het van nature onveilige code weigert.

Voordelen en nadelen van Swift als programmeertaal

Swift: voordelen en nadelen

Voordelen

Nadelen

Open-Source Nog een erg jonge taal
Sneller ontwikkelen Compatibiliteitsproblemen
Overzichtelijk en begrijpelijk
Makkelijk te onderhouden

Objective-C

Objective-C Stamt af van de programmeertaal 'C' en is de voorganger van Swift. Objective-C werd in de jaren '80 ontwikkeld door 'Brad J. Cox'

De meeste nieuwe apps worden in Swift ontwikkeld, maar Objective-C wordt wel nog altijd door Apple ondersteunt.

Voordelen en nadelen van Objective-C als programmeertaal

Objective-C: voordelen en nadelen

Voordelen

Nadelen

Groot ecosysteem, stabiliteit Verouderde syntax (steile leercurve)
Compatibiliteit met C-code Mist moderne veiligheidskenmerken
Flexibiliteit in uitvoering code Onzekere toekomst

Editors en IDE's

IDE Staat voor 'Integrated Development Environment'. Eerder in dit artikel hebben we Apple's applicatie Xcode besproken en hoe dit Apple's eigen IDE is. Er zijn nog enkele andere veelgebruikte editors en IDE's voor de ontwikkeling van iOS apps.

Xcode

Xcode is dus Apple's eigen IDE waar de programmeertaal Swift de voertaal is. Het wordt gezien als het meest krachtige ontwikkelplatform voor iOS applicaties.

CodeRunner

CodeRunner is een lichtgewicht IDE voor macOS.

Je kunt in CodeRunner met iedere programmeertaal code schrijven. Het programma controleert automatisch je code op syntax errors en veelvoorkomende fouten.

Die errors gooit 'ie direct in beeld in dezelfde lijn als je code. Er is voor Swift (en andere talen) een 'Advanced Code Completion' functionaliteit beschikbaar die het programmeren van een iOS app moet vereenvoudigen en versnellen.

AppCode

AppCode is een product van het bedrijf JetBrains, het bedrijf dat de programmeertaal Kotlin heeft bedacht. Kotlin is een cross-platform programmeertaal die wereldwijd door meer dan 5 miljoen developers gebruikt wordt. Daarnaast wordt Kotlin door Google aangeraden als dé programmeertaal voor Android development.

Deze IDE van JetBrains ondersteunt zowel Swift als Objective-C. In AppCode kan de handige debug tool Reveal geïntegreerd worden. Hiermee kun je met behulp van 2D en 3D visualisaties elementen en de hierarchie van je iOS app inspecteren. Hiermee kunnen layout en rendering bugs/problemen makkelijk en snel in kaart gebracht worden.

Bibliotheken (libraries)

Je kunt iOS development libraries zien als een soort gereedschapskist voor ontwikkelaars die apps bouwen voor iPhones en iPads.

Net zoals bij het bouwen van een huis is het mogelijk om met zo min mogelijk gereedschap de klus te klaren, en een handboor in plaats van een elektrische boormachine te gebruiken. Het kan echter veel makkelijker (en sneller). Dat werkt bij app ontwikkeling net zo.

Libraries bevatten kant en klare stukken code om bepaalde taken uit te voeren. Je weet dat deze code betrouwbaar is, tijd bespaart en dat je hiermee gemakkelijk de functionaliteit van je iOS app kunt uitbreiden. Daarnaast hebben veel libraries een actieve gemeenschap van ontwikkelaars die elkaar ondersteunen. Er is daardoor online vaak veel informatie te vinden.

RxSwift

Deze iOS library wordt vooral gebruikt voor asynchroon programmeren, wat ook wel reactief programmeren wordt genoemd.

Met deze manier van programmeren stroomlijn je de communicatie tussen verschillende onderdelen van jouw iOS app. Stel: er komt een mailtje in de door jouw gebouwde e-mail app binnen, dan krijg je daar een notificatie van in beeld. Tegelijkertijd wordt het overzicht van alle mailtjes in je mailbox bijgewerkt.

De notificatie en het bijwerken van het overzicht zijn door deze manier van programmeren 2 aparte gebeurtenissen die niet afhankelijk van elkaar zijn. Bij 'traditioneel' programmeren kan het zo zijn dat het bijwerken van het e-mailoverzicht pas uitgevoerd kan worden wanneer het laden en tonen van de notificatie volledig is afgerond.

CocoaPods

CocoaPods is wat ze noemen een 'dependency manager' voor Swift en Objective-C Xcode projecten. Het is geen echte library, maar een dependency manager voor meer dan 99.000 libraries.

Het wordt door meer dan 3 miljoen apps gebruikt. CocoaPods neemt eigenlijk het beheer van alle libraries binnen jouw app project over. Het houdt in de gaten welke versies compatibel zijn en zorgt ervoor dat alle door jou geïntegreerde libraries met elkaar kunnen samenwerken.

The Foundation Framework

Dit is een essentiële verzameling tools en bibliotheken die door Apple zelf is ontwikkeld, puur ter ondersteuning van iOS app ontwikkeling.

Schermafbeelding van Foundation Framework pagina op de website van Apple.com

Er zitten allerlei tools in, waaronder manieren om met data (tekst, tijd) om te gaan, bestanden te beheren en netwerkcommunicatie uit te voeren. Alle informatie hierover kun je vinden in Apple's eigen Foundation Framework documentatie.

Doordat het door Apple ontwikkeld is werkt het naadloos samen met Swift en Objective-C.

Alamofire

Alamofire is een populaire open-source 'HTTP(S) netwerk bibliotheek' met veel beschikbare documentatie. Deze bibliotheek vereenvoudigt het proces van HTTP(S) verzoeken verzenden en verwerken.

Technische tekening over de werking van de iOS library Alamofire

In het geval van een iOS app gebruik je deze bibliotheek dus voor het verwerken van HTTP(S) verzoeken.

Swift Standard Library

De Swift Standard Library is nog zo'n eigen product van Apple. Het is de 'standaard' bibliotheek van en voor Swift en lijkt in veel opzichten op The Foundation Framework maar dan voor Swift.

PromiseKit

Een Swift bibliotheek die asynchroon programmeren gemakkelijker maakt. Deze bibliotheek helpt je om jouw Swift code leesbaarder te maken en zorgt er ook voor dat deze voor anderen waarmee je mogelijk samenwerkt makkelijker te begrijpen is.

Plugins

Plugins zijn invoegtoepassingen die extra functionaliteiten toe kunnen voegen. Plugins zul je eigenlijk altijd installeren/activeren binnen de IDE die je voor je iOS app ontwikkeling gebruikt, bijvoorbeeld Xcode.

De toepassing van zo'n plugin loopt ver uiteen. Je kunt denken van een plugin die de layout van je IDE veranderd (een visuele plugin) tot krachtige debugging mogelijkheden of integratie van andere diensten in je IDE.

Injection for Xcode

Een veelgebruikte populaire plugin voor de IDE Xcode is 'Injection for Xcode'. Met deze plugin is het mogelijk om wijzigingen die je in jouw code aanbrengt direct terug te zien op een iOS apparaat of een simulator daarvan.

Schermafbeelding van Xcode waarin de plugin Injector wordt gebruikt

Links code, rechts de simulatie van het project. Wijzigingen in code zijn hier direct terug te zien. Bron: medium.com

Dat betekent dat je niet je hele code hoeft te 'compileren' om de effecten van een wijziging te kunnen zien. Resultaat hiervan is dat je ontwikkelsnelheid omhoog geschroefd wordt.

Veel iOS ontwikkelaars hebben hun monitor(en) zo ingericht dat hun IDE op 1 scherm staat en de simulator op het andere. Alles wat je typt wordt meteen verwerkt waardoor je meteen ziet wat je aanpast.

Finestructure CoPilot

De Finestructure CoPilot plugin kun je zien als een assistent die ontzettend snel kan zoeken op Google. Het is een plugin die gebaseerd is op A.I. ,die je tijdens het programmeren voorziet van automatische aanvullingen en suggesties. Ook deze plugin probeert dus vooral je ontwikkelsnelheid te verhogen.

Copilot in de Marketplace van Xcode

Het gaat wat verder dan 'traditionele' autocomplete extra's en plugins. CoPilot kan in sommige situaties namelijk een gehele functie voor je aanvullen/uitwerken. Naast het begrijpen en uitleggen van code kan CoPilot ook dit voor je betekenen:

CoPilot is echter niet gratis. Kies je ervoor om per maand te betalen dan kost je dat ongeveer 10 euro per maand. Wil je meer lezen over de werking van CoPilot dan raad ik je deze korte blog post van iOS ontwikkelaar Christian Tietze aan.

Crayons

Nog zo'n veelgebruikte Xcode plugin is Crayons. De naam verklapt het mogelijk al enigszins: Crayons gebruik je om binnen Xcode gemakkelijk kleuren te definiëren en organiseren.

Je kunt met Crayons dezelfde kleuren in je code en interface builder gebruiken. De plugin helpt je jouw kleurgebruik consistent toe te passen en helpt je overzicht in je project aanbrengen.

SwiftLint

SwiftLint wordt binnen Xcode door ontzettend veel iOS app ontwikkelaars gebruikt. Het is een tool die de door jou geschreven code analyseert. Het helpt je code te schrijven die binnen de Swift stijl en conventies past.

Oftewel: SwiftLint ziet toe op de kwaliteit van je code. Het zorgt er onder andere voor dat je code niet onnodig lang wordt, dat je dezelfde stijl aanhoud en dat de code leesbaar blijft.

De richtlijnen vanuit Apple hanteren

We hebben het in dit artikel tot nu toe vooral over (programmeer)talen, tools en technieken om een iOS app te bouwen gehad. De richtlijnen vanuit Apple zijn echter minstens zo belangrijk.

Apple hecht waarde aan de reputatie die het in de afgelopen decennia heeft weten op te bouwen. Daardoor hebben ze voorwaarden ontworpen die voorkomen dat Jan en alleman een iOS app bouwen en vervolgens in hun 'ecocysteem' kunnen publiceren.

Om jouw app live te kunnen zetten in de Apple App Store zijn er dus een aantal voorwaarden waar je aan zult moeten voldoen.

Overzicht van richtlijnen

Schermafbeelding van Apple's App Review Guidelines op de website van Apple

Het spreekt voor zich dat je jouw app uitvoerig test voordat je deze ter publicatie naar Apple verstuurt. Hieronder volgt een overzicht van de richtlijnen die Apple aan jou als iOS app bouwer oplegt. Het gaat om de 'App Review Guidelines' zoals vermeld op de website van Apple.

Voordat je jouw app 'verstuurt'

Om het beoordelingsproces van jouw app zo soepel mogelijk te laten verlopen heeft Apple een handige checklist met punten opgesteld. Het succesvol aftikken van iedere punt op deze lijst geeft geen garantie op een positieve beoordeling, maar is wel een goede start.

Apple schrijft dat je ervoor moet zorgen dat:

Richtlijnen onderdeel 1: Veiligheid

Het onderdeel 'Security' van de App Review Guidelines is voornamelijk gericht op 3 zaken:

  1. Beschermen van kinderen

  2. Creëren van een veilige omgeving zonder schadelijke content

  3. Zekerheid wat betreft privacy en gegevensbeveiliging

Je weet dat de kans dat je een schadelijke of inhoudelijk kwetsende app binnenhaalt uit de Apple App Store vrijwel nihil is. Dat is mede te danken aan het uitvoerige controle en beoordelingsproces dat Apple ingevoerd heeft.

Richtlijnen onderdeel 2: Performance

En dit zijn de belangrijkste punten uit de App Review richtlijnen wat betreft 'Performance':

  • De door jou gebouwde app moet snel laden en efficiënt werken.

  • App mag geen (bekende) softwarebugs bevatten en mag ook geen virussen versturen naar het apparaat waar de app op geïnstalleerd wordt.

  • App moet compatibel zijn met de nieuwste versie van iOS, iPadOS, macOS, tvOS of watchOS. Hangt natuurlijk af van het platform waar je jouw app voor gebouwd hebt.

  • Een app die tijdens het opstarten crasht wordt hoe dan ook afgewezen.

  • De app de je instuurt moet de volledige versie zijn zoals die ook in de App Store beschikbaar moet komen. Dus geen incomplete versie zoals een trial, demo of een bèta versie.

Richtlijnen onderdeel 3: Zakelijk

De kans is heel groot dat je met jouw eigen iOS app ook geld wil gaan verdienen. Uit de documentatie van Apple blijkt dat zij graag op de hoogte gebracht willen worden van je bedrijfsmodel.

Is het verdienmodel van jouw app niet direct duidelijk? Dan is het belangrijk dat je dit toelicht in de metadata en/of de App Review notes (notities). Als je dat niet doet zal het beoordelingsproces vertraagd worden en is de kans groter dat de app wordt afgekeurd.

Apple stelt verder allerlei regels en voorwaarden vast aan verdienmethoden, financiële transacties en reclame binnen een iOS app. Die documentatie is bijzonder uitgebreid en je kunt je daar het beste in verdiepen op de website van Apple zelf.

Richtlijnen onderdeel 4: Design

Apple wil dat de apps in de App Store het Apple 'gevoel' evenaren. Ze schrijven zelf dat hun klanten graag producten gebruiken die verfijnd, simpel, innovatief en makkelijk te gebruiken zijn. De design richtlijnen zijn minder uitgebreid en dit zijn de belangrijkste punten uit de richtlijnen:

  • Een app die teveel lijkt op een andere al in de App Store aanwezige app zal afgekeurd worden. Je loopt ook het risico dat de toegang tot het Apple Developer Program volledig ontzegt wordt.

  • Jouw app moet meer functionaliteiten en inhoud bevatten dan een opnieuw ingepakte website. Wanneer je app niet handig of uniek is en/of wanneer deze niet op een echte app lijkt hoort deze volgens Apple niet in de App Store thuis.

  • Je app mag niet onder verschillende namen (ID's) ingezonden worden. Heb je een app die verschilt per regio, land, team of anders? Bundel deze versies dan binnen 1 app.

  • Apps die extensies/plugins bevatten moeten voldoen aan onderstaande documentatie en moeten van functionaliteit voorzien zijn. Je moet in je app duidelijk vermelden welke extensies beschikbaar zijn gemaakt en ze mogen geen marketing, advertenties of in-app aankopen bevatten.

  • Er mag gebruik gemaakt worden van Apple RSS feeds zoals de iTunes RSS feed, maar er mag geen informatie 'gescraped' worden van Apple websites en platformen (apple.com, iTunes winkel, App Store, App Store Connect, etc).

  • Maakt je app gebruik van een third-party of social media login service zoals 1 of meerdere van onderstaande, dan zijn er een aantal voorwaarden waar jouw app aan moet voldoen. Deze vind je in de uitgebreide documentatie terug.

    • Facebook login

    • Google sign-in

    • Sign in with Twitter

    • Sign in with LinkedIn

    • Login with Amazon

    • WeChat login

Richtlijnen onderdeel 5: Wettelijk

Het laatste onderdeel van de 'App Review Guidelines' is Legal (wettelijk). Dit zijn de belangrijkste punten:

  • Apple vind het waarborgen van privacy van haar gebruikers enorm belangrijk. Ze gaan er vanuit dat je rekening hebt gehouden met de privacy best practices, wetgeving en met de voorwaarden binnen de Apple Developer Program License Agreement.

  • De app moet in het App Store Connect metadata veld een link naar jouw privacy policy bevatten. Daarin vermeld je welke data jouw app verzameld, hoe het dat doet en hoe deze data wordt gebruikt. Heeft een derde partij via jouw app toegang tot alle data of delen van deze data? Dan hoor je in diezelfde policy te vermelden dat deze derde partij(en) de data op dezelfde manier als jij dat doet behandelen.

  • Zonder expliciete toestemming van de gebruiker van jouw app mag je persoonlijke data niet gebruiken en/of verzenden. Apple ziet er verder streng op toe dat je jouw app en specifiek de daarin verzamelde data niet inzet voor het opbouwen van een gebruikersprofiel.

  • Apple vermeld extra voorwaarden en regels voor vergaarde data die te maken heeft met fitness, gezondheid en medische gegevens. Je kunt dan denken aan data die voortkomt uit bijvoorbeeld de HealthKit API.

  • Zal jouw app worden gebruikt door kinderen en wordt hier data van verwerkt? Dan heb je met extra wetgeving te maken, waaronder de 'COPPA' (Children's Online Privacy Protection Act).

  • Het is belangrijk dat er in jouw app alleen inhoud aanwezig is die je zelf hebt gemaakt. Komt de inhoud van een derde partij af dan moet je zeker weten dat je toestemming hebt om deze te gebruiken.

  • Een app die een VPN dienst aanbied moet gebruikmaken van de NEVPNManager API en mag alleen ter goedkeuring aangeboden worden door iOS ontwikkelaars die als organisatie (bedrijf) bij het Apple Developer Program aangemeld zijn.

  • 'Mobile Device Management Apps' kunnen alleen in de App Store opgenomen worden wanneer er voor deze functionaliteit goedkeuring vanuit Apple is verleend. Hiervoor dien je dus met Apple contact op te nemen. Hiernaast mogen dit type apps alleen door commerciële bedrijven, onderwijsinstellingen en overheidsinstellingen ingezonden worden.

Hoe voorkom je dat jouw app wordt afgekeurd?

Laat je niet ontmoedigen door de bovenstaande richtlijnen van Apple. In de praktijk blijkt een groot deel van die richtlijnen tijdens de ontwikkeling 'vanzelfsprekend'. Je gebruikt bijvoorbeeld geen gebruikersdata zonder expliciete toestemming en probeert de app sowieso al zo gebruiksvriendelijk mogelijk te maken.

Cirkeldiagram over de statistieken van iOS app afkeuringen

Volgens Apple zelf komt 88% van alle app afkeuringen door de meest gemaakte fouten die op hun website vermeld staan.

Toch zijn er een aantal veelvoorkomende oorzaken waardoor na inzending een iOS app afgekeurd kan worden. Wanneer je daar weet van hebt is het makkelijker om niet dezelfde fout(en) te maken. Ik heb 10 van de meest voorkomende oorzaken voor je op een rij gezet.

1. Aanstootgevende content

Apple schrijft dat wanneer mensen een app uit de App Store downloaden ze er vanuit moeten kunnen gaan dat het veilig is. Ze staan om die reden geen inhoud toe die als shockerend of kwetsend kan worden ervaren. In het geval van Apple wordt dat 'objectionable content' genoemd. Daar valt het volgende type content onder (terug te vinden in de documentatie van Apple):

  • Inhoud die discriminerend, lasterlijk of kwetsend is en inhoud die individuen en/of groepen kan vernederen of schaden.

  • Afbeeldingen die realistisch geweld tegen mens en/of dier laten zien, of inhoud die geweld aanmoedigt.

  • Vijanden in spellen mogen niet gericht zijn op een specifiek ras, cultuur, regering, bedrijf of andere entiteit.

  • Tonen van beeldmateriaal die het gebruik wapens en gevaarlijke voorwerpen aanmoedigt.

  • Expliciet seksueel en/of pornografisch materiaal.

  • Gebruik van onjuiste citaten uit religieus materiaal en/of opruiend religieus commentaar.

  • Apps die anonieme gesprekken en berichten mogelijk maken.

  • Apps die valse/neppe informatie en functies bevatten of het mogelijk maken om neppe locatie gegevens te delen.

  • Content die van wil profiteren van gebeurtenissen zoals een terroristische aanval, een gewelddadig conflict of epidemie.

2. Je app is een kopie van een andere app

Apple ziet streng toe op niet alleen de inhoud maar ook de vorm (verpakking) van de door jou ingezonden iOS app. Je idee moet uniek zijn en iets toevoegen aan de App Store.

Voordat je begint met bouwen doe je er verstandig aan te onderzoeken of er apps zijn die vergelijkbaar zijn met het idee dat jij in je hoofd hebt zitten. Daarnaast is het belangrijk om unieke visuele elementen te gebruiken, van je globale ontwerp tot aan iconen en knoppen.

Een vergelijkbaar 'probleem' is app spamming. Dat is wanneer een ontwikkelaar 1 app idee/concept in meerdere variaties ter goedkeuring instuurt. Apple treed hier hard tegen op en dit zorgt er vrijwel altijd voor dat je verwijderd wordt uit het Apple Developer Program.

3. Je gebruikt een private API

Een andere veelvoorkomend reden voor afkeuring van een iOS app is het gebruik van een 'private API'.

Private API's worden intern door Apple gebruikt voor hun publieke API's. Het gebruik ervan is riskant omdat functioneren ervan niet gegarandeerd is.

Daarnaast worden private API's regelmatig door Apple gewijzigd of vervangen. Hier gaat geen waarschuwing aan vooraf waardoor jouw eigen iOS app plotseling niet (meer goed) functioneert.

Blijf om dit te voorkomen gebruikmaken van door Apple ondersteunde functions en classes. Die vind je terug in de officiële documentatie.

4. Je app crasht en/of heeft bugs

Dit zou een vanzelfsprekend punt moeten zijn. Voordat je jouw zelf gebouwde iOS app ter goedkeuring instuurt doe je er verstandig aan om deze te testen. Test vooral ook op verschillende apparaten.

Heb je een app voor iPhones ontwikkeld? Test de app dan ook op oudere iPhones en op verschillende soorten internet verbindingen.

Heel vaak wordt er in een iOS app gebruik gemaakt van 'third party' elementen. Dat zijn functionaliteiten die door iemand anders gebouwd zijn en waar jouw app gebruik van maakt. Deze code kan botsten met de door jou geschreven code en voor bugs zorgen.

Apple ziet hier (erg) streng op toe, wat betekent dat ook een enkele kleine bug ervoor kan zorgen dat je app wordt afgekeurd.

5. Je app is een opnieuw ingepakte website

Apple wil unieke apps in de App Store opnemen en is mede daardoor geen fan van PWA's. Heb je een website in de vorm van een app verpakt? Dan is de kans groot dat je app niet door Apple's keuring heen komt.

Deze regel vind je in sectie 4.2 van de 'App Store Review Guidelines' terug: "Your app should include features, content, and UI that elevate it beyond a repackaged website."

6. Ontbreken van een privacyverklaring (privacy policy)

Apple hanteert een strikt privacyverklaring beleid voor alle apps die in de iOS app store verschijnen. Dit betekent dat jouw app het volgende moet hebben:

  • Een privacyverklaring (privacy policy) in de metadata van je app

  • Uitleg binnen de app hoe jouw app omgaat met het verwerken en bewaren van data

  • Mogelijkheid voor gebruikers om de verzameling en verwerking van hun data te weigeren

Daarnaast vereist Apple dat jouw iOS app over 2 specifieke links moet beschikken. De eerste is een link naar jouw 'Support' afdeling waar alle contact informatie te vinden moet zijn.

Is jouw app gemaakt voor kinderen en/of bied je een abonnement optie aan binnen jouw app? Dan moet er een link naar een privacyverklaring pagina aanwezig zijn.

Buiten bovenstaande punten moet jouw app aan de GDPR (General Data Protection Regulation) en aan Apple's privacy policy voldoen.

7. Slechte interface

Voordat je de layout, interface en indeling van jouw app ontwerpt is het slim om Apple's Human Interface Guidelines goed door te nemen.

Dit zijn voornamelijk richtlijnen en 'beste pratices' wanneer het aankomt op het design van jouw eigen iOS app.

Apple geeft in haar documentatie zelf voorbeelden van goede en slechte screenshots en user interfaces:

Voorbeeld van een goede en slechte interface uit de Apple iOS app guidelines

Voorbeeld van een een goede en slecht interface. Bron: Apple iOS app guidelines

Voorbeeld van goede en slechte screenshots uit de Apple iOS app guidelines

Voorbeeld van een goede en slechte schermafbeeldingen in een iOS app. Bron: Apple iOS app guidelines

8. Een slechte gebruikerservaring

Vraag jezelf bij het gebruiken van jouw eigen gebouwde iOS app af of hij makkelijk te gebruiken is, en ben hier kritisch op!

Jij kent de app door-en-door, omdat je hem zelf gemaakt hebt. Om die reden is het slim om jouw app door vrienden, familie, kennissen en/of zakenrelaties te laten testen voordat je deze ter goedkeuring instuurt.

Als jouw app niet voldoet aan de iOS design richtlijnen komt deze sowieso niet door de keuring van Apple heen.

9. Andere betaalmethoden dan die van Apple

Het kan zijn dat jouw app functionaliteiten en/of inhoud bevat die alleen tegen betaling te gebruiken of zien is.

Als dat zo is dan verplicht Apple je om alle transacties via de Apple App Store zelf te laten verlopen. Hiermee kunnen ze aan alle gebruikers garanderen dat de transactie zo veilig mogelijk verwerkt wordt.

Dit is vooral een aandachtspunt wanneer je een website omtovert in een iOS app. Andere betaalmethoden die hier aan gekoppeld zijn moeten dan namelijk komen te vervallen.

10. Incomplete informatie

De laatste van de 10 veelvoorkomende redenen waarom Apple jouw app af kan keuren is het ontbreken van informatie in je app.

Zorg er dus voor dat de volgende informatie sowieso aanwezig, kloppend en te vinden is:

  • Contact informatie

  • Titel, omschrijving, specificaties en andere gegevens van en over jouw app

  • Informatie over de categorie van je app

  • Notities over het installeren en configureren/instellen van de app

  • Een video wanneer je iets aan gebruikers uit moet leggen over de hardware of software

Start je project, start met bouwen

Nu je voorbereiding er op zit wordt het tijd om daadwerkelijk zelf een iOS te bouwen. Ik heb een globaal stappenplan voor je opgezet; het is aan jou om dit op te volgen en hier vooral tijd in te steken. Je leert alleen door te doen.

1) Xcode downloaden

Zoals we eerder besproken heb je voor het bouwen van een iOS app een Mac nodig waarop Xcode geïnstalleerd is. Xcode is Apple's eigen ontwikkelomgeving voor iOS apps. Xcode bevat verder allerlei tools en handigheden die je helpen bij de ontwikkeling van jouw iOS app.

Je hebt op jouw Mac een versie van macOS (Mac OS X) 13.5 (Ventura) of hoger nodig. De voordeligste optie wanneer je nog geen Mac systeem hebt is de aanschaf van een Mac Mini. Daar heb je wel een muis, toetsenbord en beeldscherm bij nodig.

Vervolgens kun je Xcode hier gratis downloaden. De meest recente versie is op het moment van schrijven (april 2024) versie 15. Versie 15 heeft ondersteuning voor SDK's van:

  • iOS 17

  • iPadOS 17

  • macOS Sonoma

  • tvOs 17

  • visionOS

  • watchOS 10

2) Xcode openen en je project aanmaken

In principe kun je na het downloaden en installeren van Xcode beginnen met het programmeren van je app. Je hebt een iOS of macOS apparaat nodig om jouw app te testen en 'debuggen'.

Weet je nog dat we het eerder in dit artikel over de Xcode plugin 'Injection for Xcode' hebben gehad? Dat is een plugin die een wijziging in jouw code direct vertaalt en visueel aan je toont. Alle wijzigingen die je aanbrengt zie je in een apart schermpje live verwerkt worden in jouw app. Handig om te gebruiken.

Schermafbeelding van Xcode waarin gevraagd wordt om een template voor een project te kiezen

Bij de eerste opstart zul je met behulp van jouw Apple ID wat instellingen van Xcode moeten doorlopen. Daarna zal het programma aan je vragen om een nieuw project aan hand van een zogenaamd template aan te maken. Je kunt een template naar jouw wensen aanpassen.

Xcode tutorial voor beginners

Er zijn op YouTube tal van instructievideo's te vinden voor mensen die Xcode nog nooit eerder gebruikt hebben. Ik raad je zeker aan er enkele te bekijken omdat ze vaak handige tips bevatten. Ook gevorderde gebruikers kunnen hier zeker nog wat van opsteken. Deze video bijvoorbeeld:

De video is gebaseerd op Xcode 14, maar de verschillen tussen versie 14 en 15 zijn in dit opzicht niet groot genoeg om in de weg te zitten.

3) 'Even' code schrijven

Je hebt je idee van top tot teen uitgewerkt, beschikt over een Mac systeem en hebt Apple's eigen IDE Xcode gedownload en geïnstalleerd. Misschien heb je zelfs al enkele plugins binnen Xcode geactiveerd om het jezelf makkelijker te maken.

Dan is nu het moment om echt code te gaan kloppen en de iOS app die je voor je ziet te gaan programmeren. Omdat het om een iOS app gaat en je Apple's eigen ontwikkel programma (Xcode) gebruikt is het logisch om ook Apple's eigen programmeertaal te gaan gebruiken: Swift.

1. Gebruik Xcode

Je leert Xcode alleen maar kennen door het programma te verkennen en te gebruiken. Hierboven heb ik een handige video vermeld waarin je in een klein uur door Xcode heen geleid en van tips voorzien wordt.

2. Leer Swift kennen en gebruiken

Het is makkelijker gezegd dan gedaan: leer programmeren in de programmeertaal Swift. Maar waar moet je beginnen? Je hebt waarschijnlijk nog nooit eerder een regel code in Swift gezien, laat staan aangeraakt.

Je moet weten hoe de Swift taal in de basis werkt om voor je te kunnen zien hoe je een (klein) onderdeel van jouw app moet programmeren. Natuurlijk kun je de hulp van een A.I. zoals ChatGPT of Bard inzetten, maar daarmee leer je de taal niet lezen en begrijpen.

Bekijk de 'Swift Basics' videoreeks van 'Swiftful Thinking'

Een wat mij betreft goede manier om kennis te maken met Swift als programmeertaal is het bekijken en volgen van de Swiftful Thinking videoreeks.

Swiftful Thinking is het YouTube kanaal van Paul Hudson. Hij maakt allerlei instructievideo's voor Swift.

Je kunt het beste starten bij de playlist 'Swift Basics (Beginner Level)'. Deze kun je hier vinden.

(Gratis) Swift cursus voor beginners

Gelukkig zijn er online verschillende gratis online Swift cursussen. Het maakt daarbij niet uit of je een complete beginner bent of al wat ervaring hebt opgedaan.

1 Van de bekendste platformen voor trainingen en cursussen in programmeertalen is codecademy.com. Ik raad je aan met deze gratis cursus te starten:

Een andere bekende is de '100 Days of SwiftUI' van hackingwithswift.com. Een volledig gratis 100-daagse Swift training. Je vind 'm hier:

Swift Playgrounds

Een andere goede optie voor het leren van Swift is de Swift Playgrounds app. Dat is een app die door Apple zelf ontwikkeld is voor iPad en Mac. De app leert je op een speelse manier te coderen en apps te bouwen.

Meer informatie kun je hier vinden op de website van Apple.

Bouw een (hele) eenvoudige eerste mini-app

Nadat je je verdiept hebt in Swift en 1 of meerdere van bovenstaande gratis cursussen hebt doorlopen raad ik je aan je eerste mini iOS app te bouwen.

Daar zijn in pure tekst niet echt handleidingen voor te vinden. YouTube staat er echter vol mee. Bijvoorbeeld onderstaande van iOS Academy:

Het fijne van dit soort video's is dat je hem eenvoudig kunt pauzeren en op je eigen tempo kunt volgen. Je vind tal van instructievideo's door te zoeken op termen als 'learn to build a basic ios app'.

Nadat je beide hebt gedaan (de trainingen en het bouwen van een hele eenvoudige eerste iOS app) doe je er goed aan om 'gewoon' te beginnen met jouw eigen app. Hak de functionaliteiten in zo klein mogelijke delen op.

Voor zowel je project planning (het ophakken in delen van je project) als de uitvoering in code raad ik je aan een A.I. tool als hulpmiddel te gebruiken. Het zal je verbazen hoe effectief (bijvoorbeeld) een ChatGPT kan zijn wanneer je even bent vastgelopen.

3. Test je code

Na het schrijven van je code zul je deze moeten testen om ervoor te zorgen dat de door jou geschreven software vrij van bugs is.

Dit is niet iets dat je alleen doet na het programmeren van je totale iOS app maar iets dat je voortdurend door het project heen doet.

Door een Xcode plugin zoals 'Injection for Xcode' te gebruiken zie je de wijzigingen die je in je code aanbrengt direct verschijnen in de 'voorkant' van jouw app. Dit maakt het zoeken naar fouten (bugs) een stukje makkelijker. Hiermee kun je echter niet alle functionaliteiten testen.

De beste manier om te testen: een iPhone

Wie had gedacht dat een iPhone gebruiken de beste manier om een zelf gebouwde iPhone app te testen is :-)?

Dit doe je het gemakkelijkst door gebruik te maken van Apple's eigen officiële testing platform: TestFlight. In TestFlight kun je zelf de beta versie van jouw app testen en kun je andere gebruikers ook jouw app laten testen.

In een ideaal scenario heb je zelf verschillende iPhones met verschillende software versies thuis op de plank liggen. De meeste ontwikkelaars hebben dat niet en mede daardoor wordt er veel gebruik gemaakt van TestFlight.

Beta testen nadat je jouw iOS app hebt afgerond

Wanneer je app zo goed als afgerond is kun je gebruikmaken van Apple's 'TestFlight'. Hiermee kunnen apps in betafase getest worden. Via iTunes upload je jouw app die vervolgens door verschillende gebruikers op verschillende toestellen getest kan worden. Meer informatie vind je o.a. in onderstaande video:

Je kunt ook op de Developer website van Apple terecht voor meer informatie over TestFlight. Ook bij Apple is er een uitgebreide video te vinden waarin ze van A tot Z uitleggen hoe je TestFlight gebruikt.

4) Je app opstarten en gebruiken

Wanneer je klaar bent met coderen en testen kun je vanuit Xcode de door jou gebouwde iOS app opstarten. Je kunt daarbij het apparaat selecteren waarop je de app wilt lanceren.

Schermafbeelding van Xcode waarin aangeduid is hoe je een gebouwde app kunt opstarten

Links bovenin kun je het apparaat selecteren om de app op te starten. Daarna klik je op de 'play' knop

Xcode detecteert de aan jouw Mac verbonden apparaten, dus voordat je de app opstart is het slim om een iPhone met kabel aan je Mac te verbinden.