Ik geef training in frontend tools en stacks als HTML, JavaScript, TypeScript, React, Angular en Vue. Ik schrijf boeken en artikelen over tal van (ICT-) onderwerpen. Ik was lead developer en directeur bij Yindo - Jouw digitale bibliotheek. Je kunt mij volgen op Twitter(@PeterKassenaar).

In dit blog vind je persoonlijke artikelen, die niet noodzakelijk tech-gerelateerd zijn.

Views and expressions are my own.

Terug naar de algemene site.

13september

On the road…

Het najaar is altijd een drukke tijd in opleidingenland. Na de zomervakantie moeten (nieuwe) werknemers worden bijgespijkerd, of – minder hoogrdavend – de opleidingsbudgetten voor het lopende jaar moeten worden besteed.

Wat ik dit jaar overigens ook merk, is dat er duidelijk sprake is van een inhaalslag. De afgelopen jaren was er als gevolg van de economische crisis weinig budget beschikbaar voor opleidingen. Maar de ontwikkelingen hebben natuurlijk niet stilgestaan. Ik heb de indruk dat binnen veel bedrijven en organisaties dat besef nu doordringt, en werknemers nieuwe technieken moeten/mogen leren, om niet te veel achterop te raken.

Sinds het einde van de zomervakantie ben ik daarom veel onderweg. Allerlei trainingen brengen me deze weken onder meer in:

  • Gorinchem
  • Haarlem
  • Landgraaf
  • Amsterdam
  • Groningen
  • Nieuwegein
  • Utrecht
  • Mechelen (B)
  • …en Dieren natuurlijk.

Ik verzorg hier trainingen voor bedrijven als Praclox, Alliander, ING, ATOS, ROC West-Brabant en Euricom. Zo is mijn agenda tot de herfstvakantie in oktober al weer ruim gevuld. Never a dull moment.

Peter Kassenaar
-- 13 september 2014

 

14april

Wat is AngularJS? - Een introductie

Het tijdperk van de simpele website ligt inmiddels al weer enkele jaren achter ons. Websites van nu zijn complexe applicaties waarmee we hotelkamers reserveren, online bestellingen doen, e-mail lezen, agenda’s bijhouden en internetbankieren. Met de toenemende complexiteit van webapps is ook de code steeds gecompliceerder geworden.

Complexiteit

Ontwikkeltools zijn niet in gelijke mate meegegroeid met die complexiteit. Het is lastig om in een groot project alle onderdelen van elkaar te scheiden, te testen en te onderhouden. Een bibliotheek als jQuery is daar oorspronkelijk nooit voor ontworpen. Zelf JavaScript schrijven en foutloos invoegen voor alle browsers is een hele uitdaging.

In de praktijk komt het er vaak op neer dat de app wordt uitgebreid met een heel scala aan techniekjes en extra libraries voor sliders, carrousels, e-commerce en zo verder. Na een tijdje is de ooit zo cleane webapp een kerstboom van uitbreidingen en jQuery-plug-ins geworden. Vanuit beheeroogpunt is dit een kleine ramp.

Modulaire apps met AngularJS

angularjs-logoWelkom AngularJS! AngularJS is een JavaScript-framework dat geheel ontwikkeld is om tegemoet te komen aan de eisen van grote en complexe webapplicaties. AngularJS is oorspronkelijk gemaakt voor een intern project bij Google, maar inmiddels is er ook een grote open source-community actief.

In AngularJS ontwikkel je niet één grote applicatie waarin alles met alles verbonden is. In plaats daarvan maak je kleinere, gespecialiseerde modules. Deze zijn los van elkaar te ontwikkelen en te testen. Op de plekken waar ze nodig zijn in de applicatie, worden ze dynamisch ingevoegd via het principe van Dependency Injection.

Een applicatie wordt zo bijvoorbeeld verdeeld in modules voor het tonen van gegevens in een HTML-pagina (via het principe van controllers en data binding), modules voor het ophalen en cachen van gegevens van de server (met services en factories), modules voor routing, modules met constanten, een module voor in- en uitloggen in de toepassing en zo verder.

