De beschikking over een mobiele strategie veranderde in 2010 van “goed om te hebben” tot “een must om te hebben” voor alle soorten bedrijven. Eenzelfde verschuiving vond plaats in 2011 voor wat betreft de ondersteuning van meerdere mobiele platforms.
Er zijn natuurlijk bedrijven die zich op slechts een besturingssysteem kunnen richten en andere systemen vergeten, maar de meeste bedrijven en merken moeten en willen zich nodig tot meerdere types apparaten kunnen richten. Een applicatie voor de iPhone is tegenwoordig niet langer voldoende, zelfs kleine bedrijven moeten een plan hebben waar ook de iPad ondersteund wordt, maar ook Android smartphones en tablets, de Kindle van Amazon, de Windows Phone en de Blackberry.
Ontwikkelen voor zoveel platforms is een echte uitdaging, vooral voor ontwikkelaars of bedrijven die over minder middelen beschikken. Om dit probleem te helpen oplossen is er gelukkig een hele deelsector van ontwikkelingsmiddelen en programmeertalen, het platformonafhankelijk mobiel framework.
Platformonafhankelijke frameworks zoals Appcelerator’s Titanium, Rhodes en PhoneGap zijn zo ontworpen dat ze de werkdruk kunnen beperken van ontwikkelaars of ontwikkelteams die applicaties ontwerpen voor zowel iOS als Android, Blackberry, Windows Phone en meer.
De benadering van design en ontwikkeling van mobiele applicaties op een platformonafhankelijke manier heeft, zoals bij elke ontwikkelstrategie, zijn voor- en nadelen.
De voor en nadelen van platformonafhankelijke frameworks
Inhoudsopgave
Het idee achter platformonafhankelijke frameworks is dat gebruikers de ontwikkelingstijd kunnen beperken door code te schrijven in een taal die gecompileerd kan worden naar meerdere platforms.
Dit is mogelijk omdat de meeste frameworks staan gebruikers toe om applicaties in een dynamische programmeertaal te schrijven (de populairste is Javascript, hoewel veel frameworks ook Ruby of Python ondersteunen). Een dynamische taal dus en niet Objective-C/Cocoa, Java of C#/.NET ((Objective-C is een programmeertaal, Cocoa het framework. Hetzelfde geldt voor C# en dot.net). Met een dynamische programmeertaal zullen de frameworks compileren met de native bibliotheken van een specifiek platform en een applicatie produceren voor elke platform die de ontwikkelaar heeft gekozen.
De voordelen van een cross platform zijn dus:
- De code is herbruikbaar
Een ontwikkelaar schrijft een specifieke actie of sequentie niet voor een platform, maar hij schrijft eenmaal de code en hergebruikt de betreffende bits in latere projecten of op andere platforms. - Gemakkelijk voor webontwikkelaars
De meeste frameworks zijn dynamische of scripting talen en webontwikkelaars kunnen daarmee makkelijker omgaan. Bovendien, naast meer native functies, ondersteunen de meeste frameworks ook HTML5 en CSS3. - Verminderde ontwikkelingskosten
Dit is haast het grootste voordeel, zou je zeggen. Bedrijven en merken kunnen hun app op andere platforms krijgen zonder te hoeven investeren in een team of in een ontwikkelaar die gespecialiseerd is in een bepaald ecosysteem. - Simpele implementatie
In een platformonafhankelijk scenario gaan implementatie en samenstelling van applicaties stukken sneller. Dit geldt vooral voor veel nieuwe Cloud gebaseerde tools die een aantal frameworks beginnen toe te passen. - Plug-ins
De grotere frameworks, waaronder Appcelerator en PhoneGap geven makkelijke toegang tot plug-ins en modules die eenvoudig aansluiten op andere diensten of tools. - Ondersteuning van Enterprise diensten en Cloud diensten
De meeste frameworks bieden niet alleen plug-ins en modules voor specifieke functies, maar kunnen ook rechtstreeks integreren met Cloud diensten zoals Salesforce, AWS, Box en anderen.
Nadelen van cross platform mobiele apps
Het gebruik van een onafhankelijke framework ontwikkelingsstrategie is natuurlijk niet altijd de ideale oplossing. Het heeft ook nadelen en dat zijn:
- Het framework ondersteunt niet alle functies van een besturingssysteem of van een apparaat
Wanneer Apple, Google of Microsoft een nieuwe functie toevoegen, moet het framework dat je gebruikt nog worden bijgewerkt voordat de nieuwe functies worden ondersteund. - De ondersteuning van hoogwaardige afbeeldingen en 3D is vaak beperkt
Gelukkig heb je op games gerichte ontwikkelplatforms zoals Unity, om deze lacunes op te vullen. - Soms kan je je eigen tools niet gebruiken
De meeste frameworks willen dat gebruikers de beschikbare ontwikkelingstools en –suites gebruiken. Dit kan betekenen dat een ontwikkelaar zijn eigen IDE (integrated development environment) voorkeuren moet vergeten en iets anders gaan gebruiken. Hierin is PhoneGap (vorig jaar overgenomen door Adobe) anders. PhoneGap gebruikt voor elk platform dat hij ondersteunt de native IDE (XCode voor iOS, Eclipse voor Android en Visual Studio voor Windows Phone). - Beperkingen die de leverancier heeft ingebouwd
De meeste cross platform frameworks bouwen via eigengemaakte deelbestanden van JavaScript. Indien je naar een ander platform wilt overschakelen, zal die code die je geschreven hebt vaak niet herbruikbaar zijn zonder veel werk vooraf. - De code kan minder snel werken
Het proces van cross-compilatie kan soms niet zo snel zijn als met het gebruik van native tools.
Overwegingen omtrent het design
Het ontwerp van de applicatie is een zeer belangrijke factor waarvan platformonafhankelijke ontwikkelaars bewust moeten zijn. Het is nou eenmaal zo dat een applicatie ontwerpen voor de iPhone anders is dan voor Android. De overeenkomsten van UI (user interface – gebruikersinterface) en UX (user experience design – design van de gebruikerservaring) zijn verschillend en ook de aanraakpunten en menu’s werken anders.
Elke goede cross platforum applicatie lijkt thuis te horen bij elk platform waar hij wordt gebruikt terwijl een slecht platform zal applicaties bouwen die overal hetzelfde lijken. Om een voorbeeld te geven, als je bij een Android-applicatie de navigatie onderaan het scherm hebt, zoals het geval is bij de iPhone, dan weet je dat je iets verkeerd hebt gedaan.
Veel ontwikkelaars hebben een eigen benadering tot platformonafhankelijk design en ontwikkeling van mobiele apparaten. Sommige gebruiken hebben liever een framework, anderen kiezen vanaf het begin voor de native oplossing.
Online is er veel extra informatie beschikbaar. En je kan je eigen voorkeuren, favoriete tools en ervaringen uitwisselen met andere gebruikers op de vele internet forums.