iOS Tools of the Trade

Invoering

Xcode, de de facto geïntegreerde ontwikkelomgeving (IDE) voor iOS- en OS X-ontwikkeling, is een fantastisch stuk software. Het biedt alles wat een Cocoa-ontwikkelaar nodig heeft om van een fragiel idee naar een succesvolle toepassing in de App Store van Apple te gaan.

Er zijn echter tal van tools en services die onmisbaar zijn geworden in de workflow van veel Cocoa-ontwikkelaars. In dit artikel zal ik enkele van de tools die ik gebruik benadrukken, evenals enkele alternatieven.

Bron controle

In de Cocoa-community is Git misschien wel het meest populaire broncodebeheersysteem (SCM). Hoewel de ondersteuning van Xcode voor Git verbetert bij elke release, geven veel Cocoa-ontwikkelaars de voorkeur aan een speciale tool boven de ingebouwde ondersteuning van Xcode.


SourceTree

SourceTree is de gratis Git-client van Atlassian, beschikbaar voor OS X en Windows. Het ondersteunt ook Mercurial, maar de meeste Cocoa-ontwikkelaars kiezen tegenwoordig voor Git. Niet alleen is SourceTree gratis, het is ongelooflijk krachtig en gemakkelijk te gebruiken, zelfs voor mensen die niet bekend zijn met Git.

De Git-client van Atlassian is goed te integreren met zowel Bitbucket als GitHub en FogCreek's Kiln. SourceTree helpt je zelfs met gemeenschappelijke workflows, zoals Git-flow en Hg-flow. Zelfs als je zweert bij de opdrachtregel, zal SourceTree complexe operaties veel gemakkelijker maken.

Toren

Jarenlang was Tower mijn Git-client naar keuze. Het is prachtig ontworpen, krachtig en robuust. Het biedt de meeste functies die je dagelijks nodig hebt en integreert naadloos met Beanstalk, GitHub en enkele van je favoriete editors, zoals BBEdit en Coda.

De mensen bij Fournova, de makers van Tower, hebben fantastisch werk geleverd met Tower en ze blijven me verbazen bij elke release. Tower is niet gratis, maar dat zou je er niet van moeten weerhouden om de proef te downloaden en ermee aan de slag te gaan.

Caleidoscoop

Black Pixel's Kaleidoscope is je beste vriend als het gaat om het vinden van verschillen tussen bestanden en mappen. Het concept lijkt misschien eenvoudig, maar dat is het eigenlijk niet.

Je zou kunnen denken dat een bestandsvergelijkingstoepassing zoals Kaleidoscope niet de moeite waard is om voor te betalen, maar ik daag je uit om het eens te proberen en je zult versteld staan. Het werkt heel, heel goed en ik ben gaan vertrouwen op de intuïtieve gebruikersinterface en krachtige samenvoegfunctionaliteit.

GitHub

Er zijn een aantal platforms voor het hosten van Git-archieven, maar GitHub is een van de meest populaire keuzes. Het is de thuisbasis van talloze open source-projecten, zoals AFNetworking en CocoaPods.

Publieke repositories zijn gratis en betaalde abonnementen zijn redelijk goedkoop. Met meer dan 5 miljoen gebruikers en meer dan 11 miljoen repositories is GitHub een belangrijke speler geworden waar veel ontwikkelaars op vertrouwen.

Coding

AppCode

Xcode is de de-facto IDE als je serieus bezig bent met de ontwikkeling van cacao. JetBrains is het echter niet eens met deze verklaring en zij hebben hun geld op de juiste plaats gelegd door AppCode te maken.

AppCode is het antwoord van JetBrains op de klachten van veel ontwikkelaars die gefrustreerd raken over Xcode. Het is op zijn zachtst gezegd een indrukwekkend hulpmiddel en het kan naast Xcode worden gebruikt. Hoewel het nog niet op één lijn met Xcode is verschenen, doet het het beter bij enkele van de belangrijkste functies van Xcode, zoals refactoring en voltooiing van de code.

PaintCode

Ik ken weinig mensen die graag tekenen tekenen en ik ben er zeker van dat de maker van PaintCode er ook niet dol op is. PaintCode is een vectortekenprogramma waarmee objectief-C-code on the fly wordt gegenereerd.

PaintCode bespaart u niet alleen tijd, u kunt ook minder op afbeeldingen vertrouwen om de gebruikersinterface van uw toepassing te maken. Dit maakt het veel eenvoudiger om de gebruikersinterface van uw toepassing flexibel, dynamisch en licht te houden.

Dependency Management

CocoaPods

Als u een iOS- of OS X-ontwikkelaar bent en geen CocoaPods gebruikt, doet u het verkeerd. CocoaPods begon als een klein project met een ambitieus doel. Het is uitgegroeid tot de de-facto dependency management-oplossing voor de ontwikkeling van cacao. De populairste bibliotheken bieden ondersteuning voor CocoaPods en zelfs grote bedrijven zoals Facebook en Square ondersteunen CocoaPods.

CocoaPods werkt ongelooflijk goed, is verrassend robuust en is geïntegreerd in de AppCode van JetBrains, die ik eerder heb besproken. CocoaPods maakt je leven als Cocoa-ontwikkelaar een stuk eenvoudiger. Serieus, probeer het eens. Je kunt me later bedanken.

Distributie

Test vlucht

