Boss schreef op maandag 31 oktober 2011 @ 09:26:
Triviale app idee: client/server boodschappenlijstje (inloggen, regels toevoegen uit historie, ook toegang via web-client). En vervolgens net zoveel extra's erbij gaan bedenken dat het een onwerkbaar programma is geworden maar je wel een hoop concepten hebt kunnen proberen.
Haha, iets meer dan een half jaar geleden is zo'n app mijn dagelijkse werk geworden. Mijn werkgever maakt de app van Albert Heijn en ik werk aan dat project. Het was mijn eerste echte grote iOS applicatie; voor die tijd was ik al wel als hobby bezig met iOS programmeren. Hoe ik het heb geleerd? Niet, bewust eigenlijk... ik heb ooit een boek gekocht over Mac OSX programmering en met een paar tutorials Objective C een beetje onder de knie gekregen. Als je de Mac kent, is iOS heel veel meer van hetzelfde, alleen heten een boel classes anders.
Belangrijk om mee te beginnen is inderdaad het onder de knie krijgen van Objective C en al z'n eigenaardigheden. Als je wat googled op de kernwoorden in dit stukje vind je al snel tutorials die je daarbij op weg kunnen helpen. Eerst C leren helpt, maar is niet heel nodig, omdat objective C in combinatie met Apple's libraries maar nauwelijks 'echte' C code bevat. Memory management moet je inderdaad zelf doen en is één van de eerste dingen die je onder de knie moet gaan krijgen. Toch is dat ook niet echt moeilijk, bij elke retain hoort een release, en de rest gaat via een autorelease pool redelijk vanzelf. Een ander onderwerp waarin objective C anders is dan andere talen is selectors, een soort functie-aanroep/callback systeem in 'normale' talen, en erg belangrijk bij de interactie met de cocoa touch libraries. Ook leuk om een beetje onder de knie te krijgen en wat heel erg helpt bij het lezen van vooral Apple's recentere programmavoorbeelden is blocks en de wat vreemde syntax die daarbij hoort. Als je deze basiskennis hebt kan je echt stappen maken in het iOS programmeren.
Om daarna verder te komen wil je je gaan verdiepen in de iOS libraries en de manier waarop iOS applicaties graag ziet. De libraries zijn echt enorm uitgebreid, en als je denkt iets heel moeilijks te willen is er vaak al een standaard constructie voorhanden. Het goed kennen van de frameworks is wel essentieel voor het maken van een geweldige app, in plaats van gewoon een goede app.
Het is niet moeilijk om op iOS heel snel en soepel reagerende apps te maken, maar de kennis die je er voor nodig hebt kan je alleen op doen door ervaring op te bouwen en zelf te experimenteren. Als ik nu terug kijk naar mijn eerste experimenten dan klopt daar ook weinig van en zou ik het tegenwoordig compleet anders doen, maar dat is niet erg; al doende leert men. Ik leer nog steeds dagelijks dingen bij, en wellicht moet ik over een jaar al weer hard lachen om de code die ik vandaag de dag produceer