Mobile development
Mobile development
Hieronder bespreken we de specifieke vereisten voor het vak Mobile development.
Java
Om een Android applicatie te compileren is Java nodig, we installeren de laatste LTS-versie.
Om Java te installeren gebruiken we de package manager winget die op Windows 11 standaard geïnstalleerd is.
Voer onderstaand commando uit in PowerShell.
winget install EclipseAdoptium.Temurin.21.JDKInfo
Als het bovenstaande problemen geeft, dan verwijzen we door naar de Temurin website waar je een msi installer voor de Java JDK kan downloaden.
Herstart PowerShell en voer volgende commando's uit om te controleren of alles correct geïnstalleerd is.
javac -version # Verwachte uitvoer: javac 21.0.4
java -version # Verwachte uitvoer: openjdk version "21.0.4" ...Tenslotte definiëren we een omgevingsvariabele die aan bepaalde applicaties vertelt waar Java geïnstalleerd is.
$JAVA_HOME = (get-command *java*)[0].Path.replace('\bin\java.exe', '')
[Environment]::SetEnvironmentVariable("JAVA_HOME", $JAVA_HOME, "User")Voordat we Java kunnen installeren op macOS, moeten we eerst Homebrew installeren. Dit is een package manager waarmee we Java en verschillende andere tools kunnen installeren.
Homebrew
Homebrew is het eenvoudigst te installeren via de terminal, als je liever een .pkg installer gebruikt, dan kan je deze downloaden vanaf het GitHub repository.
# Installeer Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Homebrew toevoegen aan de PATH variabele
(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> ~/.zshrc
# De aanpassingen inladen.
source ~/.zshrcJava
Om Java te installeren voeren we onderstaand Homebrew commando uit..
brew install openjdk@21
# Java toevoegen aan de PATH variabele.
(echo; echo 'export PATH="/opt/homebrew/opt/openjdk@21:$PATH"') >> ~/.zshrc
# De aanpassingen inladen.
source ~/.zshrc
# Controleer of Java correct geïnstalleerd is.
javac -version # Verwachte uitvoer: javac 21.0.4
java -version # Verwachte uitvoer: openjdk version "21.0.4" ...
# JAVA_HOME omgevingsvariabele instellen en inladen.
(echo; echo JAVA_HOME=$(which java | sed 's/\/bin\/java//')) >> ~/.zshrc
source ~/.zshrcWe gaan ervan uit dat je een Debian of Ubuntu (gebaseerde) distributie gebruikt, als je een andere distributie gebruikt, dan kan je de Open JDK downloaden van het AdoptOpenJDK project of een andere package manager gebruiken.
Voer volgende commando's uit om Java te installeren.
sudo apt update && sudo apt install openjdk-21-jdk
# Controleer of Java correct geïnstalleerd is.
javac -version # Verwachte uitvoer: javac 21.0.4
java -version # Verwachte uitvoer: openjdk version "21.0.4" ...
# JAVA_HOME omgevingsvariabele instellen en inladen.
(echo; echo JAVA_HOME=$(which java | sed 's/\/bin\/java//')) >> ~/.bashrc
source ~/.bashrcAndroid Studio
Android Studio is een IDE om Android applicatie te schrijven, we zullen deze software enkel gebruiken als een package manager voor verschillende command-line tools en een Android emulator.
Deze IDE is gebaseerd op de JetBrains IDEs en is dus beschikbaar via de JetBrains Toolbox. Je kan natuurlijk ook een losstaande installatie gebruiken, deze is te downloaden vanaf de officiële site.
SDK Installeren
Nadat Android Studio geïnstalleerd (en geopend) is, verschijnt onderstaand scherm. Kies hier voor de optie "SDK Manager".

Kies vervolgens om de laatste twee versies van Android te installeren (deze kunnen eventueel verschillen van diegene die je in onderstaand screenshot ziet). Installeer ook alle beschikbare extensies voor beide Android versies.

In ditzelfde menu, in het tabblad 'SDK Tools' moeten minstens volgende zaken geïnstalleerd worden. Als er extra tools beschikbaar aangevinkt zijn, is dit omdat Android Studio deze nodig heeft op jouw systeem (afhankelijk van OS, CPU en andere factoren).

Omgevingsvariabelen aanmaken
Om alle commando's vlot te starten via de CLI moeten we enkele omgevingsvariabelen toevoegen.
Om de omgevingsvariabelen aan te maken kan je onderstaande commando's uitvoeren in PowerShell.
# Plaats de locatie van de Android SDK in de omgevingsvariabelen.
[Environment]::SetEnvironmentVariable("ANDROID_HOME", $env:LOCALAPPDATA + "\Android\Sdk", "User")Herstart de terminal en voer daarna onderstaand commando uit.
# Voeg de locatie van de nodige software toe aan de PATH variabele.
[Environment]::SetEnvironmentVariable("PATH", "%ANDROID_HOME%\cmdline-tools\latest\bin;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\emulator;" + $env:PATH, "User")Herstart de terminal opnieuw en test of alles correct geconfigureerd is door onderstaande commando's uit te voeren. Let op, de output die hieronder gegeven wordt is natuurlijk illustratief en moet niet noodzakelijk volledig overeenkomen.
$env:ANDROID_HOME # Verwachte uitvoer: C:\Users\USER\AppData\Local\Android\Sdk
adb --version # Verwachte uitvoer: Android Debug Bridge version 1.0.41 ...
emulator # Verwachte uitvoer: emulator: ERROR: No AVD specified. Use '@foo' or '-avd foo' to launch a virtual device named 'foo'
sdkmanager --version # Verwachte uitvoer: 16.0Om de omgevingsvariabelen aan te maken kan je onderstaande commando's uitvoeren in de terminal.
(echo; echo "export ANDROID_HOME=/home/$USER/Android/Sdk") >> ~/.zshrc
echo "export NDK_HOME=$ANDROID_HOME/ndk/$(ls -1 $ANDROID_HOME/ndk)" >> ~/.zshrc
echo "export PATH=$ANDROID_HOME:$PATH" >> ~/.zshrc
echo "export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$PATH" >> ~/.zshrc
echo "export PATH=$ANDROID_HOME/platform-tools:$PATH" >> ~/.zshrc
echo "export PATH=$ANDROID_HOME/emulator:$PATH" >> ~/.zshrcOm de omgevingsvariabelen aan te maken kan je onderstaande commando's uitvoeren in de terminal.
(echo; echo "export ANDROID_HOME=/home/$USER/Android/Sdk") >> ~/.bashrc
echo "export NDK_HOME=$ANDROID_HOME/ndk/$(ls -1 $ANDROID_HOME/ndk)" >> ~/.bashrc
echo "export PATH=$ANDROID_HOME:$PATH" >> ~/.zshrc
echo "export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$PATH" >> ~/.bashrc
echo "export PATH=$ANDROID_HOME/platform-tools:$PATH" >> ~/.bashrc
echo "export PATH=$ANDROID_HOME/emulator:$PATH" >> ~/.bashrcAndroid Virtual Device aanmaken
Een mobiele applicatie moet natuurlijk uitgetest worden op een Android en/of iOS toestel.
Alhoewel een fysiek toestel altijd te verkiezen is boven een emulator, is het soms handiger en sneller om met een emulator te werken.
Om een Android Virtual Device (AVD) aan te maken open je de AVD Manager. Dit kan door de optie "Virtual Device Manager" te selecteren in de initiële UI. Als je al een project geopend hebt kan dit via de menubalk (Tools > Device Manager).
Druk vervolgens op de '+' knop om een nieuw AVD te creëren. Het type toestel dat je kiest, speelt niet zo'n rol, in onderstaande video wordt het type 'Medium Phone' gebruikt. Nadat het type gekozen is, kan je kiezen uit verschillende images. Kies hier voor de hoogste Android versie en zorg er voor dat je een x86_64 image selecteert waarin de Google APIs aanwezig zijn. In de verdere instellingen van het toestel moet je enkel de naam wijzigen en keyboard pass-through aanzetten. Let op, de naam van het toestel is belangrijk, om een emulator te kunnen starten zonder steeds Android Studio te openen moeten we de naam kennen, gebruik dus bij voorkeur iets kort, e.g. 'dev'.
Waarschuwing
Vervang de SDK versie die in onderstaande video gebruikt wordt met de laatste versie die je hierboven bij het onderdeel SDK Installeren geïnstalleerd hebt.
Virtual Device starten
Om te testen of het virtual device werkt, gebruikt je onderstaand commando. Let op, de naam die hieronder ingegeven is (dev) moet overeenkomen met de naam van het AVD.
emulator -avd dev -no-snapshot-loadInfo
Bovenstaand commando opent een nieuw proces dat langdurig blijft draaien, dit betekent dat je het terminalvenster niet kan gebruiken tot je de emulator afsluit (ctrl + c of via de GUI).
Als je liever geen extra terminal vensters open hebt staan, dan kan je een ampersand achter het commando zetten. Hierdoor wordt de emulator opgestart als een daemon en kan je de CLI wel blijven gebruiken. Het nadeel is dan wel dat je de debug-uitvoer van het device niet kan bekijken in de terminal.
emulator -avd dev -no-snapshot-load &Android Developer Setting
Onderstaande beschrijving gaat ervan uit dat je een fysiek Android toestel hebt, is dit niet het geval, dan moet je deze configuratie natuurlijk niet uitvoeren.
Om de applicatie uit te voeren op een fysiek toestel moet de ontwikkelingsmodus geactiveerd worden. Hoe je dit doet, varieert heel sterk van toestel tot toestel. Je moet het build nummer zoeken in de instellingen en hier 7 keer op drukken.
Hieronder volgen de officiële richtlijnen van Google, maar deze zijn niet uitgeschreven voor elk toestel. Bepaalde fabrikanten bouwen hun eigen shell bovenop Android en tonen het build nummer op een andere locatie of laten de developer settings op een andere manier activeren.
| Device | Setting |
|---|---|
| Google Pixel | Settings > About phone > Build number |
| Samsung Galaxy S8 en nieuwe | Settings > About phone > Software information > Build number |
| LG G6 en nieuwer | Settings > About > Software information > More > Build number of Settings > System > About phone > Software information > More > Build number |
| OnePlus 5T en nieuwer | Settings > About phone > Build number |

Vervolgens zijn de ontwikkelaars opties zichtbaar, en moet de optie "USB Debugging" aangezet worden. Het is opnieuw mogelijk dat deze opties op een andere locatie geplaatst is door je hardwarefabrikant.
- Android 9 (API level 28) en nieuwer: Settings > System > Advanced > Developer Options > USB debugging
- Android 8.0.0 (API level 26) en Android 8.1.0 (API level 26): Settings > System > Developer Options > USB debugging
- Android 7.1 (API level 25) en ouder: Settings > Developer Options > USB debugging
Verbind je smartphone vervolgens met een USB-kabel en stel de connectie in op "data overdracht". Je smartphone zou nu moeten vragen of de RSA sleutel van je computer toegestaan mag worden. Het is vanzelfsprekend dat je hier voor "OK" kiest.

Cocoapods
Als je macOS gebruikt en je wil iOS applicaties ontwikkelen (bovenop Android), dan heb je Cocoapods nodig.
Via onderstaand commando kan je deze dependency manager voor Swift installeren.
brew install cocoapods
# Test of CocoaPods correct geïnstalleerd is.
pod --version # Verwachte uitvoer: 1.15.2