Nog niet zo lang geleden was het distribueren van builds naar testers een pijn in de nek, vooral als die testers niet erg technisch waren. TestFlight pakte dit probleem aan door een platform te creëren voor de verspreiding van testversies via de ether. Het distribueren van builds naar testers was nog nooit zo eenvoudig.

Hoewel application provisioning nog steeds een grote hindernis vormt voor nieuwe Cocoa-ontwikkelaars, is ad hoc-distributie een stuk eenvoudiger geworden.

TestFlight heeft ook een desktop-applicatie voor OS X om het uploaden van een nieuwe versie naar hun servers nog eenvoudiger te maken. Het detecteert automatisch wanneer u een nieuw archief maakt en vraagt ​​u om de build naar de servers van TestFlight te uploaden. Dat is wat ik pijnloze ad hoc distributie noem.

HockeyApp

HockeyApp lijkt veel op TestFlight, het helpt ontwikkelaars bij het distribueren van builds naar testers. Net als TestFlight heeft het de mogelijkheid om crashrapporten te verzamelen met server-side symbolicatie en het bevat analyses om een ​​nauwkeurig idee te krijgen van welke apparaten en configuraties uw applicaties worden getest op.

Net als TestFlight heeft HockeyApp een geweldige API. Met de HockeyApp API kunt u zelfs crashmeldingen ophalen en provisioningprofielen bijwerken.

Xcode-plug-ins

Alcatraz

Alcatraz is een pakketbeheerder voor Xcode. Zeg vaarwel tegen het handmatig kopiëren van bestanden naar een obscure map. Het installeren van plug-ins of kleurenschema's met Alcatraz is een kwestie van klikken op een knop.

Alcatraz onderhoudt een lijst met plug-ins, sjablonen en kleurenschema's, die u kunt zoeken en installeren met een klik op een knop. Op het moment van schrijven is Alcatraz niet volledig compatibel met Xcode 5, maar laat dit je niet beletten het een keer te proberen.

debugging

Onthullen

Het doel van Reveal is eenvoudig maar indrukwekkend, het laat je de revisiehiërarchie van je applicatie inspecteren en manipuleren tijdens runtime. Hoe vaker ik Reveal gebruik, des te meer waardeer ik en ontdek ik de kracht en mogelijkheden ervan.

Hiermee kunt u de weergavehiërarchie van uw toepassing in twee en drie dimensies inspecteren, de eigenschappen van afzonderlijke weergaven wijzigen en zelfs inzoomen op een subset van weergaven om het debuggen eenvoudiger te maken. Reveal is niet gratis, maar het is elke cent waard.

Charles

Charles is een van die hulpmiddelen waar veel mensen van houden zodra ze het gaan gebruiken. Het is een platformonafhankelijke tool voor het monitoren van netwerkverkeer. Waarom zou dit nuttig zijn voor een Cocoa-ontwikkelaar? Vanaf het moment dat uw toepassing met een webservice moet praten, ziet u onmiddellijk het voordeel van een tool als Charles.

In plaats van je af te vragen waarom een ​​verzoek terugkeert a 404, u inspecteert eenvoudig het verzoek in Charles om te zien of u de juiste berichtkoppen met het verzoek verzendt. Charles ondersteunt SSL, laat u verkeer filteren en kan zelfs een langzame netwerkverbinding simuleren.

SimPholders

De meeste iOS-ontwikkelaars testen hun applicaties in de iOS-simulator, vooral in de vroege stadia van ontwikkeling. Dit betekent dat je soms door de sandbox van een applicatie moet bladeren. Natuurlijk kun je de Finder openen en navigeren naar ~ / Bibliotheek / Application Support / iPhone Simulator / 7.0.3 / Toepassingen / 56A57F3E-CF48-47F6-BAE8-B8541BCEC13B /. Werkelijk?

SimPholders is een kleine applicatie die leeft in je menubalk. Het geeft je snel toegang tot de sandboxes van de applicaties die je hebt geïnstalleerd in de iOS Simulator. Doe jezelf een plezier en pak een exemplaar SimPholders. Het is gratis.

Prestatie monitoring

Crashlytics

TestFlight en HockeyApp hebben de mogelijkheid om crashrapporten voor u te verzamelen, maar de enige focus van Crashlytics is het verzamelen en analyseren van crashes - en dat blijkt. Crashlytics is een gratis service en ondersteunt iOS en Android.

Het verzamelt en symboliseert niet alleen crashrapporten, het inspecteert en analyseert crashes. Het resultaat is dat het en toont u de ernst van een probleem, dat helpt bij het prioriteren van bugfixes. De Crashlytics-desktoptoepassing detecteert automatisch wanneer een nieuw archief wordt gemaakt en uploadt automatisch het dSYM-bestand van het archief zodat het eventuele binnenkomende crashrapporten kan symboliseren.

Crittercism

Crittercism gaat een stap verder dan Crashylitics door analytics, crashrapportage en applicatieprestaties te combineren. Het resultaat is een service waarmee ontwikkelaars hun applicaties kunnen verfijnen, kritieke knelpunten kunnen opsporen en bugfixes kunnen prioriteren. Het ondersteunt iOS, Android, Windows Phone en webapplicaties.

Conclusie

Deze lijst is absoluut niet definitief. Er zijn veel meer tools en services die het leven van een iOS-ontwikkelaar gemakkelijker en aangenamer maken - of minder frustrerend. Welke tools en services gebruik je voor iOS-ontwikkeling??