Expertees webdevelopment: Blog

Expertees blogt regelmatig over interessante nieuwtjes, nieuwe projecten of technische oplossingen waar ze tegenaan lopen.

Apps: Native of alternatieven?

05 October 2013 om 18:22

Mobiele applicaties blijven razend populair en de vraag naar uiteenlopende apps blijft groeien.
Een van de eerste vragen die hierbij komt kijken is voor welke platformen de app ontwikkelt moet worden. Vaak wordt er snel voor gekozen om te starten met een iOS versie en later pas met een Android versie.
De gedachte lijkt vaak dat een app in ieder geval op een iPhone/iPad beschikbaar moet zijn en eventueel later pas op apparaten die op Android draaien. Inmiddels worden beide platformen haast evenveel gebruikt dus het kiezen voor een specifiek platform zal automatisch een deel van de potentiële gebruikers uitsluiten.

Het onderstaande verhaal probeert duidelijkheid te geven over de verschillen tussen ontwikkeling voor een specifiek platform of een crossplatform oplossing.

Native ontwikkelen

iOS SDKAndroid SDKZowel Android als iOS hebben een eigen SDK (Software Development Kit) waarmee apps ontwikkeld kunnen worden. Een SDK is speciaal voor een platform gemaakt en geeft de ontwikkelaar mogelijkheden om gebruik te maken van de basis functionaliteiten van het apparaat zoals GPS of bewegingssensoren. Vaak bieden deze SDK’s ook mogelijkheden om interface-elementen te gebruiken die aansluiten bij de "look-and-feel" van het apparaat. Doordat de applicatie specifiek met de technieken van het besturingssysteem wordt gebouwd kun je optimaal gebruik maken van de krachten van het apparaat. Een native ontwikkelde app zal dus vaak het snelst presteren.

Een nadeel van het native ontwikkelen is dat je per platform moet ontwikkelen, de programmeertaal en elementen die je gebruikt verschillen en ook de manier waarop je communiceert met de functionaliteiten van het apparaat zijn anders waardoor je per platform een losse app zal ontwikkelen. Kiezen voor een enkel platform sluit gebruikers uit en zal het bereik van je app dus verminderen.

Een ander nadeel is dat de technieken in een rap tempo veranderen waardoor het als ontwikkelaar een hele taak is om van alle verschillende technieken de laatste ontwikkelingen tot in detail te beheersen. Dit terwijl de focus van de ontwikkeling moet liggen bij de functionaliteiten en gebruiksvriendelijkheid van de applicatie, niet bij de achterliggende techniek.

Als laatste is het als opdrachtgever natuurlijk niet wenselijk om "dubbel" te betalen voor de ontwikkeling van een app die je uiteraard voor zoveel mogelijk gebruikers beschikbaar wil maken.

Crossplatform ontwikkeling

Een alternatief voor het gebruik van de native technieken is om gebruik maken van een crossplatform techniek. Hiermee kun je een app los van een specifiek apparaat of besturingssysteem ontwikkelen. Vaak gebruiken deze oplossingen een soort tussenlaag die communiceert met de platform specifieke mogelijkheden. Wanneer je bijvoorbeeld de locatie van het apparaat nodig hebt kun je dit via een uniforme manier opvragen, de tussenlaag in de software bekijkt dan simpel gezegd om welk platform het gaat en weet dan hoe het voor dat platform achter de locatie kan komen.

Je kunt hiermee dus een enkele app bouwen en die op meerdere platformen gebruiken, behalve iOS en Android zijn deze oplossingen vaak ook beschikbaar voor andere platformen waarvoor je normaal minder snel een losse app zult ontwikkelen omdat de doelgroep hiervan wellicht niet groot genoeg is.

Een nadeel aan het gebruik van een dergelijke oplossing is vaak de snelheid, door het toevoegen van een tussenlaag is er een extra stapje nodig in het communiceren met het apparaat wat een beetje inlevert wat betreft snelheid, daarnaast zijn niet altijd alle mogelijkheden beschikbaar, in de meeste gevallen zijn deze crossplatform technieken echter actief in ontwikkeling en volgen ze de ontwikkelingen van de verschillende mobiele apparaten goed.

Een ander nadeel is dat je niet de beschikking hebt over de grafische elementen die aansluiten bij de het apparaat zelf. Bij het ontwerpen van de app zal hier rekening mee moeten worden gehouden. In sommige gevallen zal de gebruiker dan wel moeten wennen aan sommige interfaces omdat de "look-and-feel" dus minder zal aansluiten bij het apparaat zelf.

PhoneGap

