# Mobile Software Development

Het maken van software voor op telefoons is razend populair en een zeer nuttige skill als developer. Je hebt verschillende technieken om een app te bouwen en deze keuze is ontzettend belangrijk, het kan namelijk veel gevolgen hebben op de kost, de ontwikkelingstijd en de functionaliteiten.

Er zijn drie technieken en dus ook 3 soorten apps op vlak van development.

# Soorten apps

# Native apps

Een native app is een applicatie gebouwd voor 1 besturingssysteem of specifiek platform. Native development gebeurt in een specifieke taal speciaal voor het doelplatform.

Android iOS
Taal Java, Kotlin Swift, Objective-C

Native apps zouden vlotter moeten werken en dankzij meer mogelijkheden qua animaties is de UX ook vaak beter. Nochtans is het niet altijd de beste keuze om native te developen.

# Voordelen

  • Meer functionaliteiten mogelijk, je hebt toegang tot iedere API dus er zijn geen limieten wat je al dan niet kan doen in de app
  • Beter in de app store: native apps worden sneller aanvaard en krijgen betere ranking doordat het sneller werkt en kleinere grootte hebben
  • Betere performance omdat er geen tussenlaag is tussen de software en het besturingssysteem.
  • UX meestal beter door meer animatie en platform uniforme navigatie (al kunnen we dit ook bereiken met Cross-platform applicaties)

# Nadelen

  • Duur om te maken aangezien je twee verschillende teams nodig hebt, denk ook aan de communicatie tussen beide, opleidingen etc.
  • Tijdrovend aangezien je geen shared codebase hebt.

# Cross-platform apps

Cross-platform apps zijn applicaties die, zoals de naam het doet vermoeden, werken op verschillende platformen of besturingssystemen. We gebruiken hiervoor tools zoals React Native, Xamarin of Flutter.

Cross-platform development spaart tijd uit aangezien we maar 1 maal de code moeten schrijven maar het brengt mogelijks ook redelijk wat problemen met zich mee.

# Voordelen

  • Minder duur om te maken aangezien er maar 1 team aan moet werken
  • Minder tijdrovend omdat we het volledige proces maar 1 maal moeten doorlopen
  • Een code base maakt het makkelijker om functionaliteiten aan te passen of nieuwe toe te voegen…

# Nadelen

  • Er is een zekere ‘tussenlaag’ tussen de app/software en het besturingssysteem. Dit zorgt er voor dat de app trager zal werken.
  • Niet alle functionaliteit is even evident, zo kan het moeilijk zijn om alle smartphone sensoren aan te spreken. Soms moet je hier ook platform-specifieke code voor schrijven en dat kan een struikelblok zijn.
  • UX kan minder zijn aangezien het niet de native componenten gebruikt

# Hybride apps

Een Hybride Applicatie wordt gemaakt met JavaScript frameworks zoals Adobe Cordova of Ionic. Ontwikkelen met deze frameworks is eenvoudig aangezien de structuur van de app louter bestaat uit HTML en JS. Hybride Apps zullen de code omsluiten in een webcontainer die toegang heeft tot het toestel (bijvoorbeeld de GPS of de gyroscoop). Dit heeft echter een groot nadeel, zo een applicatie is als het ware een webpagina en zal dus geen native animaties ondersteunen van het toestel. Daarom zullen Hybride Applicaties nooit aanvoelen als echte mobiele applicaties en vaak traag voelen.

Hybride apps zijn minder populair dan vroeger, toen React Native en Flutter nog niet bestonden was dit een goede optie maar nu is deze techniek verouderd.

# Voordelen

  • Heel makkelijk te maken, even simpel als een website
  • Meest goedkope oplossing en tijdsbesparend

# Nadelen

  • Performance is vaak slecht
  • Ook UX en functionaliteiten lijden hier onder

# Keuze maken

Wanneer men een applicatie zal ontwikkelen moet men goed nadenken wat de beste optie is, denk hier vooral aan de drie pijlers:

  • Complexiteit
  • Tijd
  • Kost

Indien je applicatie voornamelijk informatie zal tonen van een API is Cross-platform waarschijnlijk the way to go, indien je moet werken met low-level API’s zoals Bluetooth is het waarschijnlijk beter om native te gaan. Al wordt er steeds meer en meer mogelijk met tools zoals React Native en kan men technisch deze API’s aanspreken.

# PWA?

Een PWA of een Progressive Web App is zeker het vermelden waard. Dit valt minder onder ‘software development’ en meer onder ‘web development’ maar wordt meer en meer een valabele optie voor het maken van applicaties.

PWA’s zijn applicaties waarbij mobiel gebruik centraal staat en die web-functionaliteit gebruikt om een app-achtige gebruikerservaring te bieden. Het komt erop neer dat een PWA-applicatie zich nagenoeg hetzelfde gedraagt als een app, ongeacht het type apparaat die de bezoeker gebruikt met daarbij onder water vele voordelen. Dit limiteert zich niet enkel tot mobiel maar je zal deze ook kunnen installeren op je computer.

# Voordelen

  • Razendsnel
  • Pushnotificaties
  • Offline dankzij Service Workers
  • Hoef je niet te updaten

# Nadelen

  • Momenteel nog minder goede SEO door een gebrek aan SSR
  • Geen toegang tot low-level API’s zoals bluetooth
© 2023 Arteveldehogeschool Laatst bijgewerkt: 9/9/2021 17:06:04