Je website of –app heeft dan één startpunt (index.html) met branding, hoofdnavigatie en meer. Hierin worden dynamisch de diverse views met functionaliteit van de applicatie geladen.

Om aan te sluiten bij onder ontwikkelaars bekende begrippen wordt AngularJS ook wel een JavaScript MVC-framework genoemd (naar het programmeerprincipe Model-View-Controller). Maar hiermee doe je de mogelijkheden van AngularJS eigenlijk te kort. AngularJS is veel meer dan dat.

De client en de server

Kenmerk van AngularJS-applicaties is wel dat de de applicatie in principe volledig in de browser draait. AngularJS is een client-sided framework. De rol van de server wordt verder teruggedrongen in vergelijking met traditionele webapps van bijvoorbeeld PHP, .NET MVC, Java of Oracle Apex.

AngularJS-toepassingen zijn in principe volledig onafhankelijk van een server. Ze worden via een API voorzien van gegevens. De server hoeft alleen maar de data te serveren waar de app om vraagt. De app zorgt zelf voor het tonen van de gegevens in HTML-templates, biedt voorzieningen voor filteren en sorteren, bewerken, enzovoort. Een AngularJS-applicatie is daarmee eenvoudig te gebruiken in de browser, op mobiele devices en op verschilende platforms. Met aanvullende tools als PhoneGap is een AngularJS-webapp desgewenst om te zetten naar een standalone app.

…maar AngularJS is wel lastig

Laten we er echter geen doekjes om winden. Het zelf realiseren van AngularJS-applicaties is een pad van vallen en opstaan. Er is ondertussen enorm veel documentatie over te vinden op internet (ik schreef eerder bijvoorbeeld een blogpost over bronnen voor AngularJS). Maar ook vaak zie je door de bomen het bos niet meer. Het is een goed idee om een training AngularJS te volgen, waarin je behalve alle losse termen ook de context leert waarin alle modules op de juiste wijze worden ingezet. Vragen als ‘Wanneer kies ik eigenlijk voor een Service en wanneer voor een Factory?’, of ‘Wat zijn best practices bij security van AngularJS-applicaties?’ worden in samenhang en met concrete voorbeelden besproken.

Als je kiest voor AngularJS als development-framework (en waarom zou  je daar eigenlijk voor kiezen? Ook dat wordt besproken), zijn er waarschijnlijk zelfs gedragingen die je moet afleren. Zo moet je bijvoorbeeld de verleiding weerstaan om voor elk probleem een jQuery-plug-in te zoeken. De meeste AngularJS-projecten kun je zelfs helemaal zonder jQuery realiseren.

Training

Volg bijvoorbeeld mijn driedaagse training AngularJS. Hierin neem ik alle ins en outs van het framework met je door, vanaf een eerste Hello World-voorbeeld tot een complete toepassing. Ook het uitwisselen van gegevens met een server wordt besproken, alsmede het werken met verschillende typen authentication. In overleg kunnen we in de training ook andere onderdelen behandelen. Denk bijvoorbeeld aan animatie met AngularJS, internationalization en localization of SEO-technieken voor AngularJS-applicaties.

Na afloop van de training kun je met een gerust hart beginnen aan het realiseren van moderne webapps met AngularJS!

Nog vragen of speciale verzoeken? Neem contact op om alles te bespreken.

-- Peter Kassenaar
14 april 2014.

09oktober

Gastcollege ‘usability voor mobiele apparaten’ bij HvA

Logo Hogeschool van Amsterdam

Woensdag 9 oktober 2013 gaf ik een gastcollege ‘Usability op mobiele apparaten’ op deHogeschool van Amsterdam, afdeling Sport, Management en Ondernemen (SM & O).

Beknopte inhoud

In ongeveer een uur kwamen de volgende onderwerpen aan de orde:

  • Waarom is usability belangrijk – waarom heb ik dit als specialisatie gekozen?
  • Een korte geschiedenis van mobiele communicatie.
  • Hoe worden mobiele apparaten op dit moment ingezet bij aankoop- en informatiebeslissingen? De verschuiving van bureaublad-devices naar mobiele devices is onherroepelijk ingezet. Mobiel internet gaat de rol van traditioneel (vast) internet overnemen. Je moet hier in de website of –app voor je onderneming of (sport)vereniging nu al rekening mee houden.
  • Wat is eigenlijk het verschil tussen een (mobiele) website en een App?

