PhoneGap vs. SDK’s

VS

Waarom zou je nadenken
Steeds meer mensen bezitten een Smartphone. Er worden ook steeds meer applicaties gemaakt voor deze Smartphones. In de tussentijd zijn echter veel verschillen platformen ontstaan. Het is dan ook voor ontwikkelaars moeilijk geworden een keuze te maken.
Doordat deze platformen zo erg verschillen van elkaar, is het moeilijk om te veranderen van ontwikkel methode. Het is dus belangrijk dat er een verstandige keuze wordt gemaakt. Middels dit artikel proberen we de keuze voor de ontwikkelaar makkelijker te maken. Er zullen verschillen naar voren komen die belangrijk zijn om over na te denken.
Voor de een is het bijvoorbeeld belangrijk dat de applicatie er goed uitziet en dat er gebruik kan worden gemaakt van alle functies van de telefoon. Een ander vindt het weer belangrijk dat iedereen snel wordt bereikt en dat het niet veel tijd kost de applicatie te bouwen.
PhoneGap
Wat is PhoneGap?
PhoneGap is een open source framework gemaakt door Nitobi, voor het bouwen van een cross-platform mobiele applicaties met HTML, CSS en Javascript. Het is in principe een pakket dat wordt gemaakt om cross-platform applicaties van dezelfde source code te creëren. De applicaties hebben dan ook gewoon een pictogram en werken op dezelfde manier als een applicatie gemaakt met een SDK. De specifieke API, zoals ‘location’, ‘contact’, e.d. wordt afgeschermd door een standaard API van PhoneGap.
PhoneGap is een oplossing om mobiele applicaties voor verschillende apparaten te bouwen. De applicatie kan ook gewoon verspreid worden via applicatie winkels, zoals de Android Market van Google en de Appstore van Apple.
Ondersteunde platforms
· Android
· iPhone
· Blackberry
· Symbian
· Palm
· Windows Phone (Bèta)
De Windows Phone 7 versie is nu nog in bèta, maar zal ook op kort termijn beschikbaar komen.
|
|
Iphone / Iphone3g
|
Iphone 3GS and newer
|
Android
|
OS 4.6-4.7
|
OS 5.x
|
OS 6.0+
|
WebOS
|
Symbian
|
Bada
|
|
ACCELEROMETER
|
X
|
X
|
X
|
-
|
X
|
X
|
X
|
X
|
X
|
|
CAMERA
|
X
|
X
|
X
|
-
|
X
|
X
|
X
|
X
|
X
|
|
COMPASS
|
-
|
X
|
X
|
-
|
-
|
-
|
-
|
-
|
X
|
|
CONTACTS
|
X
|
X
|
X
|
-
|
X
|
X
|
-
|
X
|
X
|
|
FILE
|
X
|
X
|
X
|
-
|
X
|
X
|
-
|
-
|
-
|
|
GEOLOCATION
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
|
MEDIA
|
X
|
X
|
X
|
-
|
-
|
-
|
-
|
-
|
-
|
|
NETWORK
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
|
NOTIFICATION (ALERT)
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
|
NOTIFICATION (SOUND)
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
|
NOTIFICATION (VIBRATION)
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
|
STORAGE
|
X
|
X
|
X
|
-
|
!
|
X
|
X
|
X
|
-
|
X = ondersteund - = niet ondersteund ! = onbekend
Bron: http://www.phonegap.com
Voordat er begonnen kan worden met PhoneGap moet er een aantal dingen geïnstalleerd zijn. Bijvoorbeeld IOS heeft het volgende nodig:
Benodigdheden
· Intel gebaseerde computer met daarop MAC OS X.
· Een Apple iOS apparaat (iPhone, iPad, iPod Touch).
· IOS ontwikkelaars certificaat.
Installatie SDK + PhoneGap
· Download en installeer Xcode van de Apple Developer Portal.
· Download de laatste versie van PhoneGap en pak alle bestanden uit.
Creëer een nieuw project
· Start Xcode, daarna onder het File menu selecteer New en vervolgens een New Project…
· In de lijst is er een nieuwe optie bijgekomen namelijk PhoneGap-based Application.
Het is dus gemakkelijk om PhoneGap te installeren. Ook staat er op de website van PhoneGap duidelijk aangegeven hoe alles geïnstalleerd moet worden.
Voordelen van het gebruik van PhoneGap
· Er kan gebruik gemaakt worden van één en dezelfde code voor cross-platform applicaties.
· Er kan ook gebruik worden gemaakt van de hardware op de telefoon zoals geolocatie, tril-functie, acceleratiemeter, contacten en het geluid.
· Er worden nieuwe modules ontwikkeld door de open source community waarmee tijd en geld wordt bespaard.
Nadelen van het gebruik van PhoneGap
· Doordat PhoneGap is ontworpen om meerdere platforms te ondersteunen, zal het niet over de nieuwe functies beschikken zodra deze beschikbaar zijn in de SDK.
· Sommige belangrijke functies zullen nog niet beschikbaar zijn met PhoneGap.
· Net als elk ander open source platform leunt PhoneGap op de gemeenschap om bij te dragen aan verschillende modules. Hoewel de modules prima zullen werken als zij worden uitgebracht, kunnen er nog steeds problemen ontstaan met de ondersteuning en onderhoud van deze modules. De modules kunnen ook niet altijd voldoen aan de wensen van iedereen.
· Het uiterlijk zal op alle telefoons hetzelfde zijn, waardoor het minder op een echte applicatie lijkt.
Native Apps
Wat zijn Native Apps?
Een Native app wordt ontwikkeld met een SDK ( dat letterlijk Software Development Kit betekent ) en dit is een set van ontwikkeltools die kunnen worden gebruikt om software te ontwikkelen. Voorbeelden van software die ontwikkeld is:
· Applicaties/mobiele applicaties
· Frameworks
· Computer spellen
· Besturingssystemen
· Mobiele platformen
Met zo’n digitale gereedschapskist kunnen ontwikkelaars aan de slag om applicaties voor bovengenoemde platforms te bedenken, ontwerpen en ontwikkelen. Het begrip SDK is een vrij groot begrip. Zo kan een SDK bestaan uit een Application Programming Interface (API). Deze heeft weer een interface met een bepaalde programmeertaal. Er worden vaak verschillende tools meegeleverd aan een SDK, namelijk:
· Debugger
· IDE (Integrated Development Environment )
· Voorbeelden
· Documentatie
· Communicatie tussen de hardware
· UI toolkit (gebruikersomgeving of gebruikersinterface)
SDK’s worden vaak beschikbaar gesteld door leveranciers van een bepaald product. Zo heb je IOS SDK van Apple en Android SDK van Google. Deze SDK’s zijn meestal gratis te downloaden. Dat heeft als reden dat deze leveranciers hun eigen producten willen promoten. Als je bijvoorbeeld een applicatie voor de iPhone of iPad wilt gaan ontwikkelen, kun je bij Apple de iOS SDK downloaden. In de SDK zit een set aan tools:
· Xcode IDE is een softwareapplicatie die bestaat uit een editor voor de code, een compiler (letterlijk samensteller of opbouwer), een debugger (om bugs te achterhalen) en een set aan automatisering tools. Vroeger was het zo dat het vaak voor kwam dat deze componenten los werden aangeboden, maar tegenwoordig zie je steeds vaker veelzijdige IDE’s opduiken. Andere populaire IDE’s zijn bijvoorbeeld voor Android Netbeans en Eclipse. Voor Windows Phone is er Visual Studio.
· Met de iOS Simulator kunnen in Xcode gebouwde applicaties voor de iPhone of iPad draaien op je computer. Je kunt hierdoor makkelijk de gebruikersinterface uitvoerig testen.
· Door de Instruments applicatie krijg je meer inzicht in de processen die er binnen Xcode ontworpen zijn. Wat gebeurt er precies als een gebruiker iets onverwachts doet? Kan de applicatie meerdere ingevoerde data of commando’s tegelijkertijd aan? Gebruikt de applicatie niet te veel geheugen?
· De juist userinterface (UI) bouwen voor de applicatie wordt eenvoudiger met de Interface Builder. Hiermee ontwerp je de interface van een applicatie met een drag & drop systeem.

