met consumenten die elke maand meer dan 180 miljard uur in smartphone-apps doorbrengen, blijft de aantrekkelijkheid van de ontwikkeling van mobiele apps toenemen, en veel ontwikkelaars leren mobiele apps te coderen vanaf nul.
in dit artikel gaan we eerst door de verschillende soorten apps, voordat we een kijkje nemen op mobiele app codering in de praktijk.
App-Ontwikkeling
In-app-Ontwikkeling is het meest fundamentele onderscheid dat tussen web-apps en mobiele apps. Voor webapps is een actieve internetverbinding vereist, terwijl mobiele apps offline werken. Web apps op smartphones zijn gewoon voor mobiele apparaten geoptimaliseerde webpagina ‘ s, terwijl mobiele apps moeten worden gedownload van een telefoon app store.
mobiele apps zijn superieur in termen van efficiëntie en snelheid, maar vereisen dat gebruikers handmatig of automatisch updates downloaden in plaats van zichzelf bij te werken, zoals web apps doen. De ontwikkeling van mobiele apps heeft de neiging om meer resource-intensieve dan web app creatie, maar mobiele apps zijn sneller en meestal functioneel beter presteren dan hun web tegenhangers. Mobiele apps maken bijvoorbeeld vaak gebruik van telefoonfuncties, zoals camera ‘ s waar webapps meestal geen toegang toe hebben.
het zal u misschien verbazen dat er verschillende soorten mobiele apps zijn, dus we gaan verder door onderscheid te maken tussen de twee belangrijkste types: native apps en cross-platform apps.
Native Apps vs. Platformonafhankelijke apps
Native applicaties zijn die gebouwd met een bepaald besturingssysteem (OS) in het achterhoofd, waarbij gebruik wordt gemaakt van specifieke programmeertalen en geïntegreerde ontwikkelomgevingen (Ides). Bijvoorbeeld, een native applicatie voor iOS moet worden geschreven in de taal die iOS verwacht, met behulp van de API ‘ s die iOS blootstelt. Als ontwikkelaars gebruik maken van Objective-C en Swift voor een iOS-app, of Java voor een Android-app, samen met de juiste API ‘ s, dergelijke toepassingen zijn “native” voor zover de mogelijkheden van het onderliggende systeem worden gebruikt zoals verwacht door het systeem. Native apps gebruiken ook hardware geheugen, camera, sensoren, en andere programma ’s geïnstalleerd op een apparaat via de API’ s blootgesteld door het onderliggende systeem.
daarentegen zijn platformonafhankelijke kaders bedoeld om universele oplossingen te bieden die door verschillende mobiele OSs ‘ s tegelijk worden ondersteund. Ze gebruiken een gemeenschappelijke kern met per-platform aanpassingen om een toepassing te passen op meerdere platforms, dus er is geen noodzaak om unieke elementen te creëren voor elk besturingssysteem.
Wat zijn de voordelen en uitdagingen van elke mobiele app-aanpak?
Native apps bieden betere prestaties, een grotere energie-efficiëntie, minder beperkingen in architectuur en functionaliteit en een interface die volledig voldoet aan de richtlijnen van het gegeven platform. Echter, het onderhouden van hen komt op een hoge prijs: mobiele apps krijgen soms meerdere updates per maand, en het houden van hen up-to-date kan consumeren Ontwikkelaar tijd die anders zou kunnen worden besteed aan nieuwe functionaliteit. Ook is het publiek van een native app beperkt tot gebruikers van een bepaald besturingssysteem, tenzij de makers aanzienlijke inspanning leveren bij het ontwikkelen van dezelfde app voor meerdere systemen.
omgekeerd vergemakkelijken platformonafhankelijke apps het delen van code, omdat ontwikkelaars niet één app voor iOS en een aparte app voor Android hoeven te maken, maar vaak 80% of meer van hun code over platforms kunnen delen. Dankzij minder codering kan de app op meerdere platforms worden onderhouden, zelfs met een klein team.
Het is echter moeilijk om een enkele oplossing aan te passen aan verschillende besturingssystemen. Een platformonafhankelijke oplossing wordt als zodanig aangewezen, juist omdat het framework u in staat stelt om multi-platform functionaliteit te gebruiken. De interface van een platformonafhankelijke applicatie is meestal universeel, wat leidt tot vertragingen en complexiteit bij de implementatie van specifieke elementen van elk besturingssysteem, omdat functies die uniek zijn voor een bepaald platform doorgaans niet worden ondersteund. Terwijl een kader een app eruit zou kunnen zien en voelen als het beoogde platform, zonder extra werk van de ontwikkelaar, ontwerp keuzes zijn meestal beperkt.
laten we nu eens een kijkje nemen op de toolchains die nodig zijn voor beide app types, en verder onderscheid maken tussen nog meer variaties van mobiele apps binnen het cross-platform ecosysteem.
Native Apps
in native app-ontwikkeling is vertrouwdheid met de IDE-en projectstructuur van het gekozen besturingssysteem noodzakelijk. Gelukkig zijn de iOS-en Android-besturingssystemen goed gedocumenteerd en bieden ze hun eigen ontwikkeltools, interface-elementen en software development kits (SDK ‘ s), die ontwikkelaars kunnen gebruiken om native mobiele apps te bouwen.
Apple apparaten draaien op het iOS native besturingssysteem en zijn gebouwd met Objective-C of Swift samen met de Xcode IDE. Ondanks dat het twee afzonderlijke platforms zijn, delen iOS en macOS overeenkomsten, dus als u uw mobiele app op een Apple-desktop wilt uitvoeren, kunt u moderne iOS-functies in uw app opnemen. Dit zal de overgang naar macOS vereenvoudigen (omdat up-to-date functies automatisch toewijzen aan de juiste macOS gedrag).
de Android-ontwikkeltoolchain daarentegen heeft meestal betrekking op Android Studio of de Eclipse IDE, hoewel u ook andere IDEs kunt gebruiken. Android Studio is de officiële IDE voor Android app ontwikkeling, en het belangrijkste programma voor het schrijven van code en het assembleren van apps uit verschillende pakketten en bibliotheken. Zowel Android Studio als de Android SDK zijn gratis te downloaden en worden geleverd met softwarebibliotheken en voorbeeldcode. Terwijl Android-apps zijn gebouwd met Java, je zou kunnen bouwen van een Android-app in andere talen die draaien op de Java virtuele Machine, zoals Kotlin.
hybride platformonafhankelijke Apps
Er zijn twee verschillende soorten platformonafhankelijke apps: hybride apps en native platformonafhankelijke apps. Hybride apps gebruiken alleen HTML5, CSS en JavaScript om delen van de grafische gebruikersinterface (GUI) van een app te maken. Klinkt als een web app? Terwijl zowel hybride mobiele apps als web apps HTML weergeven, gebruiken hybride apps app-embedded browsers zoals WebView om dit te doen.
sommige hybride apps werken zelfs met de hardware van een smartphone, hoewel de functionaliteit beperkt kan zijn. Apache Cordova, Ionic, en Flutter behoren tot de meest veelbelovende hybride app ontwikkeling frameworks die momenteel op de markt.
Native platformonafhankelijke Apps
Native platformonafhankelijke apps zijn daarentegen niet gebouwd met HTML/CSS/JS-frameworks — een ontwikkelaar zou in plaats daarvan een uniforme API maken die bovenop een native SDK draait. Door gebruik te maken van een native IDE in combinatie met deze API, een ontwikkelaar kan bouwen iOS en Android apps die dezelfde codebase delen, terwijl het verstrekken van een near-native ervaring. Native cross-platform applicaties zijn voornamelijk gebouwd met Xamarin, React Native en Kotlin Multiplatform.
Dit kan verwarrend klinken, dus laten we eens kijken hoe zo ‘ n mobiel UI framework werkt. We nemen de koffer van Xamarin.
gebouwd met C# EN. Net, Xamarin stelt ontwikkelaars in staat om cross-platform applicaties met gedeelde interfaces te maken met behulp van Xamarin.Vorm. Xamarin.iOS en Xamarin.Android zijn vooral handig voor het maken van iOS-en Android-interfaces. Naast bibliotheken die native en third-party API-toegang verlenen, biedt Xamarin platformonafhankelijke apps toegang tot smartphonehardware en-functionaliteit die voorheen alleen in native apps werden gevonden. Door bijna-native prestaties te combineren met herbruikbaarheid van code, verkleinen native cross-platform frameworks de prestatiekloof tussen native en hybride apps met het potentieel voor meer kosteneffectieve ontwikkeling.
waar moet u beginnen?
Als u wilt profiteren van alles wat een bepaald mobiel platform te bieden heeft, probeer dan een native mobiele app te bouwen. Uw app zal waarschijnlijk beschikken over hogere prestaties, robuustere functionaliteit en een betere gebruikerservaring in vergelijking met een cross-platform tegenhanger. Ontwikkelen met een bepaalde SDK is een geweldige startplaats als je een meer beheersbare leercurve ten opzichte van cross-platform code geconfronteerd.
het kiezen van een platformonafhankelijke optie zou de beste keuze kunnen zijn voor mensen die op zoek zijn naar eenvoudig onderhoud en een breder bereik, en met kortere ontwikkeltijd. Zolang u de juiste tech stack kiest, kunt u mogelijk het grootste deel van de originele backend en UI-code voor meerdere platforms hergebruiken.
Als u kiest voor de multi-platform route, hoe weet u dan of u kiest voor een hybride (JS/HTML/CSS) of native cross-platform app? Als je op zoek bent naar een eenvoudige start en geen mobiel kent, probeer dan de js/HTML/CSS aanpak. Als u op zoek bent naar een near-native ervaring, maar graag op meerdere platforms wilt zijn (en niet kunt investeren in een app voor elk platform), ga native cross-platform.
meer informatie
in dit artikel hebben we de verschillen tussen mobiele apps en web apps besproken, voordat we verschillende soorten mobiele apps nader bekeken. We hebben native apps, hybride platformonafhankelijke apps en native platformonafhankelijke apps behandeld.
Als u zich een carrière in de ontwikkeling van mobiele apps voorstelt, zal onze online cursus introductie programmeren een solide basis bieden voor het werken met zowel platformonafhankelijke als native apps.
begin met leren