iPhone OS 4: meer mogelijkheden voor ontwikkelaars
De SDK van iPhone OS 4.0 bevat ruim 1.500 nieuwe API’s voor ontwikkelaars. Gastblogger Jelle Prins legt uit wat dat voor ontwikkelaars betekent.
Apple-fans genieten van aankondigingen als OS 4. We krijgen er vele nieuwe features bij zoals multitasting, meerdere Exchange-accounts, Folders, iBooks en meer. Voor ontwikkelaars zit er nog een extra dimensie aan de aankondigingen. Apple maakt hun werk makkelijker en zorgt voor meer mogelijkheden. Elke ontwikkelaar leest de aankondigingen met een grote grijns op zijn (of haar?) gezicht. Eerdere ontwikkelde applicaties kunnen met de nieuwe mogelijkheden opeens anders worden ontworpen. Ideeën die eerst niet haalbaar waren kunnen nu wel het licht zien.
Augmented Reality
Een voorbeeld: de bekende ‘Layar’ app doet op dit moment niets met de videostroom, deze ligt enkel op de achtergrond. Over de video heen wordt data geprojecteerd aan de hand van de locatie van de gebruiker en de richting waarin hij kijkt. Zo hebben we een simpele vorm van Augmented Reality. We gebruiken de iPhone als bril om te kijken waar de dichtsbijzijnde pinautomaten zijn. Met OS 4 krijgen ontwikkelaars toegang tot de feitelijke data waaruit de videofeed bestaat. Dit betekent bijvoorbeeld dat we gezichtsherkenning (theoretisch) kunnen implementeren. Richt ‘Layar’ op een vriend, z’n gezicht wordt herkend aan de hand van zijn Facebook-fotos en z’n laatste tweets worden getoond. Een ander cool voorbeeld is een 3D-spel dat zich afspeelt in een stad die op je eettafel wordt geprojecteerd. Doordat de app de tekening op de tafel herkent, kun je om de virtuele stad heen lopen.
Een ander cool filmpje voor Augmented Reality & Maps-fans:
Het wordt makkelijker
Apple heeft 1500+ nieuwe API’s aangekondigd. Simpelgezegd bieden deze API’s ontwikkelaars de mogelijkheid om nieuwe dingen te doen, of bestaande functionaliteiten makkelijker te implementeren. Een mooi voorbeeld is de implementatie van Google Maps binnen je applicatie. Eerst was hier geen standaard voor; ontwikkelaars moesten zelf kijken hoe ze een kaart inbrachten in hun applicatie en dit zorgde voor uiteenlopende (crappy) implementaties. Bij 3.0 kwam de mogelijkheid om heel simpel een zoombare kaart toe te voegen. Het verplaatsen van een pin was echter nog geen standaard-API en maar weinigen kregen hun apps dan ook zo mooi als Google Maps zelf. Bij 4.0 maken we ook hier weer een klein stapje vooruit. Het wordt ontwikkelaars makkelijker gemaakt en dat zorgt uiteindelijk voor mooiere applicaties.
Multitasking
Een van de belangrijkste toevoegingen is ongetwijfeld multitasking. Bij de iPhoneclub & OMT-uitzending werd aan de zaal gevraagd wie hier behoefte aan had. Velen wilde graag multitasking, maar enkelen waren sceptisch vanwege het effect op je batterij. Persoonlijk kan ik (Jelle) stellen dat mijn Nexus One het maar erg kort volhoudt wanneer er meerdere applicaties in de achtergrond meedraaien. We voorspelden dan ook dat Apple dit anders aan ging pakken en we kregen gelijk.
Apple maakt het voor ontwikkelaars makkelijker om de toestand waarin de applicatie zich bevindt op te slaan wanneer de applicatie wordt gesloten. Wanneer de applicatie dan weer wordt opgestart kan men vanaf dat punt verder gaan. De applicatie wordt bevroren. Er is zo een beetje het gevoel dat de applicatie in de achtergrond open blijft. Maar er is meer: daarnaast kunnen applicaties een aantal processen wel tijdelijk laten doorlopen wanneer ze gesloten worden. Denk bijvoorbeeld aan het uploaden van een foto of het laden van een webpagina. Muziek (Pandora) en VoIP (Skype) blijven werken en er is ook gedacht aan de applicaties die graag gebruik blijven maken van de GPS, denk bijvoorbeeld aan de ‘waar zijn mijn vrienden apps’ of iNap. Deze apps vragen feitelijk aan het OS om te waarschuwen wanneer de gebruiker van locatie verandert. Dit gebeurt wanneer de telefoon overschakelt naar een andere zendmast (om de 500 tot 2000 meter), dit kost veel minder energie dan het constant gebruiken van GPS. Ik voorzie dan ook een directe update van iNap, met grote verbeteringen!
Game Center
De aankondiging van Game Center zal hard aankomen voor de al bestaande third party scoreboards, vriendjesvinders en multiplayer-platformen. Apple introduceert feitelijk haar eigen Xbox-Live. Developers kunnen nu nog makkelijker multiplayer-aspecten toevoegen aan hun applicaties, en de verwachting is dat Game Center van Apple hier de voorkeur zal genieten boven de alternatieven van derde partijen. Voor de gamers betekent dit dat ze met hun eigen Game Center-nickname (ik heb alvast ‘Jelle’ vastgelegd) bij vele games kunnen inloggen en direct kunnen zien wie van hun vrienden het spel ook spelen.
iAd
In de lente van 2009 heb ik met AdMob gesproken over hun advertentieprogramma. We hadden een gratis applicatie met veel downloads en dachten erover om te experimenteren met advertenties. AdMob vertelde dat ze 60% van de winst deelde met de ontwikkelaars. ‘60% van hoeveel?’ vroeg ik. AdMob beloofde pas geld wanneer ze de advertentieplaatsen ook daadwerkelijk hadden verkocht en bij Apple zal dat hetzelfde zijn.
Het experiment met de advertenties ging niet door, en ik ben ook nooit een fan geworden van de irritante banners in sommige applicaties. Ze zijn vaak niet relevant, en je weet nauwelijks waarvoor je de app verlaat als je erop klikt. Ik heb ook maar van enkele developers positieve geluiden gehoord over hun advertentie-inkomsten. Advertenties zijn echter big business en het is logisch dat Apple hier haar deel van wil hebben. Apple probeerde eerst dan ook AdMob te kopen, maar moest leidzaam toezien hoe Google, mogelijk uit angst voor Apple, AdMob wegkocht. Apple koos toen voor Quattro Wireless en laat met iAds zien wat de visie is.
Volgens Steve Jobs benaderen gebruikers informatie op mobieltjes anders dan op hun desktop. Via de desktop gebruiken we search, via onze iPhones gebruiken we specifieke apps. Advertenties op mobiel moeten volgens Steve dan ook gericht zijn op apps en niet op search zoals Google dat doet. Advertenties zijn echter ook vaak irritant, en niet sjiek. Apple gebruikers betalen voor een luxe en ik kan mij goed voorstellen dat zij zo mogelijk nog sterker tegen onrelevente en opdringerige advertenties zijn. Apple mikt dan ook op advertenties die (hopelijk) iets meer bieden. Met HTML5 worden het kleine websites waarbij enige interactie, videos e.d. mogelijk zijn. Flash wordt uiteraard niet toegestaan, maar het is nog afwachten of er een full-screen banner wordt getoond bij het opstarten van een App, of dat er een subtiel plaatje in een onderhoek komt. Het is goed mogelijk dat developers hier zelf veel invloed op uit kunnen oefenen, en als de verdiensten goed zijn zie ik hier Apple snel terein winnen. Zelf zoek ik echter liever naar andere bronnen van inkomsten.
Calender Access
Een persoonlijke frustratie van mij is de Calender-applicatie van Apple. Deze zit in theorie OK in elkaar en ik zou ‘m graag gebruiken, maar hij synchroniseert niet (zonder trucs en MobileMe) draadloos met mijn Google Calendar! Daarnaast sturen mensen me vaak uitnodigingen via e-mail die ik graag direct bij Google verwerk. Nu developers toegang krijgen tot calender-data komt hier mogelijk een mooie oplossing voor en kunnen we een aantal mooie nieuwe UI’s voor onze agenda’s verwachten. Daarnaast zul je in andere applicaties je afspraken tegenkomen. In de reisplanner (hebben we eerder beperkt aangekondigd) die we aan het bouwen zijn kunnen we zo rekening houden met je schema van die dag.
In-App SMS
SMS wordt nog altijd veel gebruikt voor het pushen van data en het doen van micro-transacties. Afhankelijk van de exacte implementatie zullen we dat laatste weer meer terug gaan zien in applicaties. De vraag is echter of Apple zich hier niet in de vingers snijdt m.b.t. in-app purchases. Een App om je (via SMS) aan te melden voor een parkeerplek is in ieder geval snel gemaakt.
Alleen met de SDK-ontwikkelen
Een van de meest gestelde vragen van klanten is of we de app ook direct voor andere platformen (Android, Blackberry etc.) kunnen ontwikkelen, zonder veel extra kosten te maken. Persoonlijk geloof ik niet in cross-platform ontwikkeltools. Je doet altijd consessies m.b.t. de gebruikerservaring. De UI’s van de verschillende telefoons zijn verschillend en de interactie verloopt vaak anders. Een suboptimale gebruikerservaring bieden doen we niet en we ontwikkelen daarom voor elk platform een aparte app. Voorheen werd gezegd dat een oplossing mogelijk zou liggen bij HTML5, maar ik ben nu niet meer zo zeker van Apple’s wil om dit te motiveren.
De vraag over cross-platform ontwikkeltools is nu makkelijk te antwoorden: het mag niet van Apple. Apple laat enkel apps toe die met de eigen SDK zijn gemaakt. Officieel is de gedachte hierachter dat ze zo aanpassingen aan het OS en de mogelijkheden die developers hebben, zelf in de hand houden. Effectief maakt Apple het echter ook moeilijker om apps over meerdere platformen tegelijk uit te rollen. Daar naar mijn mening Apple het de facto platform is geworden zal dit betekenen dat Apple de coole apps heeft en dat andere platformen achterop lopen. Dit is duidelijk een situatie in het voordeel van Apple.
Toen de eerste iPhone werd aangekondigd zei Steve dat we allemaal web-apps gingen maken. Web-apps draaien op elk platform en met HTML5 kunnen we apps maken die in veel gevallen een native-gevoel benaderen. De vraag is: wil Apple dit nog wel stimuleren, of moeten de coole apps toch ‘exclusief’ voor het eigen platform komen? HTML als oplossing voor cross-platform ontwikkeling is een mythe zolang er App Stores bestaan: jouw web-app kan daar niet in en dat is juist wat iedereen wil: één plaats voor al je apps. Apple doet veel voor HTML5 (Safari Mobile is een van de beste HTML5-browsers die er is en ze maken de mooiste sites) alleen ze geven geen visie hierin, geen ontwikkeltools en dergelijke. HTML5 wordt door Apple vooral naar voren geschoven om plug-ins weg te krijgen, zodat hun browsers (op iPad en iPhone) alles goed weergeven.
John Gruber ziet het allemaal wat minder negatief. Volgens hem is het allemaal een kwestie van kwaliteit garanderen en Steve beaamt dit. Wanneer een 3rd party cross-platform populair zou worden bij ontwikkelaars verliest Apple de controle. Nieuwe functionaliteiten die Apple toevoegt zouden pas na een tijdje door de 3rd party beschikbaar worden gesteld in het cross-platformtool. Maar wat zou Apple doen als het een significant kleiner marktaandeel had dan Android?
Android is een vreemde eend in de bijt: Google wil hiervoor een zo’n groot mogelijk marktaandeel en zal dus het cross-platform juist promoten. Je kunt nu al in Java en in C Android-apps maken. Microsoft zal geen cross-platorm tools willen, net als RIM voor de Blackberry, omdat ze beide gesloten platformen hebben hebben en het beste hiervan willen maken. Apple zal niet de enige zijn om cross-platformtools tegen te houden. Als Apple de kleinste was geweest hadden ze dit ook gedaan, alleen al om zo het uiterste uit de iPhone/iPad te blijven halen.
Dit is een gastartikel van Jelle Prins, ontwikkelaar van MoopMobility. Hij is bezig met het ontwikkelen van een reisplanner die realtime gegevens over aankomst- en vertrektijden levert. Collega-ontwikkelaar Wouter van den Broek leverde ook een bijdrage aan het artikel.
Taalfout gezien of andere suggestie hoe we dit artikel kunnen verbeteren? Laat het ons weten!
Reacties: 44 reacties