ID.nl logo
Zelf mobiele apps bouwen
© PXimport
Huis

Zelf mobiele apps bouwen

Wil je zelf mobiele apps bouwen? De komende maanden zullen we laten zien wat er allemaal komt kijken bij het bouwen en publiceren van een app. We gaan een Android-app maken met de ontwikkeltools van dit platform.

Voordat de smartphone er was, had je alleen simpele mobieltjes om mee te bellen, hooguit met een handjevol extra’s. Zo kon je bijvoorbeeld op de Nokia 6110 uit 1997 het iconische spelletje Snake spelen. Dat wordt over het algemeen gezien als de eerste mobiele app. Verder had je enkele simpele toepassingen als een rekenmachine, agenda en valutaconverter.

Bij hedendaagse smartphones is bellen bijzaak; de apps waar ze vol mee staan zijn interessanter en bieden eindeloze mogelijkheden. Met dank aan de kracht van de smartphone, die is volgestopt met elektronica, zoals een modem voor mobiel internet, wifi, bluetooth, gps, microfoon, luidspreker, camera en allerlei sensoren die zelfs de kleinste bewegingen registreren.

Wat is een app?

Een smartphone is eigenlijk een kleine computer, met een touchscreen als voornaamste bedieningsmethode. Het toestel heeft een mobiel besturingssysteem, specifiek ontwikkeld om de hardware te ondersteunen. Android is bijvoorbeeld nauw verwant aan Linux en gebruikt zelfs een Linux-kernel. Een app kun je eenvoudigweg zien als een softwareprogramma voor dat besturingssysteem. De term app is, dankzij het succes van de smartphone, tegenwoordig algemeen voor softwareprogramma’s. In deze cursus gaan we een app voor Android bouwen met de ontwikkeltools voor dit platform. Maar eerst verkennen we – in dit deel – ook andere bouwmogelijkheden.

©PXimport

Een app of een webapp?

We zijn de hype weliswaar een beetje voorbij, maar het blijft voor velen een droom om een eigen app te maken. De potentie is enorm: vrijwel iedereen loopt met een smartphone rond. Mondiaal gaat het weliswaar om ‘slechts’ 45 procent van de wereldbevolking, maar in vrijwel alle meer ontwikkelde landen ligt dat percentage boven de 85 procent. Nederland blijkt zelfs koploper: meer dan 93 procent is hier in het bezit van een smartphone. Op de gemiddelde smartphone zijn 60 tot 90 apps geïnstalleerd. Verdient jouw app een plekje op al die toestellen? En op welke manieren kun je die app dan bouwen?

©PXimport

Slepen en neerzetten met app-builders

Een speciale manier om een app te maken, is met zogeheten drag-and-drop app-builders. De meeste werken via een browser. Je kunt alle schermen van je app maken door onderdelen naar het venster te slepen en content toe te voegen, zonder dat je kennis van programmeren hoeft te hebben. Daarom noemen we ze ook wel no-code- of low-code-platforms. Bekende voorbeelden zijn Appy Pie, AppSheet en GoodBarber. Zulke tools zijn handig als je snel resultaat wilt, maar je bent wel gebonden aan standaardcomponenten of templates, en kunt het niet volledig naar je hand zetten. Bovendien zit je vaak aan een abonnement vast, waarvan de prijs flink kan oplopen als je niet genoeg hebt aan de basisfunctionaliteit.

©PXimport

Native app

Een app die specifiek is ontwikkeld voor een bepaald mobiel besturingssysteem noemen we een native app. Dat is ook wat we in deze cursus gaan maken. Ze worden meestal gemaakt met de ontwikkelomgeving en programmeertaal die bij het platform hoort. Bij Android is de ontwikkelomgeving veelal Android Studio en de programmeertaal Kotlin of Java. Bij iOS heet de voornaamste ontwikkelomgeving Xcode en de programmeertaal doorgaans Swift of Objective-C.

Je moet de ontwikkelomgeving én programmeertaal leren kennen, net als de ins en outs van het platform. Dat is best een uitdaging. Maar een native app kan wel álle mogelijkheden benutten en werkt vaak sneller, vloeiender en intuïtiever dan op andere manieren gebouwde apps. De integratie met andere apps is eveneens beter. Je merkt aan alles dat zo’n app specifiek voor het platform is gemaakt. Toch hoef je niet altijd zo’n native app te ontwikkelen. Soms heb je genoeg aan bijvoorbeeld een webapp of hybride app.

