Let op: Tweakers stopt per 2023 met Tweakblogs. In
dit artikel
leggen we uit waarom we hiervoor hebben gekozen.
OTA, GIT en Hudson
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
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
04-'12 OSSCraft
03-'12 Caelinoti, een vliegende start
Reacties
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.
uitwijden...
uitwijden...
zelfs zonder versioneringssysteem lijkt het mij toch evident dat je bij het maken van een release even een archief aanmaakt met de broncode van die specifieke release. Uiteindelijk doet men dat in versioneringssystemen net zo. Eens een release klaar is maak je er een branch van.
Het is toch echt uitweiden.X-DraGoN schreef op vrijdag 30 maart 2012 @ 07:41:
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.
uitwijden...
Is het ook ja, misschien niet het beste voorbeeld, maar ik wilde eigenlijk aangeven hoe groot de impact zou kunnen zijn. Majors gingen inderdaad in een zipje de mail op. Bij het refactoren van code was het soms lastiger, ook dan kan je zipjes maken, maar je begrijpt dat een simpele commit een stuk prettiger werkt.zelfs zonder versioneringssysteem lijkt het mij toch evident dat je bij het maken van een release even een archief aanmaakt met de broncode van die specifieke release. Uiteindelijk doet men dat in versioneringssystemen net zo. Eens een release klaar is maak je er een branch van.
Kijk eens naar testflightapp.com, dat gebruikt een ontwikkelaar waar ik voor test om (zeer) gemakkelijk testversies te kunnen distribueren.
Ken het van naam, verder nooit meegespeeld. Later vandaag eens naar kijken, alhoewel het natuurlijk ook zijn charme heeft zelf je omgeving opgezet te hebbenthaan schreef op vrijdag 30 maart 2012 @ 08:30:
Kijk eens naar testflightapp.com, dat gebruikt een ontwikkelaar waar ik voor test om (zeer) gemakkelijk testversies te kunnen distribueren.
Met testflight zou je zelfs je crash reports kunnen uitlezen (hoe vaak ze voorkomen en wat er dan crashed). Gratis, doch worden alle gegevens wel doorverkocht.
Heb toevallig mijn studenten opdracht gegeven een VCS met een build server en een issue tracker te combineren
Had zelf een demo gedaan in TFS omdat ik daarin thuis ben.
Aah leuk, mogen ze blij mee zijn, lijkt me een waardevolle les. Juist omdat het je zo veel werk uit handen kan nemen als je je erin besluit te verdiepen.riezebosch schreef op vrijdag 30 maart 2012 @ 21:48:
Heb toevallig mijn studenten opdracht gegeven een VCS met een build server en een issue tracker te combinerenHad zelf een demo gedaan in TFS omdat ik daarin thuis ben.
Testflight is idd een goeie, zeker als je een wat grotere groep van testers hebt. En het is gewoon gratis; ze verdienen de kost aan een API die je in je app kunt bouwen waarbij gebruiksstatistieken e.d. verzameld worden.
Reageren is niet meer mogelijk