Wanneer u voor het eerst aan de slag gaat met mobiele ontwikkeling, kan het moeilijk zijn om een platform te kiezen. Erger nog, elk platform heeft zijn eigen verzameling talen en hulpmiddelen om uit te kiezen. Dus hoe kun je beslissen?
Deze tutorial helpt u bij het kiezen van een geschikt mobiel ontwikkelplatform, zodat u kunt instappen en beginnen met het coderen van apps.
Een platform, een ecosysteem van mobiele apparaten, toolkits en apps, wordt meestal gedefinieerd door het besturingssysteem (OS). De platformleveranciers zijn grote bedrijven zoals Google, Apple, Microsoft, enz. Elk heeft een OS ontwikkeld dat ze in licentie geven aan fabrikanten van apparaten. Soms kunnen ze zelf ook fabrikant van apparaten zijn. De apparaatfabrikanten ontwerpen en bouwen de apparaten (meestal smartphones en tablets) met het relevante besturingssysteem vooraf geïnstalleerd. Deze apparaten worden vervolgens verkocht aan consumenten (de gebruikers).
Sommige basis-apps, ontwikkeld door de apparaatfabrikant of zelfs de platformverkoper, kunnen vooraf op het apparaat zijn geïnstalleerd. De leverancier en de fabrikant van het apparaat alleen zijn echter niet in staat om tegemoet te komen aan de steeds groter wordende behoeften van de gebruikers van deze apparaten. Daarom vertrouwen ze op "externe" ontwikkelaars, zoals jij!, Om de kloof tussen vraag en aanbod op te vullen.
Om de ontwikkelaars te ondersteunen die apps voor het platform willen verkopen, publiceren ze SDK's, API's en andere hulpmiddelen om app-ontwikkeling eenvoudiger te maken. Ook kan een officiële "app store" worden gelanceerd, waarop de ontwikkelaars hun apps kunnen publiceren en van waaruit de consumenten deze kunnen doorbladeren en downloaden. Zo is er een heel ecosysteem van een app rond het platform gebouwd.
Op dit moment heeft Android OS van Google het grootste wereldwijde marktaandeel, met maar liefst 86,1%. Apple's iOS heeft 13,7% en staat op de tweede positie. Het resterende deel van ongeveer 0,2% wordt gedeeld door alle andere leveranciers samen. Dit omvat Windows Mobile van Microsoft, BlackBerry OS, Tizen OS, Sailfish OS en Ubuntu Touch.
De mondiale samenstelling kan in bepaalde landen aanzienlijk veranderen. In de Verenigde Staten is het marktaandeel van Android bijvoorbeeld 53,4% en het aandeel van iOS 44,5%, een opmerkelijk verschil in vergelijking met het wereldwijde marktaandeel. Als u een specifieke markt in gedachten hebt, is het een goed idee om die doelgroep te onderzoeken om erachter te komen welk platform ze waarschijnlijk zullen gebruiken!
Hoewel al deze platforms ARM CPU-architectuur ondersteunen, breidt Android zijn ondersteuning nog verder uit, met betrekking tot x86- en MIPS-architecturen. Tizen, Sailfish OS en Ubuntu Touch ondersteunen ook x86-architectuur. Tenzij u echter aangepaste ROM-chips programmeert, hebben de CPU-architecturen die door elk platform worden ondersteund geen invloed op uw keuze.
Je zult veel code moeten schrijven als ontwikkelaar van mobiele apps. Er zijn bepaalde hulpmiddelen waarmee u kunt voorkomen dat u in een op tekst gebaseerde code-editor typt. Zowel Android als iOS hebben hulpmiddelen voor slepen en neerzetten voor het bouwen van grafische gebruikersinterfaces. Hiermee kunt u echter niet volledig gebruikmaken van de functies en mogelijkheden van het platform. Als u complexe apps wilt bouwen, moet u de programmeertaal voor uw platform leren.
Dus je moet misschien wat moeite doen om een nieuwe programmeertaal te leren of een nieuwe programmeertaal die je al kent. Alle grote platforms gebruiken populaire programmeertalen met grote ontwikkelgemeenschappen. Zorg er dus voor dat u uw kennis en vaardigheden in die talen gebruikt.
Als u bekend bent met Java, zult u het gemakkelijker vinden om Android-apps te ontwikkelen met Android SDK (Software Development Kit). Voor sommige geavanceerde app-functies moet je C- en C ++ -vaardigheden gebruiken, met de Android NDK (Native Development Kit). Het is nu ook mogelijk om voor Android te programmeren met alternatieve talen zoals Kotlin.
iOS vereist Objective-C of Swift programmeervaardigheden.
Als u een fan bent van Microsoft Visual Studio .NET, zult u blij zijn met het ontwikkelen van Windows Mobile-apps met C #.
Als u wilt ontwikkelen voor BlackBerry of Tizen, leert u gewoon HTML, CSS en JavaScript.
Master QML of Python en je bent klaar om Sailfish-apps te ontwikkelen.
Als je van Ubuntu Touch houdt, zou je QML of HTML en JavaScript moeten leren.
Ten slotte, als u de webtalen zoals JavaScript en CSS al kent, kunt u deze gebruiken voor elk platform, met een mobiel platformonafhankelijke platform.
Nieuwe programmeertalen worden voortdurend voorgesteld en gepromoot. Hoewel het niet altijd duidelijk is of deze nieuwe talen een groot voordeel hebben ten opzichte van de oude, is het een goed idee om op de hoogte te blijven van de nieuwste trends. Sommige programmeertalen kunnen verouderd raken door de introductie van de nieuwe - Swift is bijvoorbeeld een vervanging voor Objective-C - en sommige oude talen kunnen een nieuw bestaan krijgen, met geheel nieuwe toepassingen.
Je hebt twee opties als het gaat om het ontwikkelen van smartphone-apps: native apps en hybride. Een native app die op één platform wordt gepubliceerd, kan niet op een ander platform worden uitgevoerd. U kunt bijvoorbeeld geen native Android-app installeren op een iOS-apparaat. U moet hiervoor een afzonderlijke platformspecifieke versie publiceren, gebouwd met de juiste ontwikkelings- en implementatietools, gericht op iOS. Een hybride app daarentegen is een webapp ontwikkeld met HTML, CSS en JavaScript en ingepakt in een native app-shell (of UI).
Het prettige van native apps is dat ze superieur zijn qua prestaties en dat ze de mogelijkheden van het apparaat volledig benutten. Ze zijn ook veiliger. Het nadeel is dat de ontwikkelaar verschillende codebases moet onderhouden voor elk van de platforms. Omdat hybride apps slechts matige toegang tot native API's hebben, lopen hun prestaties en het niveau van gebruikerservaring (UX) enigszins achter. Het belangrijkste voordeel van de hybride apps is dat de ontwikkelaar voor meerdere platforms met dezelfde codebase kan publiceren.
Als u native apps wilt bouwen, kunt u onze uitgebreide cursussen over het aan de slag coderen van apps voor Android of iOS bekijken.
Ionic 2 is een populair raamwerk voor het ontwikkelen van platformonafhankelijke hybride mobiele apps. Het is gebaseerd op het Angular 2-webraamwerk. Als u meer wilt weten, bekijk dan enkele van onze cursussen of zelfstudies.
Onlangs is een nieuwe reeks mobiele platformonafhankelijke frameworks ontstaan. Deze combineren de beste eigenschappen van native apps en hybride apps - ze zijn snel en licht en hebben toegang tot de volledige kracht van het native apparaat, maar ze zijn ook gecodeerd met JavaScript en andere webtalen, dus veel code kan opnieuw worden gebruikt tussen platforms.
React Native en NativeScript zijn populaire native cross-platform frameworks. Als je hier meer over wilt weten, bekijk dan onze uitgebreide beginnerscursus of enkele van onze vele tutorials.
Als je een snelle leerling bent, dan zou je gemakkelijk het native ontwikkelingspad onder de knie kunnen krijgen. U moet basisconcepten voor programmeren, zoals objectgeoriënteerd programmeren (OOP), begrijpen en u moet vertrouwd zijn met de platformspecifieke technische concepten, zoals Application Lifecycle Management in Android, bijvoorbeeld.
Om aan de slag te gaan, downloadt u gewoon de benodigde tools en SDK's van de platformverkoper en probeert u het eens. De meeste van deze hulpprogramma's zijn open source en er zijn veel codevoorbeelden en app-sjablonen meegeleverd om u snel aan de slag te helpen.
Als u een webontwikkelaar bent en de ontwikkelruimte van de smartphone wilt verkennen, dan is het misschien comfortabeler om te beginnen met hybride of cross-platform native ontwikkeling.
Een andere factor die moet worden overwogen, is het OS-platform en soms de hardware-instellingen van de ontwikkelcomputer.
Als u native iOS-apps wilt ontwikkelen, kunt u dit niet doen op een normale Windows-computer. U hebt een Mac met macOS en Xcode, Apple's IDE voor iOS-ontwikkeling nodig. Op dezelfde manier worden Ubuntu Touch native apps het best ontwikkeld met een Ubuntu-computer. Hoewel Android SDK op alle drie de belangrijkste desktop OS-platforms draait, is het altijd aan te raden om te controleren of uw systeem voldoet aan de aanbevolen specificaties voordat u begint met ontwikkelen.
Zowel de app-winkels van Google als Apple rekenen een nominaal registratietarief. Hoewel beide hetzelfde omzetdelingspercentage bieden (momenteel 70% van de verkoopprijs), kunnen ontwikkelaars in theorie meer inkomsten genereren door te publiceren op Apple's. Dat komt omdat het aantal apps relatief kleiner is en er minder concurrentie is tussen vergelijkbare apps. Houd er ook rekening mee dat niet alle geografische locaties betaalde apps mogen publiceren in de Play Store van Google. U moet dus op voorhand een methode bedenken om uw app te gelde te maken.
Naast het verkopen van de app zelf, is er een andere manier om inkomsten te genereren met uw app door advertenties weer te geven of door te bieden aanvullende functies te ontgrendelen.
Dit is een belangrijke factor omdat het succes van je app afhangt van hoe goed je je publiek toespreekt, of hoe effectief je hun problemen oplost. Hoewel de meeste smartphonegebruikers tot de jongere generaties behoren, zijn er smartphone-apps voor ouderen en mensen met een handicap. Aangezien het marktaandeel van het platform varieert per land en leeftijdsgroep, is het een goed idee om de demografische gegevens van het platform te onderzoeken, als u een specifieke demografische doelgroep wilt targeten..
Niet alle apparaten ondersteunen alle functies van een platform. Aan de ene kant zijn er geavanceerde apparaten, vaak "vlaggenschipproducten" genoemd, die de meeste functies ondersteunen. Aan de andere kant zijn er goedkope, instapmodellen die alleen de basisfuncties ondersteunen. Dan is er alles daartussenin.
Dus je moet heel selectief zijn en weloverwogen beslissingen nemen wanneer je apps ontwikkelt. Het ontwikkelen van een app die functies vereist die alleen worden ondersteund door geavanceerde apparaten, kan de verkoop van uw app ernstig beïnvloeden.
Aan de andere kant kan dit een mogelijkheid zijn, als u gebruikers van een geavanceerd apparaat een app-functie kunt bieden die elders niet beschikbaar is.
In dit bericht heb ik gekeken naar de belangrijkste ontwikkelplatforms voor mobiele apparaten en heb ik geprobeerd je wat advies te geven om je te helpen bij het kiezen tussen deze platforms. Het toepassen van deze inzichten zal u zeker helpen succesvol te worden in uw app-ontwikkelingsactiviteiten.