iOS

Gebruikte technieken

Swift Logo

Native

Al onze iOS apps worden ontwikkeld met Apple’s native programmeertaal Swift. Swift is de taal bij uitstek om overzichtelijk en productief te kunnen ontwikkelen. Bovendien is Swift continu in ontwikkeling, waardoor er telkens nieuwe mogelijkheden ontstaan waar de apps volop van kunnen profiteren.

De iOS apps ontwikkelen we in Xcode, Apple’s native editor. Xcode is een zeer uitgebreid programma, wat vele mogelijkheden biedt naast uiteraard het ontwikkelen van de app. Zo kunnen we de app testen in verschillende apparaten door ze te draaien op simulators. Dit zijn digitale versies van de iPhones en iPads van Apple. Ook is het eenvoudig om verschillende omgevingen in te stellen, zoals het gebruiken van de staging-server of juist de productie-server. Met Xcode kan je ook apps profileren, dit houdt in dat je analyses uitvoert op efficiëntie, geheugengebruik, etc.

XCTest Logo

Test Driven Development

We ontwikkelen iOS apps in een TDD-style. Dit houdt in dat we continue en uitgebreid tests schrijven alvorens de daadwerkelijke logica uitgewerkt wordt. Dit zorgt ervoor dat we tijd besparen en fouten voorkomen. Er zijn diverse frameworks beschikbaar om in te testen (denk aan KIF, Quick of Calabash), maar we maken vooral gebruik van Apple’s eigen XCTest module.

CocoaPods Logo

CocoaPods (frameworks / pods)

Over de gehele wereld werken toegewijde ontwikkelaars aan zogenaamde ‘frameworks’ die via de dependency manager CocoaPods geïnstalleerd kunnen worden. CocoaPods zorgt voor de distributie en installatie van versies van deze frameworks. Bij de ontwikkeling van iOS apps maken we gebruik van een aantal frameworks. Voorafgaand aan het ingebruikname van een framework toetsen we eerst of het framework actief onderhouden wordt en als ‘best practice’ gezien wordt. Uiteraard moet het framework ook een flinke bijdrage leveren aan het project (lees: tijdbesparend werken). Zo hoeven we het wiel niet opnieuw uit te vinden.

Een project maakt over het algemeen gebruik van niet meer dan een handvol frameworks. Voornamelijk werken we met Alamofire voor de netwerkverzoeken (waar we overigens een blog over geschreven hebben!) en Fabric/Crashlytics voor crashrapportages en analytics.

TestFlight Logo

TestFlight

Voor het testen van apps in de alpha- en bèta-fase maken we gebruik van TestFlight. Dit is Apple’s oplossing om apps te kunnen distribueren naar devices zodat ze getest kunnen worden. Het enige dat we hiervoor nodig hebben van de gebruiker is een e-mailadres, dat bij voorkeur gekoppeld is aan een iTunes Account. De tester kan dan aan de hand van de uitnodiging via e-mail en de TestFlight-app de testversie van zijn app installeren.

Fastlane Logo

Uploaden nieuwe versies

Bij het uploaden van een nieuwe versie komen een aantal handmatige handelingen kijken (tests draaien, uploaden van de app, buildnummer ophogen, git-wijzigingen verwerken). Tijdens de ontwikkeling zetten we Fastlane in om deze handelingen te verzorgen. Fastlane kan apps geautomatiseerd uploaden naar TestFlight of direct naar de App Store. Daarnaast kan Fastlane de apps testen, screenshots maken, app-beschrijvingen aanpassen, enz. We maken dan ook volop gebruik van Fastlane om zoveel mogelijk handmatige handelingen te automatiseren.

Git Logo

Git (version control)

Git is een versiebeheersysteem dat op snelle en vooral eenvoudige wijze de broncode beheert. Iedere wijziging in de code wordt via Git bijgehouden en lokaal en online opgeslagen. Dit zorgt ervoor dat wijzigingen door het gehele team in te zien zijn, broncode nagelopen kan worden, backups beschikbaar zijn en bij nieuwe ‘features’ er op een aparte versie gewerkt kan worden.

Crashlytics Logo

Analytics en Crashreporting

Hierboven is al melding gemaakt van Fabric/Crashlytics als framework. Naast dat dit framework de app-analytics verzorgd biedt het ook live crash reporting. Dat betekent dat als er een app crasht, er bijna direct een melding binnenkomt met de oorzaak van deze crash. Hierdoor zijn we in staat om eventuele fouten in de broncode aan te passen en indien nodig een update in te dienen.

Xcode Logo

Swift en Xcode updates

Swift en Xcode zijn nog altijd (en maar goed ook) aan updates onderhevig. Vooral jaarlijks in september krijgt de taal en de editor een grote update. We werken graag met de nieuwste versies, omdat de ontwikkelingen zorgen voor verhoogde productiviteit en ontwikkelplezier.

Voordat de updates aangeboden worden, werken we al met de bèta-versies om de wijzigingen te leren kennen. Belangrijker nog; we kunnen de door ons in het verleden ontwikkelde apps testen en zien of deze de toekomstige updates van Apple zullen doorstaan of dat er eventueel aanpassingen nodig zijn. Op deze manier kunnen we proactief advies geven en zien of er alvorens de daadwerkelijke update zich aanbiedt wijzigingen gedaan moeten worden aan de broncode.

Benieuwd naar de rest van onze werkwijze?