Link naar rechts: Android, Windows Phone, Blackberry en IOS achteraan.
Voordat er ontwikkeld wordt moet er wel gelet worden op de licenties. Het gebeurt vaak dat de SDK gratis te downloaden is, maar dat het product ook gratis aangeboden moet worden omdat het een Open Source licentie heeft. Zodra er een commerciële tint aan zit, zal er diep in de buidel getast moeten worden om nog steeds gebruik te maken van de SDK.
Voorbeeld SDK’s
· IOS SDK (Apple’s Iphone & Ipad)
· Android SDK (Google ’s Android)
· Blackberry SDK (RIM’s Blackberry)
· Windows Phone (Microsoft’s Windows Phone)
· WebOS SDK (HP’s WebOS)
· Symbian SDK (Nokia’s Symbian)
· Bada SDK (Samsung’s Bada)
Voordelen van het gebruik van SDK’s
· SDK’s zijn over het algemeen sneller. Er wordt meer gebruik gemaakt van alle mogelijkheden die op de telefoon beschikbaar zijn.
· De gebruiker voelt zich comfortabeler met een applicatie die speciaal is ontwikkeld voor de telefoon. Met name doordat er gebruik wordt gemaakt van de standaard componenten op die telefoon.
· De ontwikkelde applicatie zal beschikbaar zijn op alle versies van de telefoon.
· De beveiliging van de applicatie wordt beter gewaarborgd omdat het makkelijker is om data gecodeerd te versturen. Dit is tegenwoordig belangrijk omdat veel mensen op hun privacy gesteld zijn.
· Het is makkelijker voor Game-developers om een spel te ontwikkelen. Er is meer mogelijk met de SDK.
Nadelen van het gebruik van SDK’s
· Het is platform afhankelijk. Het zal niet beschikbaar zijn voor alle platformen zoals Android.
· Het is moeilijker te ontwikkelen omdat er kennis vereist is van een bepaalde programmeer taal. De taal is meestal moeilijker aan te leren dan bijvoorbeeld HTML.
· Om te programmeren voor IOS moet je in het bezit zijn van een Apple computer.
Conclusie
Naar mijn mening is PhoneGap een perfecte oplossing voor het ontwikkelen van applicaties voor verschillende platformen. Het is vooral makkelijk als de applicatie een simpele lay-out moet hebben en geen uitgebreide functionaliteiten, zoals bijvoorbeeld een nieuws applicatie.
Als er interesse is om gebruik te maken van een specifiek kenmerk dat niet beschikbaar is voor alle platformen, dan is PhoneGap niet geschikt voor de ontwikkeling van de applicatie. De beveiliging van PhoneGap applicaties is bovendien nog een grotere zorg. Er kan niets gecodeerd verstuurd worden. Ook als er de wens is om gebruik te maken van de laatste functionaliteiten van de platformen, is PhoneGap geen goede oplossing.
Een ander punt om rekening mee te houden, is de applicatie op meerdere platformen uit te brengen. Er moet dan rekening gehouden worden met wat de markt vraagt. Als er bijvoorbeeld voor Europa wordt gekozen, dan kan er het beste gekozen worden voor IOS, Android of Symbian. Echter in de VS is de beste keuze weer IOS, Android of Windows Phone.
Als de applicatie in het begin op twee verschillende platformen zou worden uitgebracht, dan zou er genoeg geëxperimenteerd kunnen worden met de applicatie. De gebruikers zouden dan hun feedback en/of verbeterpunten kunnen geven. Die punten kunnen dan weer aangepast worden voordat de applicatie(s) op alle platformen wordt uitgebracht.
Als de keuze toch niet valt op PhoneGap, omdat het niet aan je wensen voldoet, dan zou ik toch gaan voor het ontwikkelen met de SDK van het platform. Het ziet er toch allemaal iets beter uit. Er zal alleen meer tijd in het ontwikkelen van applicatie gaan zitten en je zal je meer moeten verdiepen in de documentatie van de SDK.
De beveiliging heb je ook zelf in de hand. Als er gekeken wordt naar de installatie van beide, dan valt op dat de SDK van het betreffende platform ook geïnstalleerd moet worden als er gebruik wordt gemaakt van PhoneGap. Het installeren van PhoneGap zelf kost daarentegen geen extra tijd. Als de applicatie op de verschillende platformen uitgebracht moet worden zal er kennis van verschillende programmeer talen opgedaan moeten worden.
Al met al moet er toch goed nagedacht worden over de keuze. Er moeten verschillende opties overwogen worden. Het eenvoudig ontwikkelen in PhoneGap met HTML, CSS en Javascript of het ontwikkelen met de SDK en het maximale halen uit je applicatie. Het hangt er dus in grote mate van af wat voor applicatie het gaat worden, en wat je uiteindelijke doel hiermee is.
Wordt vervolgd.......
Robin Lutteke