23april

Mobiele apps zonder programmeren?

Er is de laatste tijd veel aandacht voor het ontwikkelen van mobiele applicaties, of kortweg apps. Niemand zal de populariteit van de iPhone, iPad en Android-telefoons en –tablets zijn ontgaan. Ik heb hier veel trainingen in verzorgd de afgelopen maanden. Steeds vaker krijg ik ook een vraag als ‘Ik wil graag apps ontwikkelen, maar heb eigenlijk geen programmeerachtergrond. Is dit een bezwaar’?

De vraag is eenvoudig genoeg. Het antwoord ligt – zoals vaak – wat gecompliceerder.

Statische applicaties

In principe is voor het maken van apps maar weinig programmeerkennis nodig. Met frameworks als MobDis (http://www.mobdis.com/tour-page/ ) of Codiqa voor jQuery Mobile (http://codiqa.com/) is in enkele stappen een mobiele user interface samen te stellen. Hiervoor kan dan zelfs al content worden ingesteld. De inhoud is dan wel beperkt tot statische tekst en afbeeldingen. Alle informatie van de app wordt rechtstreeks in het framework getypt en kan daarna worden gecompileerd naar een mobiele app. Kortom, op deze wijze heb je snel en (vrijwel) zonder programmeren een app. Tegelijkertijd is dit dan in feite niets meer dan een elektronische folder in app-formaat. Qua functionaliteit is dit vergelijkbaar met de eerste serie statische websites uit de jaren negentig van de vorige eeuw.

mobdis

Op het moment dat de app ook daadwerkelijk enige functionaliteit moet krijgen – er moeten bijvoorbeeld nieuwsberichten uit webservices worden getoond in de app of de app moet informatie kunnen onthouden, opslaan en doorgeven tussen verschillende pagina’s, of terugsturen naar een server van het bedrijf, dan ontkom je niet aan het feit dat je dit zelf zult moeten programmeren.

Kennis van alleen Dreamweaver, Photoshop of illustrator is dan onvoldoende. Immers, een app is – zoals de naam al zegt – een applicatie, oftewel een computerprogramma. En totdat processors zo slim zijn dat ze onze bedoelingen kunnen raden, moet je een computer exact, tot top de puntkomma nauwkeurig, vertellen wat je van hem verwacht. Dat proces staat al tientallen jaren bekend onder de naam programmeren :-)

Dynamische applicaties

Zodra beslist is dat een applicatie interactiviteit en functionaliteit moet bevatten zijn er verschillende keuzes die gemaakt kunnen worden. De twee belangrijkste zijn:

  • Ontwikkelen als web-app en daarna compileren met een tool als PhoneGap, AppMobi of Appcelerator. Hierbij wordt gebruik gemaakt van bekende webtechnieken als HTML, CSS en JavaScript. Dit is de eenvoudigste manier voor iemand met basis-webkennis om snel een mobiele app te maken. Maar let op: het is nog steeds programmeren. Er komt altijd minimaal een zekere hoeveelheid JavaScript bij kijken om een goed werkende app te maken, ongeacht of je een app wilt maken voor iOS, voor Android, of voor Windows Phone 7. Je hebt echter snel resultaat. In veel gevallen biedt deze werkwijze een goede kosten/baten-afweging.
  • Ontwikkelen als native app voor het doelplatform van je keuze. Je programmeert de app dan in de programmeertaal Objective C voor (Apple iOS), in Java (voor Android, Blackberry en andere), of in Xaml en C# voor Windows Phone. Dit is de krachtigste methode. Het stelt je in staat om rechtstreeks te werken met de tools die specifiek zijn gemaakt om het meeste uit de hardware te halen. Het zal echter geen verbazing wekken dat deze manier ook het meest van je kennis als programmeur vergt en een steile leercurve kent. Het ontwikkelen van apps voor meerdere platformen op deze wijze is daarnaast een prijzige methode. Want: de code die je hebt geschreven voor Apple (iPhone, iPad), laat zich niet 1:1 vertalen naar Java-code voor de andere platformen. Je moet de code dan deels opnieuw schrijven.

Naast de twee hiervoor genoemde manieren zijn er langzamerhand tal van mengvormen waarbij je met kennis van platform A kunt ontwikkelen voor platform B of omgekeerd. Een voorbeeld hiervan is het project Xamarin, waarbij je met C#-technieken (afkomstig uit het .NET-platform van Microsoft) kunt ontwikkelen voor Objective C van Apple of voor Android.

xamarin

Conclusie

De vraag ‘Ik wil graag apps ontwikkelen, maar heb eigenlijk geen programmeerachtergrond. Is dit een bezwaar?’ kan derhalve vaak worden beantwoord als:

“Nee, dat is geen bezwaar, zolang je er in dat geval tevreden mee bent dat je een uiterst eenvoudige app overhoud die behalve statische informatievoorziening geen toegevoegde kan bieden.”

In de praktijk blijkt dat bedrijven en organisaties (maar ook individuele ontwikkelaars) hier al snel ontevreden mee zijn en tegen beperkingen aanlopen. En dan zal in vrijwel alle gevallen alsnog aanvullende functionaliteit zelf geprogrammeerd moeten worden. Minimaal vereist in dat geval is JavaScript-kennis en de werking van HTML en CSS. Wie het onderste uit de kan wil halen moet zich gedegen verdiepen in het doelplatform van zijn of haar keuze.

Voor meer informatie over de mogelijkheden die in jouw situatie of uw bedrijf of organisatie het beste zijn (consultancy) of het zelf leren programmeren van cross-platform webapps (training) kun je contact opnemen voor een vrijblijvend inventariserend gesprek.

 

Peter Kassenaar
-- 23 april 2012

Reacties zijn gesloten