het bouwen van een mobiele applicatie in 2020 is niet wat het vijf jaar geleden was:
- de wereldwijde markt voor mobiele applicaties beliep $106 miljard in 2018 en is sindsdien gegroeid met een CAGR van 18,4%.
- Android bestuurt 74,13% van de smartphones, terwijl het marktaandeel van iOS wordt geschat op 24,79%. KaiOS, hun naaste concurrent, wordt derde met 0,35%. Windows, BlackBerry, Symbian, en andere mobiele besturingssystemen die ooit genoten van aanzienlijke populariteit zijn al lang in de vergetelheid geraakt.
- Enterprise mobility, het Internet of Things en e-commerce hebben de rol van mobiele applicaties veranderd. Bedrijven die app-ontwikkelaars inschakelen, hebben een tool nodig om hun content te verspreiden, on-the-fly toegang tot bedrijfsgegevens te garanderen, Slimme apparaten te beheren en hun klanten te helpen hun transacties sneller af te ronden.
vandaag, de ” native vs. cross-platform ” vraag is niet langer over het bouwen van traag presterende, ooit crashen apps tegen de helft van de prijs van een iOS of Android app.
met krachtige platformonafhankelijke applicatie-ontwikkeltools zoals Xamarin, React Native en Flutter, kunt u apps maken met een 90% herbruikbare codebase die gebruik maken van native UI en besturingselementen, toegang hebben tot smartphonefunctionaliteit en voldoen aan de richtlijnen voor Human Interface en Material Design.
de vraag is, wat is de juiste technologie stack voor uw project?
een native mobiele app is een applicatie die voldoet aan de eisen van een bepaald besturingssysteem door gebruik te maken van de SDK en primaire technologie stack, evenals hardware geheugen, camera, sensoren, en andere programma ‘ s geà nstalleerd op een apparaat.
De voordelen van native mobiele apps zijn:
- hoge prestaties
- robuuste functionaliteit
- naadloze gebruikerservaring
een platformonafhankelijke applicatie is een mobiele app die compatibel is met meerdere besturingssystemen en daarom kan worden uitgevoerd op elke smartphone, tablet, PC, smartwatch en verbonden TV.
platformonafhankelijke applicaties hebben meerdere voordelen:
- 70-90% herbruikbare code
- Eenvoudig onderhoud en updates
- breder bereik
- kortere time to market
Er zijn twee soorten platformonafhankelijke mobiele applicaties:
- Native platformonafhankelijke apps. Elk besturingssysteem heeft zijn SDK en technologie stack: Java of Kotlin voor Android en Objective-C of Swift voor iOS apps. Platformonafhankelijke app-ontwikkelaars creëren een uniforme API bovenop een native SDK, maken gebruik van native IDEs en bouwen iOS-en Android-apps die dezelfde codebase delen. Native cross-platform applicaties zijn voornamelijk gebouwd met Xamarin, React Native en Kotlin Multiplatform.
- hybride toepassingen. Hoewel mobiele apps zijn ontworpen voor smartphones en tablets, is het de back-end laag die hun business logica verwerkt. Aangezien zowel iOS als Android SDK ‘ s beschikken over geavanceerde webcomponenten, is het mogelijk om delen van een application graphical user interface (GUI) te maken met HTML5, CSS en JavaScript. Vervolgens wikkelen ontwikkelaars de code in WebView-een browser gebundeld in een mobiele app, die de inhoud maakt als een goede oude website. Sommige hybride apps communiceren zelfs met de hardware van een smartphone, hoewel de functionaliteit beperkt kan zijn. De meest veelbelovende hybride app ontwikkeling frameworks op de markt op dit moment zijn Apache Cordova (voorheen bekend als PhoneGap) en Flutter.
Top Cross-platform Mobiele App Ontwikkeling-Gereedschappen
Volgens de 2019 Stack Overflow Developer Enquête, Xamarin, Reageren Native, Fladderen, en Córdoba zijn de meest populaire cross-platform frameworks gebruikt door professionele ontwikkelaars:
Laten we eens kijken hoe ze het doet tegen de native app de ontwikkeling van technologieën:
- Xamarin. Gebouwd met #C EN. Net, Xamarin stelt ontwikkelaars in staat om cross-platform applicaties te maken voor Android, iOS, tvOS, macOS en Windows. Xamarin-toepassingen met gedeelde interfaces worden ontwikkeld met behulp van Xamarin.Vorm. Als je doel is om een platform-specifieke interface te ontwerpen, Xamarin.iOS en Xamarin.Android zijn de tools. Xamarin biedt krachtige bibliotheken om toegang te krijgen tot native en 3rd-party API’ s, en gebruik te maken van smartphone hardware en functionaliteit: sensoren, camera, sms-berichten, connectiviteit, enz. Applicaties gemaakt met Xamarin presteren op gelijke voet met native apps — zelfs als het gaat om het renderen van dynamische gegevens in real time.
- React Native. Onthuld door Facebook in 2015, React Native heeft geregeerd in de cross-platform app ontwikkeling markt sindsdien. Het framework is gebaseerd op React — een JavaScript-bibliotheek voor het bouwen van zeer responsieve gebruikersinterfaces. Met React Native kunt u mobiele applicaties maken die tot 80% van hun codebase delen en toegang hebben tot bepaalde native functies zoals de accelerometer en smartphonecamera, hoewel u daarvoor mogelijk aparte code voor iOS en Android nodig hebt.
- Apache Cordova. Apache Cordova ‘ s tech stack bevat HTML5, CSS3 en JavaScript. Het mobile app development framework biedt toegang tot de ingebouwde accelerometer, opslag van bestanden, GPS, contactgegevens, media en meldingen van een smartphone. Apache Cordova heeft verschillende voordelen, waaronder een vrij eenvoudige API en de mogelijkheid om een JS-framework te gebruiken. Echter, het platform visualiseert App UI ‘ s via een webbrowser, die vertraging kan veroorzaken. Ook zijn sommige plug-ins van Cordova gedateerd, dus ontwikkelaars moeten vaak zelf aangepaste plug-ins schrijven.
- Flutter. Flutter is Google ’s UI toolkit die ontwikkelaars in staat stelt om native gecompileerde applicaties voor mobiele apparaten, webbrowsers en PC’ s met behulp van dezelfde codebase te maken. Flutter is gebaseerd op Dart — een relatief nieuwe programmeertaal die veel functies deelt met Swift en Kotlin en kan worden omgezet in JavaScript-code. Met Flutter kunt u applicaties ontwerpen die snel renderen en zich aanpassen aan platformspecifieke UX-logica. Het framework is het meest geschikt voor MVP ontwikkeling.
een andere platformonafhankelijke appontwikkelingstechnologie die aan populariteit wint is Kotlin Multiplatform Projects, een experimentele functie die wordt ondersteund door Kotlin 1.2 en 1.3. Het stelt ontwikkelaars in staat om de UI en back-end van een mobiele app te scheiden. Met de gedeelde business logic wordt het schrijven van apps voor meerdere platforms eenvoudiger. Echter, weinig Android-ontwikkelaars zijn bekend met de functie nog. Dus je zou een harde tijd het vinden van een geschikt team en wenden tot ontwikkelaars die gespecialiseerd zijn in React Native, Flutter, of Xamarin cross-platform ontwikkeling op het einde.
Pros & Cons van platformonafhankelijke ontwikkeling van mobiele apps
De voordelen van het bouwen van een platformonafhankelijke applicatie zijn onder meer:
- kortere ontwikkeltijd. Mits u de juiste tech stack kiest en uw project grondig plant, kunt u mogelijk tot 80% van de oorspronkelijke codebase hergebruiken — zowel op het back — end als op UI-niveau-voor meerdere platforms. Dit helpt bedrijven de tijd te verminderen die nodig is om back-end logische problemen op te lossen (wat meestal 10-20% van de totale projecttijd in beslag neemt) en apps sneller te lanceren.
- blootstelling aan een groter aantal gebruikers. De meeste platformonafhankelijke apps draaien op zowel Android als iOS, evenals Windows, macOS, Linux en besturingssystemen die de logica van smartwatches en aangesloten huishoudelijke apparaten ondersteunen.
- werkt synchronisatie bij. In een wereld waar mobiele apps maximaal vier updates per maand krijgen, kunnen onderhoudskosten een grote hoeveelheid app-inkomsten verbruiken — en dat is waar cross-platform apps de duidelijke winnaar weglaten.
en hier is waar platformonafhankelijke toepassingen tekort kunnen schieten:
- Performance. Als het gaat om CPU-en GPU-zware taken, is er een aanzienlijke prestatiekloof tussen native en hybride toepassingen. Apps gebouwd met Xamarin.iOS en Xamarin.Android, aan de andere kant, weergave bijna-native resultaten.
- steile leercurve. Door het hoge abstractieniveau is cross-platform code moeilijk te schrijven. Ontwikkelaars die gespecialiseerd zijn in platformonafhankelijke applicaties moeten een goed begrip hebben van zowel de iOS-als Android-ecosystemen, evenals de platformonafhankelijke tools van hun keuze.
- beperkte ondersteuning van bibliotheken van derden. Niet alle 3rd-party bibliotheken en SDK ‘ s werken synchroon met cross-platform app development frameworks. Dit vraagt ontwikkelaars om alternatieven te overwegen of een manier te vinden om de gewenste functionaliteit te integreren in een mobiele app, wat tijdrovend is.
kiezen tussen Native en platformonafhankelijke applicaties
ongeveer vijf jaar geleden hadden bedrijven die mobiele apps als een cruciaal bedrijfsinstrument beschouwden geen andere keuze dan native te gaan. Nu volwassen cross-platform app development tools zoals Xamarin en React Native eenvoudig samenvoegen niet-native code met OS-specifieke functionaliteit.
maar alle platformonafhankelijke frameworks zijn niet gelijk gemaakt.
Airbnb, waarvan de website voornamelijk is gebouwd met React, besloot om hun eigen mobiele apps te dumpen in het voordeel van een cross-platform oplossing. Het bedrijf zette in op React Native en bracht twee jaar door met het implementeren van geavanceerde native functies zoals elementovergangen, geofencing en parallax scrollen over meerdere platforms. Twee jaar later kondigde Airbnb aan dat ze vanwege technische uitdagingen en het gebrek aan IT-middelen “sunsetting React Native” waren en teruggingen naar iOS en Android.
Het betekent niet dat React op geen enkele manier inferieur is aan Xamarin of native application development tools. Het is gewoon dat te veel factoren, met inbegrip van de mobiele applicatie feature set en verwachte workload, in het spel komen wanneer u de beslissing om uw software opnieuw te formatteren of een nieuw gebouwde app te integreren in een bestaande IT-infrastructuur.