Drie concrete verschillen tussen desktop usability en mobile usability:

  • schermafmeting (en de gevolgen daarvan voor je design)
  • bediening: muis vs. touch (en de gevolgen…)
  • belangrijkste doel van de site identificeren (en de gevolgen…)
  • Deze drie aspecten werden daarna getoetst voor drie verschillende sites:
  • Het bleek dat er grote verschillen zijn tussen de sites onderling. Zo is de desktop-gebruikerservaring van Rio 2016 op veel punten nog wel voor verbetering vatbaar, maar is er wel gezorgd voor een geoptimaliseerde mobiele versie van de website. Bij NOC*NSF is dit beeld omgekeerd. De gebruikerservaring van de ‘gewone’ publiekssite is prima, maar is lastig bij mobiel gebruik. Hockey.nl laat min of meer hetzelfde beeld zien als rio2016.com.
  • Bij hockey.nl zijn bijvoorbeeld goede keuzes gemaakt in het terugdringen van de hoeveelheid menu-items in de navigatiestructuur. Zo biedt de mobiele versie snel toegang tot de belangrijkste functies van de site, zonder dat de gebruikersinterface overdadig vol aandoet.

Verschillende sites kennen verschillende sterke en zwakke punten. Het is niet zo dat een site compleet ‘mislukt’ of ‘onbruikbaar’ is, als een van de onderdelen niet goed is uitgewerkt. Het geeft wel aan dat dit betreffende aspect nader bekeken (en liefst verholpen) moet worden, om site-bezoekers op zowel desktop- als mobiele apparaten zoveel mogelijk tegemoet te komen.

Als een site responsive is, betekent dit dat de site zelf onderzoekt op welk type apparaat en schermbreedte hij getoond wordt. De site past zich vervolgens aan, aan het apparaat. Uiteraard moet dit wel door een programmeur worden ingesteld. Het gaat niet vanzelf.

Responsive design is de huidige trend in de webdesignwereld. Het maken van een responsive site is meestal wat duurder dan van een gewone site. Het onderhoud ervan kan vervolgens echter goedkoper omdat je maar één serie bronbestanden hoeft bij te houden.

Eerste dia presentatie usability mobiele apparaten

Presentatie

Je kunt de presentatie van dit college downloaden. Hij is beschikbaar in twee formaten:

Voor vragen over de presentatie of de rest van het gastcollege kun je contact opnemen via het contactformulier op deze site.

Peter Kassenaar
-- 09 oktober 2013

13september

Observaties op een ROC

ROC de LeijgraafAls je mijn twitterfeed de afgelopen tijd in de gaten hebt gehouden, dan heb je gezien dat ik deze week als invaldocent (vervanging wegens ziekte) aan de slag ben geweest op ROC De Leijgraaf.

Op locaties in Oss, Cuijk en Veghel gaf ik eerstejaars leerlingen van de opleiding Applicatieontwikkelaar les in (web)design. We hebben het deze eerste keer gehad over het belang van een herkenbare website, hoe onderscheid je goede en minder goede navigatiekeuzes in een design en het belang van de zoekfunctie op een site. De leerlingen kregen een opdracht om diverse designs met elkaar te vergelijken en hierover hun mening te formuleren. Ik ben van huis uit natuurlijk techneut en geen designer of vormgever, maar kan desondanks deze leerlingen nog voldoende bijbrengen.

Onderstaand een opsomming van enkele willekeurige observaties; dingen die mij opvielen voor, tijdens en na de lessen. Ik heb hier geen waardeoordeel aan verbonden, het is een puur weergave van de realiteit.

