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!
Wat is meer? Als je aan de ene kant meer functies beschikbaar stelt en aan de andere kant technieken gaat verbieden, komen er dan meer functies of zijn het dan alleen andere functies?
Tevens dank aan Wouter van den Broek met commentaar, en specifiek deze stukken als toevoeging:
en
Als je je kalender & google calender goed instelt (dmv de google exchange server, m.google.com) kun je gewoon met push je kalender synchroniseren.
Ik moet zeggen dat het inderdaad lang geleden was dat ik hier naar een simpele oplossing zoch. Nu wel gevonden: http://www.google.com/support/mobile/bin/answer.py?answer=138740&topic=14252
Al moeten er voor meerdere agendas op 1 device nog wel een aantal truukjes worden uitgehaald.
Sinds Google nu ook push (exchange) ondersteunt kun je gewoon je iPhone calender syncen met je Google Cal 😉
Dat doe ik namelijk al sinds een paar maanden…Helemaal fijn wanneer je iCal (mac) ook hebt gesynct met Google Cal…Gewoon iets aanpassen op je mac en hij staat meteen op je iPhone, en vice versa…
Duidelijk tekst. Zo zie je maar weer dat 4.0 veel nieuws mee gaat brengen. Hopelijk kunnen we het ook meteen combineren met jailbreak.
wat was de release datum van OS 4.0 ook al weer?
Verschillende nieuwe dingen, maar nog steeds geen bluetooth tussen andere gsm’s, Apple staat 10 jaar achter.
@Falk:
Iemand een idee van hoe je al een nickname bij het game-center kan registreren?
Mijn Agenda synchroniseert draadloos met mijn Google agenda en die synchroniseert weer automatisch met outlook. Dit alles zonder MobileMe. Ik vind dit juist een van de beste eigenschappen van mijn iPhone OS. Nog meer omdat de iPhone van mijn vrouw dit ook doet en wij dus al onze afspraken direct in de agenda zien verschijnen. Ideaal!
Erg mooi artikel!, maar idd zoals thaan al zei, google synchroniseerd wel degelijk automatisch de calender als je exchange instelt
En dat is het geniale! Apple doet dingen die al lang bestaan, maar dan beter. Zoals al in het artikel vermeld kan de Nexus One wel multitasken maar gaat de batterij dan erg kort mee. Met de iPhone is dit veel beter gedaan!
Ik heb je artikel vol intresse gelezen, mooi artikel.
@Soxbrother:Â
Je loopt zelf jaren achter. Wat zou jij nog allemaal via bluetooth willen delen? Het enige wat ik daardoor ooit gehad heb is troep. Daarnaast kun je net zo makkelijk een afbeelding of video mailen. Alles is tegenwoordig terug te vinden op internet. Muziek delen via bluetooth komt er sowieso nooit ivm itunes en copyright. Bluetooth als uitwissel techniek is pre-mobiel-internet.
radio activeren
Its all very well all these extra functions but iphone owners want really only one thing to be able to do what they want with thier phone and not be dictated to by apple on what we can have
Gaat de batterij lang mee in de iphone? Dat is een nieuwe voor mij. :’)
@bliep we laden de batterij dagelijks op omdat we de iPhone zoveel gebruiken ;-). Als ik naar 2e iPhone (testdevice) kijk, welke minder/niet gebruikt wordt, dan gaat deze lang mee voor een smartphone!
Helder geschreven stuk!! Bedankt hiervoor en ik kan niet wachten tot OS4 uitkomt!!
Wordt er ondertussen een beetje gestoord van dat mijn comments niet door komen, maar dan nogmaals. @Soxbrother:
Je loopt zelf achter. Wat zou je nog via bluetooth willen versturen? Alles is tegenwoordig terug te vinden op internet. Wil je een afbeelding of filmpje delen? Stuur gewoon een linkje per mail.
Muziek en Films delen via bluetooth kun je sowieso vergeten gezien Apple grote belangen heeft bij de verkopen binnen iTunes. Daarnaast speelt daar nog zoiets als copyright.
Het enige wat ik ooit heb gekregen via bluetooth is troep, troep die je ook via internet binnen kan halen. Bluetooth als uitwisselingstechniek is pre-mobiel-internet. Tot 2008 dus ongeveer.
Bluetooth zal verder gaan als middel om apparaten met elkaar te verbinden wanneer ze elkaars functionaliteit aanvullen of extra functionaliteit bieden. Verder is het gewoon overbodig aan het worden.
Zoals hierboven al gezegd: Google Calendar synct out-of-the-box probleemloos met de iPhone..?
Wbt Bluetooth: misschien minder uptodate voor verzenden van bestanden, maar voor zaken als draadloze koppeling naar auto-radio of andere telefoons voor multiplayer zeker nog geschikter dan de wegvallende 3G-verbindingen. Alle andere aankomende funties (hibernation als alternatief voor multitasken), folders etc, zijn geen koplopers-actie maar inhalen van achterstand.
Ik hoop dat de markt een beetje opengebroken wordt door Android, misschien dat Apple dan mijn favoriete telefoon eindelijk onder mijn eigen beheer durft te laten, ipv alles dicht te spijkeren 🙁 voel me bijna -verdrietig genoeg- genoodzaakt op Android over te stappen 🙁 Vooral nu die achterstand/dichtspykermoraliteit zi benadrukt wordt door introductie van mogelijkheden de mijn nokia 5 jaar geleden had, danwel func
(vervolg) funties die de JB al bood.
@kaas:
Draadloos beeld doorsturen is ook mogelijk met lastige opstellingen, dat maakt het nog niet bruikbaar voor een grote doelgroep. ..rest my case.
Als fan van zowel Android als iPhone blijf ik verhalen over multitasken en batterijverbruik zeer opmerkelijk vinden. Ik kan programma’s op de iPhone gebruiken die de batterij (zonder multitasken) in een paar uur leegtrekken en hetzelfde is voor de Nexus van toepassing.
Zowel mijn 3GS als mijn Nexus moeten ’s nachts aan de oplader…absoluut geen verschil. ALS ik al een verschil moet aangeven gaat de batterij van de Nexus zelfs een beetje langer mee.
Voor mij is de extra Exchange account een uitkomt.Sinds het overlijden van mijn vorige 3Gs mis ik mijn oude baseband met ad-exchange het meest.
Hmmm Multitasting…. Sounds Yummie.. lol
Leuk stukje trouwens, ook meteen duidelijk dat dit door een (mede) ontwikkelaar is geschreven, geen onzin en iemand die weet waar die over praat. 🙂
Over de layer app gesproken.
Ik kan hem niet meer vinden in de app store. Evenals de betaalde ping app. Weet iemand hier iets van?
@Jelle
Wat bedoel je niu met Google Calendar werkt niet?
Ik heb al een jaar lang probleemloos Google als CalDav ingesteld op mijn iPhone en het werkt en synct als een tiet….
Je moet het alleen niet syncen vanuit iTunes, maar op de iPhone kan je bij instellingen zelfs aanklikken dat je een Google CalDav account aan wil maken.
@Soxbrother:
Wat wil je nou via Bluetooth doen dan? Je hebt toch email e muziek kun je terecht vergeten! Copyright etc wel eens van gehoord?
Kortom, onzin! Prima zo.
@thomaspilot:
Layar is in de app store, beter zoeken.
Maar het klopt dat ping! er niet meer is, ik vraag me ook af waarom die eruit is gehaald.
De Google agenda(‘s) kun je heel mooi syncen in de iPhone calender via iCal, dit werk perfect zelfs met een Google app (zakkelijk) account….
Er is wel degelijk synchronisatie mogelijk met Google calendar (en contacten). Heb je Google wel als Exchange account ingesteld ipv imap?
Hoe kun je een naam registreren bij het game center ?
Als je OS 4 beta (als ontwikkelaar) hebt geinstalleerd staat de gamecenter app er standaard bij. Bij eerste keer opstarten gegevens invullen voor registratie.
Dank je, ik moet er dus gewoon zo snel mogelijk bij zijn als os4 public wordt.
Prima artikel maar toch een paar opm:
1. Multi-tasking met scheduling en priorisatie is met Unix tools al lang mogelijk. En toch komt Apple weer met iets nieuws zonder uit te leggen waarom. Blijft ook hier vaag.
2. De Apple-centrische visie op het heelal blijft nogal subjectief. Hoe belabberd cross-platform en Flash ook presteren, het is de gebruiker die beslist over zijn toestel (het ding is niet gehuurd) en welke UI hij beter of minder vindt. Vanuit pt1. kan je Apple’s bezwaren als beslag op het OS oplossen en deze argumenten slaan dus nergens op. Allemaal onzin om ons in de Appstore te houden. Het web IS nu eenmaal cross-platform en onze Steve heeft iedereen luid en plechtig het internet in your pocket beloofd. Quod non.
Erger nog: als Apple echt oorlog met Google wil kan ze die zo krijgen: Google stopt dan de Youtube/Maps/Streetview support voor de iPhone en dan zullen miljoenen mensen hun iPhone (en niet Google) ditchen. Snel die keutel’s intrekken, Cupertino..!
3. Bluetooth daar kan je zoveel meer handige dingen meedoen. Iedereen die hier meijert dat BT, wifi en e-mail hetzelfde is proficiat, sudder lekker door in Steve’s narrow sweetspot, die ook hier de innovatie ernstig belemmert.
Nee hoor, geen truukjes nodig voor meerdere agenda’s:
http://www.google.com/support/mobile/bin/answer.py?answer=139206
@thumper_uk:
uhh nee, want als dat really the one thing was that iPhone owners zouden willen, dan zouden ze geen iPhone kopen denk you not?? Please projecteer je eigen wensen niet op de hele groep “iPhone owners” you will make an ezel van jezelf door dit wel te doen..
Waarom Bluetooth integreren, als je toch niet de volledige functionaliteit kan benutten, dat is toch vrijwel nutteloos moet ik zeggen.
Mvg, Soxbrother
Goed verhaal. Thx!
Misschien zie ik het verkeerd, maar is het wel de iphone 3g(s) wat die man bij het 1ste filmpje heeft?
Dat zie je verkeerd. Het gaat om toepassingen die *straks* op de iPhone mogelijk zijn. Om dat te demonstreren mag je best een ander apparaat gebruiken.
op welke datum komt os 4.0 en kost de nieuwe os geld ?????