Webapp

Met webtechnologieën als html, css en JavaScript kun je websites maken die er op elk apparaat goed uitzien. Ze worden responsief genoemd omdat ze zich aan de scherm- of venstergrootte van het apparaat aanpassen. Je kunt nog een stapje verder gaan en een mooie app-achtige gebruikersinterface maken. Bibliotheken of frameworks voor JavaScript kunnen je daarbij helpen. Het resultaat noemen we een webapp.

Een goed voorbeeld is Facebook: de gebruikersinterface van de website voelt in veel opzichten aan als een app. Het bouwen van een webapp is interessant als je ervaring hebt met webdesign. Wel blijft het resultaat altijd ‘gewoon’ een website die de gebruiker moet openen in de browser en niet een installeerbare app. Al kan er wel een mooi icoontje voor worden gemaakt voor op het beginscherm.

©PXimport

Website vermomt als app

Als je een responsieve website hebt, zou je eventueel een native app kunnen maken die deze website in een kaal browservenster laat zien. Bij Android gebruik je daarvoor de component WebView. Het gebeurt in de praktijk, maar het is niet aanbevolen. De toegevoegde waarde voor een gebruiker is namelijk erg beperkt. Er is geen verschil als de website in een echte browser wordt geopend.

Hybride app

Een hybride app is in de basis een webapp, maar dan in het jasje van een app, geschikt voor zowel Android als iOS. Je kunt de app distribueren via de betreffende appstores. Een hybride app is eenvoudig voor meerdere platforms uit te brengen, ook wel cross-platform genoemd. Er zijn speciale frameworks voor het maken van hybride apps. De populairste zijn Ionic en React Native. Verder heb je bijvoorbeeld PhoneGab en Cordova. Vooral React Native is in opkomst. Het is een mooie optie als je veel ervaring hebt met JavaScript, waar het sterk op leunt. De apps die je hiermee bouwt zijn bijna niet te onderscheiden van native apps, maar kennen ook hun beperkingen. Zo kun je vaak niet alle hardware van de smartphone gebruiken.

In de cursusreeks Programmeren van Tech Academy leer je op een interactieve manier je eigen apps bouwen

©PXimport

Android of iOS

In de markt voor smartphones heerst al sinds jaar en dag een strijd tussen smartphones met Android en de iPhone van Apple – zonder duidelijke winnaar. Beide platforms bieden een eigen ontwikkelomgeving en gebruiken een andere programmeertaal. Wil je een native app maken, dan zul je dus moeten kiezen voor welk platform je die (in eerste instantie) gaat maken. In deze les zetten we de belangrijkste verschillen uiteen om je te helpen bij de keuze.

Marktaandeel Android versus iOS

Volgens StatCounter heeft Android in Nederland een marktaandeel van 56,94 procent, iOS moet het doen met 42,58 procent. Deze percentages schommelen wat door de jaren heen. Puur cijfermatig is de potentiële afzetmarkt met Android in Nederland het grootst. Als je je met jouw app op andere landen richt, zien de cijfers er anders uit. Maar ook dan heeft Android meestal de overhand, met een wereldwijd marktaandeel van 72,92 procent tegenover 26,53 procent voor iOS.

©PXimport

Besturingssystemen

Android staat bekend om zijn aanpassingsmogelijkheden en keuzevrijheid, met dank aan bijna 400 fabrikanten die producten voor het platform maken. Kenmerkend voor iOS en de iPhone zijn de fijne gebruikservaring en het strakke ontwerp. Apple was zeker in het begin vaak de trendsetter wat betreft nieuwe functies, die later vaak in net wat andere vorm in Android verschenen. Tegenwoordig gebeurt dat meestal andersom. Maar alles bij elkaar opgeteld zijn de besturingssystemen nu behoorlijk vergelijkbaar. Beide bieden ze bijvoorbeeld een sterke beveiliging, volop voorzieningen om je privacy te bewaren, handige clouddiensten en rijke mogelijkheden voor notificaties en widgets. Bovendien worden zowel Android als iOS actief onderhouden met regelmatige updates en vernieuwingen.

