Berichten gepost in februari 2009
iPhone Bootcamp dag #4
Gepost door Piet in de categorie Big Nerd Ranch, Event, iPhone
Donderdag stond (bijna) volledig in teken van de UI-(User Interface)-layer van de iPhone. We leerden:
- CoreGraphics (drawing on the iPhone)
- ViewTransitions
- CoreAnimation
en … de accelerometer.
CoreGraphics is de aangewezen weg om afbeeldingen te bewerken, roteren, schalen,… Een mooi voorbeeld van het gebruik van CoreGraphics is de witte glow en de ronde hoeken van de icoontjes op je home screen. De developers leveren immers een rechthoekige afbeelding aan de iPhone, maar Springboard (de app op de iPhone die je home screen regelt) zet een glow op dat icoontje en rond vervolgens de hoeken af.
ViewTransitions zijn een makkelijke manier zijn om overgangen tussen twee views te regelen, zoals bijvoorbeeld naar de volgende pagina van je home-screen gaan. Tegelijkertijd zijn ViewTransitions makkelijke methodes om CoreAnimation te gebruiken.
CoreAnimation is één van de steunpilaren van het iPhone OS: het is speciaal gebouwd voor de iPhone (maar nu ook beschikbaar op het MacOS). De ingenieurs, of misschien Steve Jobs himself, zochten een manier om een touchscreen instant reactie te laten geven als je op een knop duwde of van scherm wisselde. Animatie is hier een uiterst geschikt medium voor en daarom werd CoreAnimation ontwikkeld. Het stelt developers in staat om op snelle wijze bijna alles vloeiend te kunnen animeren: grootte, plaats, zichtbaarheid,… Een mooi staaltje CoreAnimation is bijvoorbeeld de CoverFlow in de iPod-app (als je de iPhone kantelt komt het album artwork tevoorschijn).
De accelerometer is de gyroscope in de iPhone, het eerste wat die bijvoorbeeld doet is het scherm kantelen als je de iPhone kantelt. Maar dat is slechts het begin, je kan er alle kanten mee uit. Het werkt zoals een Wii-mote, met die uitzondering dat de wii-mote nog een IR-sensor gebruikt om zijn hoogte te bepalen, maar in grote lijnen kan je er dus dezelfde truken mee uithalen als met de wii-mote. Je krijgt de data raw binnen, dus je bent wel zelf verantwoordelijk voor de verdere uitwerking.
Eén van de studenten vertrok al een dag vroeger naar huis en is dus werd de groepsfoto ook een dag vroeger genomen. I proudly present the class of 2009 ;-)
iPhone Bootcamp Dag #3
Gepost door Piet in de categorie Big Nerd Ranch, Event, iPhone
Dag drie op de iPhone Bootcamp: de gesprekken durven al eens af te wijken van iPhone Development en de mensen zien er al iets minder fris en fruitig uit in de ochtend (of verbeeld ik mij dat maar?).
Dag 3 werd volledig in beslag genomen door drie onderwerpen:
- Audio
- OpenGL
- WebKit (als tussendoortje)
Ik denk dat dit de meest technische dag was tot nu toe. Audio heeft enkele zeer makkelijke API’s (Application Programming Interface) ter beschikking, maar die zijn enkel geschikt voor simpele audio-afspeelmogelijkheden (korte geluiden, één mp3, iFart, …).
Als je meer controle wil over het geluid (bijvoorbeeld bij meerdere geluiden tegelijkertijd of bij het streamen van geluid) kom je al (zeer) snel terecht bij het AudioToolbox.framework. Dat framework neemt afscheid van de mooie Objective-C wereld en gebruikt veeleer C mechanismen (callbacks, buffers,…), wat het een stuk complexer maakt. Bij deze dus meteen ook de reden waarom het leeuwendeel van de apps in de AppStore gebruik maakt van simpele geluiden en niet van gelaagd geluid.
OpenGL is een programmeertaal op zich (technische mensen, indulge me voor het woordgebruik) dus bleef die sessie beperkt tot een korte inleiding tot (plus een verwijzing naar NeHe) en de manier waarop iPhone OpenGL kan gebruiken. Ik had het liever iets meer in depth gezien, maar omdat we maar een week hebben en OpenGL op zich al een week kan vullen is dit misschien toch wel de manier om het aan te pakken.
De avond was, zoals in de vorige post al wel eens vermeld, meer iPhone, meer Cocoa en meer koffie. Hoewel er ook nog een hevige discussie was over de NES en SNES (bekend als famicon in Frankrijk en Spanje), maar dat is een verhaal op zich…
iPhone Bootcamp Day #2
Gepost door Piet in de categorie Big Nerd Ranch, iPhone
Dag twee ging verder waar dag één afsloot: meer iPhone, meer XCode (de IDE, integrated development environment), meer Cocoa … en meer koffie.
Na een snelle herhaling van de materie van de eerste dag, gingen we van start met localization. Oftewel “het beschikbaar stellen van de applicatie in verschillende talen ten einde de user een zo goed mogelijke beleving te garanderen”. Aangezien Apple er in grote mate al aan gedacht heeft, is het vooral een kwestie van te weten hoe en waar je welke knoppen moet klikken.
Na de localization kwam Core Location aan de beurt: dat is het gedeelte van de iPhone SDK dat het mogelijk maakt om te bepalen waar je bent (via GPS, Cell Triangulation of zelfs via Wifi).
Vervolgens kwam een inleiding tot MVC (Model - View - Controller), een design pattern dat onder andere gebruikt wordt in Cocoa, waarbij de ViewController aan de beurt kwam. Aangezien het één van de bouwblokken is binnen iPhone Development, werd er dieper op ingegaan en de best practices aangeleerd. Omdat het vrij snel redelijk ingewikkeld werd, besloot Alex (de instructeur) dat het tijd was voor onze dagelijkse wandeling.
Aangezien iedereen intussen een test-applicatie had geschreven die bijhield waar je was en hoeveel meter je had afgelegd, was de wandeling (zo mogelijk) nog nerderig dan gisteren: iPhones in de ene hand, de andere hand klaar om jezelf op te vangen in geval van een slipper (veel sneeuw hier) en zo de berg omhoog om daar te kijken naar een - zo was ons verteld door Alex - “prachtige” wijngaard.
De rest van de middag werd volledig in beslag genomen door het schrijven van een To Do List-app die gebruik maakte van de ViewControllers (met enkele Cocoa-truken terzijde maar dat wordt wellicht té technisch).
De avond was redelijk identiek aan die van dag één: terug naar het klaslokaal voor meer iPhone, meer XCode, meer Cocoa … en opnieuw meer koffie. Voor sommige mensen is dat een mooie avond ;-)
iPhone Bootcamp Dag #1
Gepost door Piet in de categorie Big Nerd Ranch, Event, iPhone
Vandaag was de eerste dag op de ‘Big Nerd Ranch‘, waar ik me een week lang ga verdiepen in iPhone Development. De ‘Big Nerd Ranch’ is een opleiding van 5 dagen die in een stevig tempo de iPhone SDK (Software Developer Kit) doorspit en kauwt tot hapklare brokken, dit alles in een bosrijke omgeving in Frankfurt.
Hoe ziet het programma van een doorsnee dag eruit ?
- Ontbijt tussen 7 en 9 u.
- Les van 9 tot +- 12.30 u.
- Lunch
- Les van 13.30 u. tot 18.30 u.
- Avondeten — Vrij (maar dit kan je eerder zien als werken aan eigen projecten of vragen stellen over de dag)
- En in mijn geval: een blogpost schrijven ;)
Onze groep telt 8 personen uit 7 verschillende landen. De voertaal is dus overwegend Engels. Iedereen heeft een andere achtergrond, maar deelt de passie voor Cocoa ( het framework om te programmeren). De les wordt gegeven door Alexander Von Below, een man met 20 jaar ervaring als mac-developer. Die laat zich dus niet zo snel uit het lood slaan door alle vragen die op hem afgevuurd worden.
De sessies zijn hands-on. Theorie wordt vlot afgewisseld met praktijkvoorbeelden en oefeningen. Naar mijn mening is dit de snelste manier om een programmeertaal te leren. De eerste dag, de eerste les: het standaard ‘Bouw je eerste iPhone-app’-gedeelte maakte al snel plaats voor een korte uiteenzetting over Objective-C (de programmeertaal waarop Cocoa gebouwd is).
Na de lunch ging de sessie voort met tekstvoorzieningen op de iPhone. Tenslotte wierpen we een blik op een paar technische ‘Design Patterns’ in Cocoa. Om het hoofd wat te ‘verluchten’, maakten we tussendoor een korte boswandeling (Als je dus 9 mannen tegenkomt in een Frankfurts bos die het uitsluitend over Mac en iPhone hebben, is de kans groot dat het gaat om een Big Nerd Ranch delegatie).
Na het avondmaal kroop iedereen terug achter zijn desk om te werken aan het geleerde materiaal of aan eigen projecten (Dockyard heeft meer dan alleen Realtime in petto). All in all, een drukke maar leerrijke eerste dag !
Ben je geïnteresseerd in de technische details ? Volg ze via twitter (tag #bnr).