Leerlingen

  • De opleiding ICT-applicatieontwikkelaar is een jongensaangelegenheid. Ik had (verspreid over drie groepen) 71 leerlingen, waarvan 1 meisje. Niet iedereen was aanwezig. De afwezigen waren ook allemaal jongens. Leeftijd: ca. 16 – 19 jaar.
  • De spanningsboog is kort. Je kunt ongeveer vier tot zes minuten iets uitleggen. Daarna verslapt hoe dan ook de aandacht.
  • Ze zijn (nog?) niet gewend aan interactiviteit tijdens lesgeven. Ik probeerde wat feedback en discussie te krijgen op stellingen en vragen die ik aan ze stelde. Respons: nul. “Jij bent toch de leraar? Vertel het ons maar.”

Hardware

  • Iedereen heeft zijn eigen laptop. Die staat continu open. Aan het begin van de les en tijdens theoriestukjes vroeg ik hen de deksel dicht te klappen en op te letten. De meesten keken alsof ze het in Keulen hoorden donderen (uiteraard deden ze het wel; dat is nu eenmaal mijn natuurlijke gave als docent, haha).
  • Best vertegenwoordigde merken: HP, Lenovo en Acer. Opvallend weinig gezien: Dell.
  • Aantal Apple MacBook: nul (0).

Software

  • Windows 8. Een enkele laptop draaide Windows 7.
  • Metro-omgeving: 0%. Bureaubladomgeving: 100%.
  • Verder geïnstalleerd: Office 2010/2013 en software die de studenten zelf hadden geplaatst. Dat was in het algemeen niet veel. Skype, enkele games, sommigen hadden specifieke design- of programmeersoftware. De meeste dingen doen ze online, via hun browser. De browser is hun venster naar de wereld.
  • Meest gebruikte browser: Google Chrome. Naar mijn indruk zeker 80-90%. Een enkele keer zag ik Firefox voorbij komen. Internet Explorer hooguit 1 of 2 keer.

Mijn ideeën hierbij:

Het viel me op dat niemand een Apple notebook gebruikte. Ik vroeg of dit door de school werd afgeraden, of dat specifieke Windows-modellen waren voorgeschreven. “Nee hoor”, was het antwoord. “Maar die dingen zijn gewoon veel te duur. Ik kan geen vijftienhonderd euro betalen voor een laptop. En met een Windows-laptop van vijfhonderd euro kan ik ook alles doen.”

Toevallig gaf ik ook les op de dag na de introductie van de iPhone 5S en de iPhone 5C. Met name die laatste variant werd met hoongelach ontvangen. ‘Een goedkope iPhone?  Die gaat nog 550 euro kosten! Dat doet toch geen mens.” Waarvan akte.

Adobe

Wat mij ook opviel, was de vrijwel volledige afwezigheid van Adobe-software. Op een enkele laptop was Photoshop aanwezig, maar dat was ofwel een oude versie (CS3), ofwel een illegale kopie. Ook dat heeft alles met kosten te maken. De leerlingen kunnen het niet (meer) betalen. Het dit jaar door Adobe geïntroduceerde abonnementssysteem van Creative Cloud is veel te duur voor deze leerlingen. Natuurlijk krijg je bij een abonnement de volledige Adobe suite met alle tools die je je kunt wensen, maar 60 euro per maand (geen keuzes, geen uitzonderingen voor studenten) kunnen ze gewoon niet opbrengen.

De versie Creative Cloud Student & Teacher edition (19,99 euro/maand) is TOTAAL onbekend.

Mijns inziens graaft Adobe hiermee zijn eigen graf. Er wordt nu een generatie studenten opgeleid die volstrekt onbekend zijn met software van Adobe. En als die straks over een jaar of drie, vier op de markt komen en het bedrijfsleven ingaan, gaan die heus niet ineens wel Photoshop kopen. Want daar kunnen ze toch niet mee werken. Dat hebben ze niet geleerd. Dus zullen ze hun werk uitvoeren met alternatieven. Hetzij goedkope varianten, hetzij via open source varianten.

UPDATE: 3 oktober 2013 – per vandaag is Adobe Creative Cloud ook in een Slim-licentie verkrijgbaar voor EUR 11,- per maand. Zie http://slim.nl/shop/Software/Grafisch/Adobe.aspx voor meer informatie. Een goede zet wat mij betreft.

Conclusie