Verscheidenheid smartphones

Een belangrijk verschil vanuit ontwikkelaarsoogpunt is dat je bij Android rekening moet houden met een enorme verscheidenheid aan fabrikanten en toestellen, met bijvoorbeeld uiteenlopende schermafmetingen en -verhoudingen of technische mogelijkheden. Daarnaast zijn er heel veel versies van Android in omloop. Fabrikanten zijn nooit heel trouw geweest met het uitbrengen van updates. Ook Apple heeft inmiddels een hele rits iPhones geproduceerd in verschillende soorten en maten waar je rekening mee moet houden, maar het aantal is veel beperkter, net als de onderlinge verschillen tussen de apparaten. Bovendien draait op het gros van – niet al te oude – apparaten gewoon de laatste iOS-versie. Dat maakt het als ontwikkelaar makkelijker om nieuwe functies te benutten.

©PXimport

Ontwikkelomgeving en hardware

Google en Apple hebben elk een eigen gratis ontwikkelomgeving voor het maken van apps. Voor Android is dat Android Studio, beschikbaar voor Windows, macOS, Linux en Chrome OS. Apple stelt Xcode beschikbaar om apps voor iOS te maken. Deze software kun je alleen op macOS installeren. Je kunt die beperking eventueel omzeilen door een virtuele machine met macOS te gebruiken binnen je eigen besturingssysteem, zoals Windows. Dat kan bijvoorbeeld met de gratis Virtual Box-software van Oracle. Het druist wel tegen de licentievoorwaarden van Apple in.

Een ander alternatief – het ‘nabouwen’ van een Mac (ook wel Hackintosh genoemd) – is ook een optie, maar is evenmin een officiële methode en door hardware-beveiligingen steeds lastiger. Wil je voor dit platform gaan ontwikkelen, dan ontkom je er bijna niet aan een Mac, MacBook of eventueel een losse Mac mini aan te schaffen.

Breder ontwikkelen

Je zult er veel tijd en moeite in moeten steken om een app voor een bepaald platform te maken. En wil je de app dan ook nog voor het andere platform uitbrengen, dan krijg je opnieuw met een vergelijkbare leercurve te maken. Het zogeheten cross-platform ontwikkelen is een manier om dat te voorkomen (zie kader ‘Cross-platform ontwikkelen?’), maar een nadeel is dat deze ontwikkelomgevingen meestal minder gebruiksvriendelijk zijn. Ook is het soms lastiger om de app te optimaliseren en om specifieke hardware- of software-eigenschappen van een platform te benutten.

Je inspanningen worden dus zeker beloond als je je in Android óf iOS en in de toegepaste ontwikkelomgeving en programmeertaal verdiept. Je hoeft je daarbij zeker niet tot apps voor smartphones te beperken. Zonder al te veel moeite kun je dezelfde app geschikt maken voor tablets, zolang je hier rekening mee houdt bij het bouwen van de gebruikersinterface. En met smartphones en tablets houdt het nog lang niet op …

©PXimport

Cross-platform ontwikkelen?

Wil je een native app maken die voor elk platform geschikt is? Dan kun je een cross-platform ontwikkelomgeving overwegen. Een bekend voorbeeld is Xamarin, waarin je met de programmeertaal C# werkt. Heb je ervaring met het maken van websites? Dan kun je zoals eerder aangehaald ook een hybride app overwegen met bijvoorbeeld React Native. Ook dan kun je het resultaat distribueren via appstores. Voor bovenstaande opties geldt echter dat je niet altijd alle mogelijkheden van het smartphoneplatform kunt benutten.

Andere hardware

Zowel Android als iOS wordt breed ingezet. Zo wordt Android bijvoorbeeld in de vorm van Android TV als besturingssysteem in diverse smart-tv’s en losse mediaspelers gebruikt. Ook bestaan er smartwatches – de zogenoemde wearables – met Wear OS, wat in feite een aangepaste editie van Android is. Ook op deze platforms kunnen apps geheel zelfstandig draaien. En al deze apps kun je met Android Studio maken.

