Er zijn een paar mogelijkheden, al zal de keuze sterk afhangen van je inzet, motivatie en persoonlijke voorkeur. Wil je zo snel mogelijk een app kunnen maken die op alle platformen draait? Dan kies je best voor een hybride technologie. Indien je je op games wil richten is het volgens mij het beste om via de native programmeertaal en de 2D- en 3D-frameworks van het platform te gaan. Games via een hybride technologie en samenwerking met een framework zoals Phaser of Babylon zijn ook mogelijk, maar qua prestaties liggen de limieten liggen een pak lager. Ik heb enkele opties hieronder beschreven:
- Xamarin: Een technologie die opgekocht werd door Microsoft waarbij je code in C# geschreven wordt. Je schrijft het gros van de code eenmaal, dingen zoals views (layout) kan je ook via Xamarin voorzien, maar het lijkt me beter omdat per platform apart te maken. Ik heb er al mee gewerkt, maar echt overtuigd was ik niet. Als je echt hybride apps wil maken (lees: eenmaal code schrijven voor de verschillende platformen), dan richt je je volgens mij best op iets zoals Cordova/Ionic.
- Cordova/Ionic: Cordova is een technologie van Apache waarbij je een bestaande webapplicatie (bv Angular/React/etc) in een wrapper stopt. De wrapper is eigenlijk een WebView binnen een native applicatie en deze geeft eigenlijk je webapp weer. Het voordeel is dat de code in JavaScript geschreven wordt en je op die manier dus ook meteen een werkende website hebt indien je dat wenst. Als je ervoor zorgt dat je webapp responsive is kan je dus met 1 enkele webapplicatie alle platformen voorzien. Ionic gebruikt Cordova als basis-techonlogie maar breidt deze verder uit. Ionic kan bv native UI-elementen voorzien waardoor de look and feel meer native aanvoelt. Binnen Cordova heb je ook een heleboel plugins om met hardware om te gaan, gaande van de camera, geolokalisatie, accelerometer, etc.
- Native apps: Hiervoor zal je je eerst Java moeten aanleren voor Android of Objective-C/Swift voor iOS (of allebei). Bijkomend zal je de frameworks van Android en iOS moeten leren kennen vooraleer je er echt mee weg bent. Het grote nadeel is dat je de code apart moet schrijven voor ieder platform, wat dubbel werk betekent. Het voordeel is dat een goed geschreven native applicatie vaak beter aanvoelt en presteert dan een hybride applicatie. Zonder basiskennis zou ik hier niet aan beginnen.
Welke technologie je uiteindelijk kiest maakt niet zoveel uit, dat is zeer subjectief. Ik ben persoonlijk geen grote fan van Xamarin, maar dat komt omdat ik niet zo microsoft-minded ben. De andere technologieën die je kan kiezen lijken mij interessanter, wil je bv een app maken die zowel op Android als iOS kan draaien, dan kies je volgens mij best voor een hybride applicatie in JavaScript. Wil je bv games ontwikkelen, dan richt je je best op een native programmeertaal en de bijbehorende frameworks. Zonder programmeerachtergrond zou ik niet aan een native app beginnen. Je hebt geen basiskennis en daardoor zullen veel dingen onduidelijk zijn. Het lijkt me persoonlijk het beste om aan een cursus te beginnen waardoor je je zelf de basisconcepten aanleert, voornamelijk object-georienteerd programmeren (OOP). In welke taal je dat doet maakt niet zoveel uit, via websites zoals Udemy kan je makkelijk een online-cursus aankopen. Vaak zijn er grote kortingen, cursussen van 200 euro die je bv voor 10 of 15 euro kan aankopen. Je kan ook gratis cursussen zoeken natuurlijk, maar Udemy is me altijd goed bevallen.