PhoneGapPhoneGap is een van deze crossplatform technieken die Expertees meestal gebruikt. PhoneGap biedt de mogelijkheid om apps te ontwikkelen met HTML5, CSS en Javascript. Een groot voordeel hiervan is dat HTML en javascript erg makkelijk zijn om te gebruiken en voor veel ontwikkelaars niet nieuw zijn. Met dezelfde kennis waarmee al jaren websites worden ontwikkeld kan de ontwikkelaar nu ook apps ontwikkelen. HTML is de basis van alle websites en Javascript heeft in de afgelopen jaren een enorme ontwikkeling gemaakt, er is dus erg veel kennis beschikbaar wat je als opdrachtgever ook minder afhankelijk maakt van een specifieke ontwikkelaar.
Omdat HTML in principe in alle browsers te gebruiken is kan de app ook gemakkelijk op de computer gebruikt worden. Daarnaast kan een mobiele website redelijk eenvoudig tot een app worden omgebouwd of andersom.

Wat is de beste oplossing?

Een beste oplossing is er niet echt, per project is het belangrijk om te kiezen voor de techniek die het best aansluit bij het doel van de app. Wat is de doelgroep, is het een spel met mooie graphics, maakt de app veelvuldig gebruik van de camera of gps mogelijkheden, is de (dynamische) content heel erg belangrijk en wat is het budget?

In de meeste gevallen is het de taak van de ontwikkelaar om te kiezen voor de beste techniek.
Als klant is het wel goed om te weten wat de mogelijkheden zijn en waar je uiteindelijk voor kiest.

Wilt u meer informatie over het laten ontwikkelen van een app dan kunt u altijd vrijblijvend contact opnemen.

iOSAndroidMobiele applicatiesappsPhoneGapcrossplatformnative

Een CMS gebruiken?

23 May 2013 om 11:22

Een Content Management Systeem (CMS) is een veelgebruikte term als het gaat om het ontwikkelen van website’s. Een CMS is een systeem wat het mogelijk maakt om website’s (online) te beheren zonder daarbij technische kennis van website’s nodig te hebben. Tegenwoordig worden er bijna geen website’s gemaakt zonder daarbij gebruik te maken van een CMS.
Toch wordt er regelmatig de vraag gesteld waarom een dergelijk CMS nodig zou zijn, klanten zijn soms niet van plan een website vaak aan te passen en de ontwikkelingskosten van een website lijken door het gebruik van een CMS soms hoog.

Behalve vanwege de mogelijkheden om zelf de inhoud van de website te beheren zijn er meer redenen waarvoor Expertees bijna altijd kiest voor het gebruik van een CMS

Een CMS optimaliseert

Een standaard website bestaat uit een aantal statische HTML pagina’s die alle inhoud van de website weergeven. Toch zal er vaak bij de meest simpele website’s een programmeertaal aan te pas komen. Een voorbeeld hiervan is dat een website vaak een aantal repeterende onderdelen bevat, denk bijvoorbeeld aan een logo aan de bovenkant van de pagina of contactgegevens aan de onderkant van de website. Als ontwikkelaar wil je dit niet in elke pagina moeten plaatsen en dus ook in elke pagina aanpassen mocht het wijzigen. Door dit soort onderdelen te programmeren is dit te voorkomen.
Ook het gebruik van nette url’s (expertees.nl/over in plaats van expertees.nl/over.html) of het genereren van een sitemap wordt vaak geprogrammeerd om het makkelijker te maken.

De meeste CMS’en handelen dit soort dingen standaard al af. Dit scheelt tijd en zorgt er ook voor dat het altijd up-to-date is

Een CMS is een goede fundering

De meeste gehoorde omschrijving voor een nieuw te bouwen website is dat het gaat om een ’simpele’ website. Toch kunnen simpele dingen vaak ingewikkelder lijken dan het is.
Waar een CMS voor de klant in eerste instantie absoluut niet nodig lijkt is het vaak met het oog op de toekomst toch aan te raden.
Het valt te vergelijken met het bouwen van bijvoorbeeld een schuurtje. Wanneer je naar een aannemer zou gaan en een simpel schuurtje laat bouwen dan volstaat waarschijnlijk een simpele fundering en wordt er een schuurtje gebouwd. Wil je echter twee maanden later een verdieping erbij dan is de kans groot dat de fundering niet meer voldoet en het schuurtje moet worden afgebroken om een nieuwe schuur te bouwen. Dit is uiteraard zonde van de net gebouwde schuur.

Deze vergelijking lijkt misschien wat radicaal maar toch komt een vergelijkbare vraag vaak voor bij het ontwikkelen van website’s. Meestal lijkt de website in eerste instantie écht simpel maar komt al snel de vraag of er bijvoorbeeld een contactformulier kan worden toegevoegd. Het ontwikkelen van een contactformulier is niet ingewikkeld maar wanneer later ook nog een simpele zoekfunctie moet worden ontwikkeld is het punt al bereikt waarbij het gebruik van een CMS toch een betere optie is.

