OMT Driehoek Copy 3

Is Windows Phone 7 iets voor de iOS ontwikkelaar?

Ik ben iOS ontwikkelaar, sterker, ik ontwikkel vanaf 1984 voor Apple producten. Maar wellicht is het ook een goed idee om voor andere mobiele platformen te ontwikkelen. Microsoft was zo vriendelijk ontwikkelaars uit te nodigen voor een dag over Windows Phone 7. Altijd interessant eens te kijken waar Apple’s concurrent Microsoft mee bezig is.

De komende weken worden telefoons met Windows Phone 7, het nieuwe besturingssysteem van Microsoft voor smartphones, verkrijgbaar. Na het lezen van een verhaal over wat Microsoft-baas Steve Ballmer nu weer had gezegd, iets over ‘Big Buttons’, leek het me onmogelijk dat het ooit nog wat zou worden met Microsoft in de mobiele markt. Nu ik Windows Phone 7 ook werkelijk gezien heb en een paar eenvoudige apps heb gemaakt blijkt het mee te vallen.

Wat opvalt is dat Microsoft heel goed naar Apple heeft gekeken. Slim van ze. Microsoft heeft bijvoorbeeld de ‘minimum hardware’ van de telefoons gespecificeerd zodat ontwikkelaars geen rekening hoeven te houden met allerlei verschillende specificaties. Dat is een bezwaar dat men vaak hoort over Android, al die telefoons zijn zo verschillend dat het eigenlijk onmogelijk is iets te maken dat op al die telefoons goed werkt en er ook nog goed uit ziet. Bij Apple is het aantal hardware configuraties beperkt, bij Microsoft zijn er meerdere configuraties maar als ontwikkelaar weet je wat er in ieder geval is. Maar Microsoft heeft niet zoiets moois als het ‘retina display’ en dikke kans dat Apple later deze week weer record verkopen bekend maakt, juist vanwege dit scherm. Dat Microsoft een minimum specificatie voor hardware heeft maakt het voor de hardware makers (op dit moment HTC, LG, Samsung en Dell) wel weer wat moeilijker een telefoon te maken die zich onderscheidt van de concurrenten. Windows Phone 7 doet, net als de iPhone tot iOS 4 niet deed, geen multi tasking om de batterij te sparen. Verder heeft Microsoft een App Store, de ‘Marketplace’, met regels die veel op die van Apple lijken. Ook bij Microsoft moeten de apps eerst goedgekeurd worden en wordt er gekeken of ze niet crashen, of ze doen wat in de beschrijving staat en of ze niet de privacy schenden, enzovoort. En de liefhebbers van vieze plaatjes en ranzige filmpjes komen ook bij Microsoft niet aan hun trekken. Apple heeft een eigen ontwikkelomgeving met eigen programmeertaal, Xcode respectievelijk Objective C, Microsoft heeft dat ook, Visual Studio respectievelijk C#. Microsoft draagt net als Apple 70% van de omzet van een app aan de ontwikkelaar af en registratie als ontwikkelaar kost zowel bij Microsoft als bij Apple $99.

Maar er zijn ook verschillen. Zo zitten er op ieder Windows Phone 7 apparaat meer knoppen (waarvan drie op de voorkant), er is een ‘panorama view’ (best mooi) en er zijn ’tiles’. Tiles zijn een soort tegeltjes in de interface waarop een app wat meer info kwijt kan dan alleen het rode getal dat een iOS app in een icon kan zetten. Telefoons met Windows Phone 7 zullen verkrijgbaar zijn voor de meeste netwerken, net als met Android maar (tot nu toe) anders dan bij Apple. Microsoft moet ook wel want ze willen Apple inhalen. Wat Microsoft ook mooi doet (zou ook iets voor Apple zijn) is een ‘try before you buy’ optie die een app de potentiële koper kan bieden mocht de ontwikkelaar dat willen. Wellicht verhoogt dat de omzet.

Microsoft begint met Windows Phone 7 meer volwassenen dan Apple destijds deed, er is meer over een hoop zaken nagedacht. Over sommige zaken ook niet, zo kan een telefoon een toetsenbord hebben waarvoor je de telefoon in landscape moet houden terwijl een app het alleen in portrait doet. Of vice versa. Knip & plak hebben ze ook nog niet, ik schat dat Windows Phone 7 qua ontwikkeling ergens tussen iOS 2 en iOS 3 zit en daar zitten dan een paar extra’s bij zoals XBox Live en een paar interface gimmicks. De vorige versie, Windows Phone 6.5, was volgens mij prut, versie 7 begint er op te lijken. Microsoft hoeft in veel gevallen het wiel niet uit te vinden zoals Apple dat moest, Microsoft moest vooral goed om zich heen kijken. Ik verwacht bijvoorbeeld niet dat Windows Phone ontwikkelaars ook met een niet helemaal duidelijk keuringsproces te maken krijgen, het lijkt er op dat Microsoft dat in een keer goed doet. Maar Apple heeft dat ook beter op orde inmiddels. Apple heeft ook heel goed nagedacht en jaren geëxperimenteerd met hoe iOS ‘onder de motorkap’ ingericht moe(s)t worden. Microsoft heeft ook ervaring op dit gebied natuurlijk, maar of ze het net zo goed gedaan hebben als Apple moet nog blijken. Op het eerste gezicht ziet het er aardig uit. Apart is ook dat het ‘Windows Phone’ heet, blijkbaar heeft Microsoft geen ideeën over andere apparaten. (Of de naam ‘Windows Mobile’ was al te veel besmet.)