Het was vermoeiend, maar leuk om te doen. Elke les moet ik afzonderlijk voorbereiden, want ik heb uiteraard geen kant-en-klaar MBO-lesmateriaal met vragen en oefeningen op de plank liggen. Laat staan Design-lesmateriaal.

En ondanks dat ik als docent continue, vier uur lang (de lesblokken duren 2 x 2 uur) de directe concurrentie moet aangaan met YouTube, Soundcloud, online shooters en headphones als ik ook maar vijf seconden mijn mond dichthoud, of me even omdraai naar het digibord, zal ik volgende week weer glimlachend in de auto stappen. Uiteraard hoop ik dat hun reguliere docent weer snel op de been is, maar tot die tijd is het een leuke ervaring en aanvulling op de rest van mijn trainingen.

Peter Kassenaar
-- 13 september 2013.

19april

Pop-upnotifications met toastr.js

toastr-iconTraditioneel kent JavaScript alleen de alert()-opdracht om mededelingen te doen aan de bezoeker van een site. Maar voor moderne webapplicaties is dat eigenlijk geen optie meer. Er zijn gelukkig tal van pop-up- en notification-bibliotheken ontwikkeld.

Inmijn eigen projecten maak ik vaak gebruik van toastr.js, een kleine jQuery plug-in die precies doet wat ik nodig heb. Ik heb een videodemo gemaakt (10 minuten), waarin de volgende stappen aan de orde komen:

  1. wat is eigenlijk het probleem?
  2. toastr.js downloaden en installeren
  3. een demo-site maken met voorbeelden
  4. meer opties voor toastr.js bekijken

Je kunt de video ook rechtstreeks bekijken bij YouTube:

http://www.youtube.com/watch?v=Ny_K3lLvDOA

Hyperlinks

Veel succes er mee!

-- Peter Kassenaar
19-04-2013

17februari

Trainingen jQuery, PhoneGap en HTML5 – voorjaar 2013

TrainingHet was een tijd lang erg in de mode om alles online en digitaal te willen doen. Zo ook trainingen en cursussen voor werknemers. E-learning, e-lokaal, online teaching en meer van die namen. En hoewel online leren zeker voordelen heeft en wat mij betreft een vaste plek heeft verdiend, komen er toch steeds meer bedrijven en organisaties terug van alleen maar online cursussen inkopen. Er worden anno 2013 weer meer ‘ouderwetse’, klassikale trainingen verzorgd. Ik merk dat aan de aantallen cursisten die in mijn klasjes verschijnen en het aantal aanvragen dat ik krijg om training te verzorgen.

Voordelen

Het samen leren in een klaslokaal onder ervaring van een ervaren docent die live en proactief met de cursisten op de stof kan ingaan wordt weer meer gewaardeerd. Deze leervorm heeft onder meer de volgende voordelen.

  • Volledig concentreren op de stof. Niet worden afgeleid door email, telefoontjes, binnenlopende collega’s, andere apps op de computer of iPad, of de situatie thuis (bij thuis e-learning).
  • Ervaren docent rechtstreeks beschikbaar voor vragen.
  • Flexibiliteit; indien een onderdeel bekend is, kan een (goede) docent doorgaan met een volgende onderdeel, zodat de leeropbrengst hoger is.
  • Een goede docent kan differentiëren in de opdrachten en oefeningen en deze realtime aanpassen aan het niveau van de cursist. E-learningsystemen zijn hierin amper flexibel.
  • Interactiviteit; contact met medecursisten: horen welke vragen bij anderen leven, uitwisselen hoe andere organisaties met vraagstukken omgaan.
  • Netwerken; uitwisselen van gegevens en ervaringen met medecursisten.
  • Niet te onderschatten: lekker lunchen.

Trainingen

De komende maanden geef ik voor diverse opleiders onder meer de volgende trainingen. Klik op de links voor meer informatie of inschrijven. Neem contact op als je me rechtstreeks een vraag wilt stellen.

 

Datum

Training

Opmerkingen

6, 13, 20 maart 2013

Mobiele applicaties met Dreamweaver, jquery Mobile en Phonegap.

 

27, 28, 29 maart 2013

HTML 5 Development

Dit is een technische training over de HTML5 API’s, geen designerstraining.)