Voor Apple geldt bovenstaande ook. Zo kun je met dezelfde Xcode-ontwikkelomgeving apps maken voor Apple TV (dat tvOS gebruikt), voor Apple Watch (met watchOS) en ook voor macOS, het desktopbesturingssysteem. Natuurlijk komt alle hardware wel weer met zijn eigen uitdagingen, zodra je daar een app voor gaat maken. Maar je kunt eenvoudiger instappen. Niet alleen de ontwikkelomgeving en programmeertaal zijn dezelfde, ook de stappen voor het bouwen van de app hebben veel gemeenschappelijk. In no-time heb je er dus een nieuwe doelgroep bij.

Hoe maak je een app?

In deze cursus gaan we zoals gezegd een native app maken voor Android. Hoewel oefenen vooropstaat, kun je ook al wat nuttige apps maken. Dit hele proces wordt nog leuker als je al een idee voor een app hebt. In deze les geven we je alvast wat tips, die overigens ook bij het ontwikkelen voor iOS goed van toepassing zijn.

Idee voor een app

De gedachte om echt iets unieks te maken, moet je misschien loslaten. Er zijn immers al zo’n 3 miljoen apps voor Android uitgebracht. Veel apps zijn variaties op of combinaties van oude, bestaande ideeën. Maar daar is niets mis mee! Enkele tips om inspiratie op te doen:

- Neem een bestaande app als uitgangspunt en kijk hoe je die beter kunt maken. Tussen de reviews van apps kun je ook lezen wat er volgens de gebruikers aan schort.

- Bepaalde apps zijn in het buitenland een succes, maar niet aangepast aan de Nederlandse situatie. Wellicht kun je een variant maken voor onze markt.

- Sommige apps zijn succesvol onder iOS-gebruikers, maar hebben geen goed alternatief voor Android. Misschien kun jij daar voor zorgen.

- Een goede manier om ideeën op te doen, is via een brainstormsessie waarin je bijvoorbeeld praktische problemen in het dagelijkse leven als uitgangspunt neemt, waar een app bij kan helpen.

- Je kunt ook kijken naar opensource-apps voor Android, waarvoor de broncode bijvoorbeeld op GitHub staat. Zo heb je relatief snel een kant-en-klare app die je daarna beter of mooier kunt maken.

©PXimport

Idee uitwerken

Heb je een idee voor een app, dan is het tijd dat verder uit te werken. Denk na over de mogelijkheden die de app moet bieden en kijk wat er technisch haalbaar is. Maak dan een eerste versie. Hiervoor hoef je niet alles uit de kast te trekken. Begin met een eenvoudige maar bruikbare app, in het Engels ook wel ‘minimum viable product’ genoemd. Je kunt de app daarna verder uitbreiden door de terugkoppeling van anderen samen te voegen met je eigen ideeën. Vraag vroeg in het ontwikkelproces ook kennissen en familieleden om feedback. Wees niet bang voor negatief commentaar, maar probeer hier je voordeel uit te halen door de app nog beter te maken.

Het bouwen

Als je de app gaat bouwen, ontwerp dan eerst de schermen van de app, ook wel gebruikersinterface genoemd. En denk na over de navigatie tussen de schermen. Daarna kun je de code gaan schrijven en interactie met elementen van de gebruikersinterface afhandelen. Dat is de lastigste stap, zeker als je nog niet zo veel programmeerervaring hebt. Er is gelukkig gedegen documentatie en je kunt talloze voorbeelden gebruiken. In deze cursus helpen we je op weg met het bouwen van je app en geven we je tips met hulpbronnen voor als je vastzit!

©PXimport

▼ Volgende artikel
Waar voor je geld: 5 alles-in-één laserprinters voor een mooie prijs
© Tim Allen
Huis

Waar voor je geld: 5 alles-in-één laserprinters voor een mooie prijs

Bij ID.nl zijn we gek op producten waar je niet de hoofdprijs voor betaalt. Een paar keer per week speuren we daarom binnen een bepaald thema naar zulke deals. Een all-in-one-printer is een handig apparaat voor het scannen, kopiëren en printen van documenten en foto's. De allerbeste afdrukkwaliteit krijg je met een laserprinter. Wij vonden vijf betaalbare modellen voor je.