Het is opmerkelijk niet-Apple-ontwikkelaars te horen praten over de iPhone. (Ik was de enige niet .NET ontwikkelaar in het gezelschap.) Veel van de nieuwe ontwikkelaars van mobiele apps zijn nog groen, ze gaan de komende jaren ontdekken wat de iOS ontwikkelaars en gebruikers al weten. Dat een mobiele app echt iets anders is dan een app voor een gewone computer, over ‘gestures’ met meerdere vingers, over het gebruik van de GPS en wat voor invloed dat heeft op de batterij, dat je iets anders kan doen met een accelerometer dan een waterpas-app (!), enzovoort. Apple heeft een geweldig voorbeeld gezet en er zijn een hoop mensen die staan te popelen het succes van Apple en de Apple ontwikkelaars te evenaren. iOS is echt hèt voorbeeld. De voorsprong van Apple is echter gigantisch, technieken waar Apple al heel veel ervaring mee heeft en op zeer grote schaal inzet, denk bijvoorbeeld aan store downloads/betalingen en push notifications. De concurrenten praten alleen nog maar over de hoeveelheden die Apple verwerkt.  Apple heeft soms moeite met het bijbenen van haar eigen succes, het steeds maar uitstellen van het uitrollen van push notifications is daar een voorbeeld van. Ik vraag me af of dat Microsoft beter af zal gaan. Maar dan moet Microsoft eerst succes hebben natuurlijk.

Voor de techneuten: Het ontwikkelen van een app gaat bij Windows Phone 7 met Silverlight (een soort Flash, maar dan van Microsoft), XNA (Microsofts platform voor het ontwikkelen van games) of HTML/Javascript. In alle gevallen wordt de code vertaald via de ‘CLR‘, een mechanisme met ‘bytecodes’ zoals Java dat ook heeft. iOS ondersteunt OpenGL, erg handig voor games, Windows Phone houdt het bij XNA. (Voor de goede orde: OpenGL en XNA met elkaar vergelijken is overigens appels en peren vergelijken, via XNA regel je veel meer dan je via OpenGL doet.) Misschien dat Apple de komende jaren ook met andere ontwikkelmethoden komt, we zullen zien. Iets Flash-achtigs is wellicht een goed idee. We kunnen in ieder geval vaststellen dat de aanpak van Apple tot nu toe erg succesvol is. En niets wijst er op dat dit succes binnenkort afneemt. Windows Phone 7 is best aardig maar loopt achter in vergelijking met iOS 4. (Al weet iedere Mac gebruiker dat zoiets niet hoeft te betekenen dat Windows Phone geen succes wordt.)

Tot slot de hamvraag: Is het een goed idee om als iOS ontwikkelaar er een ander platform bij te doen? Ik vind van niet, het is al lastig alle iOS ontwikkelingen bij te houden, dat voor meerdere platformen doen is onmogelijk. Ik kan mijn tijd beter besteden aan het ontwikkelen van een extra iOS app. De kans dat een extra iOS app iets oplevert is groter dan dat de tijd gestoken in Windows Phone of Android zich terugbetaalt. En als een van mijn iOS apps dan een enorm succes zou worden dan kan ik altijd iemand anders inhuren om  een versie te maken voor een ander platform. (Daar heb ik dan immers het geld voor.) Maar, mocht een iOS ontwikkelaar voor een ander platform willen ontwikkelen, dan is Windows Phone 7 tot mijn verrassing geen slechte keuze. Veel zal bekend voorkomen. En de concurrentie is redelijk gering nog, maar dat zal wel snel veranderen. Er zullen ongetwijfeld ook veel iOS ontwikkelaars zijn die hun successen in de App Store, of de successen van anderen, even snel proberen te herhalen bij Microsoft. En zijn ook veel mensen die denken dat Microsoft gewoon te laat is. (Je moet om te ontwikkelen voor Windows Phone 7 wel een computer met Windows hebben, ontwikkelen voor Android kan ook met Mac OS X.)

Meer informatie over Windows Phone 7 voor ontwikkelaars: https://create.msdn.com/

Archief