10, 11, 12 april 2013

PhoneGap

Crossplatform apps maken voor iOS en Android op basis van HTML, CSS en JavaScript

24, 25, 26 april 2013

jQuery basis

Leer websites verrijken met deze populaire JavaScript-bibliotheek.

1, 2 mei 2013

jQuery Mobile

Geoptimaliseerde mobiele websites maken.

15, 16, 17 mei 2013

jQuery advanced

De inhoud van de Advanced-cursus sluit rechtstreeks aan op de basiscursus.

22, 23, 24 mei 2013

HTML 5 Development

 

5, 6, 7 juni 2013

jQuery basis

 

12, 13 juni 2013

jQuery Mobile

 

19, 20, 21 juni 2013

jQuery Advanced

 

Bovenstaande data en onderwerpen zijn open inschrijvingen met een vooraf vastgesteld programma. Daarnaast verzorg ik nog diverse besloten in-company trainingen. Hierbij is meer maatwerk mogelijk. Ook hiervoor kun je altijd even contact opnemen.

Hopelijk tot ziens tijdens een van de cursussen!

Peter Kassenaar
-- 16 februari 2013

01oktober

Gastcollege ‘usability op mobiele apparaten’ bij Hva

 

SNAGHTML575f6c63Maandag 1 oktober 2012 gaf ik een gastcollege ‘Usability op mobiele apparaten’ op de Hogeschool van Amsterdam, afdeling Sport, Managemen en Ondernemen (SM & O).

Beknopte inhoud

In ongeveer een uur kwamen de volgende onderwerpen aan de orde:

  • Waarom is usability belangrijk – waarom heb ik dit als specialisatie gekozen?
  • Een korte geschiedenis van mobiele communicatie.
  • Hoe worden mobiele apparaten op dit moment ingezet bij aankoop- en informatiebeslissingen? De verschuiving van bureaublad-devices naar mobiele devices is onherroepelijk ingezet. De verwachting is dat rond 2014 het mobiele internet een belangrijkere rol zal spelen dan vast internet. Je moet hier in de website of –app voor je onderneming of (sport)vereniging nu al rekening mee houden.
  • Wat is eigenlijk het verschil tussen een (mobiele) website en een App?

Drie concrete verschillen tussen desktop usability en mobile usability:

  • schermafmeting (en de gevolgen daarvan voor je design)
  • bediening: muis vs. touch (en de gevolgen…)
  • belangrijkste doel van de site identificeren (en de gevolgen…)
  • Deze drie aspecten werden daarna getoetst voor drie verschillende sites:
  • Het bleek dat er grote verschillen zijn tussen de sites onderling. Zo is de desktop-gebruikerservaring van Rio 2016 op veel punten nog wel voor verbetering vatbaar, maar is er wel gezorgd voor een geoptimaliseerde mobiele versie van de website. Bij NOC*NSF is dit beeld omgekeerd. De gebruikerservaring van de ‘gewone’ publiekssite is prima, maar is lastig bij mobiel gebruik. Hockey.nl laat min of meer hetzelfde beeld zien als rio2016.com.
  • Bij hockey.nl zijn bijvoorbeeld goede keuzes gemaakt in het terugdringen van de hoeveelheid menu-items in de navigatiestructuur. Zo biedt de mobiele versie snel toegang tot de belangrijkste functies van de site, zonder dat de gebruikersinterface overdadig vol aandoet.

Verschillende sites kennen verschillende sterke en zwakke punten. Het is niet zo dat een site compleet ‘mislukt’ of ‘onbruikbaar’ is, als een van de onderdelen niet goed is uitgewerkt. Het geeft wel aan dat dit betreffende aspect nader bekeken (en liefst verholpen) moet worden, om site-bezoekers op zowel desktop- als mobiele apparaten zoveel mogelijk tegemoet te komen.

image

Presentatie

Je kunt de presentatie van dit college downloaden. Hij is beschikbaar in twee formaten:

Voor vragen over de presentatie of de rest van het gastcollege kun je contact opnemen via het contactformulier op deze site.

Peter Kassenaar
-- 01 oktober 2012

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