Een laserprinter maakt gebruik van toner in plaats van inkt om afdrukken te produceren. Toner is een fijn poeder dat met hoge temperaturen op het papier wordt gesmolten. Dit proces zorgt ervoor dat je met grote toners kunt printen, wat betekent dat je langere tijd kunt blijven afdrukken zonder de toner te hoeven vervangen. Laserprinters zijn vaak snel en efficiënt, waardoor ze uitstekend zijn voor gebruik op kantoor. Maar ook als je thuis veel print, bijvoorbeeld als zzp'er, kan een laserprinter uitkomst bieden.

HP Color Laser 179fnw

De HP Color Laser MFP 179fnw is een van de kleinste kleurenlaserprinters in zijn klasse en is daardoor ideaal voor thuisgebruik en plekken waar niet veel plek voor een printer is. Met functies zoals printen, scannen, kopiëren en zelfs nog faxen biedt deze 4-in-1 printer een hoop veelzijdigheid. De afdruksnelheid bedraagt tot 18 pagina's per minuut in zwart-wit en 4 ppm in kleur, met een resolutie van 600 x 600 dpi.

Dankzij de automatische documentinvoer (ADF) voor 40 pagina's en wifi-verbinding is deze printer gebruiksvriendelijk en multi-inzetbaar. Hoewel de afdruksnelheid lager ligt dan bij sommige concurrenten, is zijn compacte formaat juist een pluspunt.

Brother DCP 1610W

De Brother DCP-1610W is een compacte zwart-wit laserprinter die printen, kopiëren en scannen combineert. Met een afdruksnelheid van 20 pagina's per minuut en een resolutie van 2400 x 600 dpi levert hij haarscherpe resultaten. Dankzij wifi-connectiviteit kunnen meerdere gebruikers eenvoudig draadloos printen.

De papierlade biedt plaats aan 150 vellen en het apparaat is voorzien van anti-jam-technologie om papierstoringen tot een minimum te beperken. In vergelijking met de HP Color Laser MFP 179fnw biedt deze printer geen kleurafdrukken, maar hij is wel een stuk sneller met zijn afdrukken.

HP Laserjet Pro 2Z622

De HP LaserJet Pro 2Z622 is geschikt voor onder meer kantooromgevingen. Met afdruksnelheden tot 42 pagina's per minuut en functies zoals dubbelzijdig printen, scannen, kopiëren en faxen is dit een lekker veelzijdige 4-in-1-laserprinter. Het apparaat ondersteunt zowel bekabelde als draadloze netwerken en biedt geavanceerde beveiligingsfuncties.

Canon i-SENSYS MF272wd

De Canon i-SENSYS MF272dw is een monochrome laserprinter en drukt af met en snelheid van 29 pagina's per minuut. Met een resolutie van 2400 x 600 dpi levert hij snelle en scherpe resultaten. Dankzij automatische dubbelzijdige afdrukken, wifi- en ethernetverbinding is hij veelzijdig inzetbaar.

In vergelijking met de Brother DCP-1610W levert deze Canon i-SENSYS MF272dw snellere prestaties en meer connectiviteitsopties, hoewel hij geen kleurendruk ondersteunt; dan moet je toch echt bij de HP Color Laser MFP 179fnw zijn.

Xerox B225 A4

De Xerox B225 is een zwart-wit all-in-one-laserprinter die printen, kopiëren en scannen combineert. Met een afdruksnelheid van maar liefst 34 pagina's per minuut en een eerste afdruktijd van slechts 6,4 seconden is hij goed in te zetten als je veel en vaak print. De printer beschikt over automatische dubbelzijdige afdrukken, een papierlade voor 250 vellen en kan via wifi of een vaste netwerkverbinding met je thuisnetwerk worden verbonden.

▼ Volgende artikel
Garmin kondigt Instinct 3 - Tactical Edition aan
Gezond leven

Garmin kondigt Instinct 3 - Tactical Edition aan

Garmin heeft de Instinct 3 - Tactical Edition aangekondigd, een nieuwe serie tactische smartwatches die verkrijgbaar zijn met een AMOLED-scherm of een display op zonne-energie.

De smartwatches zijn volgens Garmin ontworpen voor gebruik in uitdagende omgevingen en voorzien van een met metaal versterkte rand voor extra duurzaamheid, een rucking-activiteit voor training en ingebouwde LED-verlichting op zowel de 45mm als 50mm modellen. De batterijduur van het AMOLED-model kan oplopen tot 24 dagen in smartwatchmodus, terwijl de modellen op zonne-energie onder ideale omstandigheden onbeperkt kunnen functioneren.

