OTA, GIT en Hudson

Door vistu op donderdag 29 maart 2012 22:44 - Reacties (9)
Categorie: -, Views: 3.439

Waar ik - als beginnend iOS developer - een aantal jaar geleden continue tegenaan liep was het beheren van mijn code. Geregeld gebeurde het dat nadat een bepaalde versie live staat er verder wordt gewerkt aan de volgende major release. Op het moment dat er in de huidige versie dan bugfixes moeten worden gedaan zat ik - zonder source control - al snel in de shit. Hoe terug te komen naar precies die versie die nu online staat?
Ongetwijfeld gegniffel van de - zichzelf respecterende - developer, maar voor mij destijds nieuw. Uiteindelijk aan de slag gegaan met git, en man, wat werkt dat fijn.
Over hoe git werkt zijn genoeg tuts te vinden - nog los van het feit dat ik zeker geen git ninja ben - dus daar zal ik verder niet al teveel over uitweiden.

Nadat dit eerste 'probleem' was opgelost bleek het een crimť om je testers van updates te kunnen voorzien. De gebruikelijke strategie is het compileren van je code om vervolgens een ipa (iPhone Application Archive) en provisioning profile naar je testers te versturen, de testers op hun beurt dienen dan weer deze files iTunes in te slepen om vervolgens de app over te zetten naar de iPhone.
Dit kan gelukkig een stuk eenvoudiger; door je code te compileren en vervolgens op te slaan voor 'Enterprise or Ad-Hoc Deployment' is het mogelijk een pakketje aan te maken dat de gebruiker vanaf zijn iDevice kan installeren. Dit is zelfs mogelijk door in Safari naar een link te surfen. Voila, OTA (Over The Air) distributie van iOS apps!

De echte stap voorwaarts was het moment waarop deze twee technieken gecombineerd werden met Hudson. Hudson is een build server waarmee het mogelijk is om automatisch code te compileren. Na het committen van code begint de build server keurig aan een build om deze vervolgens te uploaden en klaar te zetten voor de testers om mee te spelen; de build server kan zelfs een mailtje naar je testers versturen met een changelog en download link.

In een volgende posting zal ik proberen iets technischer te werk te gaan en ook aan te geven hoe je zelf een dergelijk systeem kunt opbouwen. Het kan wat gepriegel zijn in het begin, maar blijkt zeker op lange termijn voor ons een hoop tijd en ergernis te besparen. Nu alleen nog de build server Unit Tests laten uitvoeren ;)

Caelinoti, een vliegende start

Door vistu op dinsdag 27 maart 2012 21:19 - Reacties (7)
Categorie: -, Views: 4.274

Allereerst welkom op mijn blog. Ik begin met de disclaimer dat dit mijn eerste blogposting is en ik werkelijk nog geen enkel idee heb in hoeverre ik actief zal bloggen, nog los van het feit in hoeverre de blogs waardevol zullen zijn.

Als iOS developer - heerlijke bijbaan voor een student ! - word je af en toe haast gedwongen oplossingen van derden te gebruiken. Zo hebben wij een app in beheer waarin intensief gebruik gemaakt wordt van push notificaties. Om deze notificaties te kunnen versturen zijn er verschillende mogelijkheden. Zoals zo vaak eindig je dan met twee keuzes: zelf ontwikkelen of uitbesteden.
In eerste instantie is er besloten uit te besteden en zijn wij uitgekomen bij Urban Airship, een push notificatie provider met een iOS framework en een eenvoudig te gebruiken API. Een aantrekkelijke oplossing, maar naarmate er meer gebruikers bijkomen en er meer notificaties verzonden worden, ook steeds duurder.

Uiteindelijk is er de keuze gemaakt om over te stappen naar een goedkoper alternatief; in de baas zijn tijd ontwikkelen was nog steeds geen optie. Gelukkig had ik zelf nog wat tijd over, in een aantal dagen heb ik een alternatief in elkaar gezet met de voordelen van Urban Airship, maar zonder de kosten ;).

Dit alternatief - Cealinoti genaamd - is afgelopen week in twee van onze apps gelanceerd, waarbij het een succes lijkt te zijn. Tot dusverre zijn er 230.978 notificaties de deur uitgegaan en dat gaat eigenlijk prima. Het geheel draait van twee gemirrorde VPS'en, die het vooralsnog prima weten te handelen.
Nu is het een kwestie van blijven groeien en ondertussen wat rondkijken. Zo moet ik besluiten of ik alles (of een deel) van de code open source wil maken, en of ik hiermee meer wil. Mijn voorkeur gaat er op het moment naar uit om in elk geval de iOS library zelf open source te maken en de backend dicht te laten. Zo moet het voor mij mogelijk zijn om enerzijds te leren van de feedback op mijn code (en misschien anderen te helpen) en anderzijds behoud ik de optie om er in de toekomst meer mee te doen.
Wat denken jullie daarvan?

Verder ben ik eigenlijk - schaamteloze plug, ik weet het - op zoek naar iOS developers die momenteel gebruik maken van een service als Urban Airship, maar eigenlijk een gratis alternatief willen gebruiken. Laat in dat geval een reactie achter ;).