Op dat moment wordt het een lastige keuze. Er is al geld geïnvesteerd in de ’simpele’ website met het contactformulier en nu moeten er een paar stappen terug worden gedaan om het CMS toe te voegen met daarbij weer extra kosten. Vaak wordt er dan voor gekozen om toch maar de functionaliteiten los te ontwikkelen. Uiteindelijk leidt dit vaak tot krakkemikkige website’s waarbij functionaliteiten ad hoc worden toegevoegd. Op de langere termijn zal dit de website niet ten goede komen en zullen de ontwikkelkosten uiteindelijk alleen maar oplopen. Goedkoop blijkt dan toch duurkoop.

Wat is een goede keuze?

Er zijn talloze CMS’en beschikbaar maar hoe kun je daarin de beste keuze maken?
Het belangrijkste uitgangspunt is altijd het doel van de website. Moet de website slechts informeren dan volstaat wellicht een simpele website met een standaard layout. Is je website echter een grote bron van klanten of inkomsten dan is het belangrijk om veel aandacht aan de inhoud en functionaliteit te besteden en is een flexibeler systeem juist aan te raden.

Het is altijd aan te raden om te kiezen voor een bekend (open-source) systeem in plaats van een ’eigen’ systeem dat sommige bedrijven voor klanten ontwikkelen.
Systemen die wereldwijd gebruikt worden zullen vaker worden geüpdate en geven je ook meer vrijheid, je zit met je website niet vast aan een bedrijf en kunt altijd hulp inschakelen van andere ontwikkelaars met kennis van het systeem.

Wordpress

WordpressHet meest gebruikte systeem is op dit moment Wordpress. Dit gratis systeem is zeer geschikt voor gebruikers zonder technische kennis maar biedt ook voor ontwikkelaars de ruimte om er uitgebreide website’s mee te realiseren. Wordpress beschikt over een duidelijke gebruikersinterface en biedt mogelijkheden om makkelijk plugins en layouts toe te voegen. Daarmee kunnen de functionaliteiten van de website snel uitgebreid worden en kan de layout naar wens worden aangepast. Omdat het systeem wereldwijd zo veel gebruikt wordt is er haast voor elke functionaliteit wel een plugin beschikbaar en zijn er ook veel ontwikkelaars te vinden die goed met het systeem overweg kunnen.

ExpressionEngine

ExpressionEngineExpressionEngine is het CMS dat door Expertees veelal de voorkeur krijgt. Het is een zeer flexibel systeem wat door ontwikkelaars veel gebruikt wordt vanwege de vrijheid die het biedt. In ExpressionEngine is het, in tegenstelling tot Wordpress, erg gemakkelijk om een  eigen layout te koppelen aan het CMS zonder daarbij beperkt te worden door het CMS. De focus ligt daardoor vooral op de website zelf en niet zozeer op het systeem wat erachter ligt. Het CMS is makkelijk uit te breiden met functionaliteiten om de website precies af te kunnen stemmen op de doelen en wensen van de klant. Vanwege de simpele structuur die het systeem hanteert is het mogelijk om bijna elk type website tot elk formaat te realiseren. Daarnaast is er de mogelijkheid om het systeem te personaliseren zodat beheerders alleen de onderdelen in het systeem zien die zij nodig hebben, dit voorkomt eventuele verwarring of problemen.

Andere systemen die vaak gebruikt worden zijn onder andere: Joomla, Drupal en Magento (webshops)

Voor meer informatie over bijvoorbeeld ExpressionEngine of advies over het ontwikkelen van een website met of zonder CMS kunt u altijd vrijblijvend contact opnemen

CMSWordpressExpressionEngine

De eigen website

13 November 2012 om 02:00

Het moeilijkste om te maken zijn de zaken voor jezelf. Het krijgt meestal de laagste prioriteit en het is niet altijd even makkelijk om voor jezelf te schrijven.

Zo is het ook een lange tijd gegaan met deze website. Ondanks dat deze website al sinds de oprichting van Expertees een WIP (work in progress) was is het nu pas af.
Het doel was een simpele website waarop werk getoond kan worden en regelmatig interessante artikelen geplaatst kunnen worden. Daarnaast moet de website een inzicht geven in de kennis en visie van Expertees.

De website is gebouwd met HTML5 volgens de richtlijnen van het W3C en houdt daarbij rekening met de meest voorkomende browsers. De website is ook getest op een aantal mobiele apparaten.
De technische backend is gebouwd met het ExpressionEngine CMS.

PortfolioExpressionEngineHTML5JqueryW3C