Robuust ontwerp

De Instinct 3 - Tactical Edition is voorzien van een stevige constructie met een metalen versterkte rand, een behuizing van met vezels versterkt polymeer en een krasbestendig scherm. De smartwatches zijn gebouwd volgens de MIL-STD 810 norm voor thermische en schokbestendigheid en zijn waterdicht tot 100 meter. De ingebouwde zaklamp biedt variabele lichtsterktes, een groene modus om het natuurlijke nachtzicht te behouden en een stroboscoopmodus voor locatiebepaling in moeilijk terrein. Voor nachtelijk gebruik is er een NVG-modus (Night Vision Goggle) die het scherm dimt tot een niveau dat functioneel blijft voor de gebruiker maar vrijwel onzichtbaar is voor anderen.

Uitgebreide functionaliteit

De Instinct 3 - Tactical Edition beschikt over diverse speciale functies, waaronder rucking-activiteit waarmee gebruikers het gewicht van hun bepakking kunnen invoeren voor beter inzicht in hun fysieke inspanning. Deze functie kan ook worden gebruikt bij activiteiten zoals trailrunning, wandelen en hiken. Alle modellen bevatten de Applied Ballistics solver en zijn compatibel met de Applied Ballistics Quantum app.

De smartwatches zijn verkrijgbaar in twee formaten: 45mm of 50mm met display op zonne-energie, en een 50mm-variant met AMOLED-scherm. De zonne-efficiëntie is verbeterd met een grotere, efficiëntere zonnelens. Vergeleken met het vorige model heeft het nieuwe 50mm model op zonne-energie een vijf keer langere batterijduur in GPS-modus bij opladen via zonlicht.

De smartwatch biedt multi-band GPS met SatIQ technologie voor nauwkeurige positiebepaling met geoptimaliseerde batterijduur. Voor gezondheidsmonitoring houdt de Instinct 3 stappen, hartslag, slaap, zuurstofsaturatie via de pols, hartslagvariabiliteit en meer bij.

Gebruikers ontvangen e-mails, sms'jes en meldingen direct op het horloge wanneer dit is gekoppeld met een compatibele Apple of Android smartphone.

Navigatie en veiligheid

Gebruikers kunnen navigeren met een 3-assig kompas, barometrische hoogtemeter en multi-band GPS. De Instinct 3 kan worden gekoppeld met de Garmin Explore App voor gedetailleerde kaarten, waypoints en routes.

Voor gebruik op gevoelige locaties biedt de Stealth Mode de mogelijkheid om draadloze communicatie uit te schakelen terwijl het horloge nog steeds activiteitsgegevens verzamelt zonder locatiegegevens op te slaan. De Kill Switch kan alle gebruikersgeheugen wissen als de veiligheid in het geding komt. Andere functies zijn weergave van twee posities tegelijkertijd op één scherm, Jumpmaster en geprojecteerde waypoints.

Trainingsfuncties

De Instinct 3 - Tactical Edition bevat sportapps voor rucken, wandelen, hardlopen, klimmen, jagen, skiën en meer. De TracBack-functie helpt bij het uitstippelen van een route terug naar het beginpunt. Naast buitensportapps bevat de smartwatch ook apps voor HIIT, cardio, hardlopen op binnen- en buitenbanen, basketbal en andere activiteiten.

Gebruikers kunnen trainingsplannen volgen met Garmin Coach voor hardlopen en fietsen, of workouts maken uit meer dan 1.600 oefeningen in de Garmin Connect app. De smartwatch volgt ook intensiteitsminuten, VO2 max en hersteltijd.

Veiligheidsfuncties zoals incidentdetectie en Assistance kunnen een bericht met de GPS-locatie van de gebruiker naar contactpersonen sturen in noodsituaties, wanneer het horloge gekoppeld is met een smartphone.

Beschikbaarheid en prijzen

Het Instinct 3 - Tactical Edition AMOLED-model is vanaf 30 april te bestellen op Garmin.com voor een adviesprijs van 599,99 euro. De modellen op zonne-energie beginnen bij een adviesprijs van 499,99 euro.

Bekijk andere Garmin-producten op Kieskeurig.nl: