Android Apps Maken
Hier wordt uitgelegd hoe je een Android-app maakt. Android is een bekend besturingssysteem (OS), dat op vele telefoons staat. Voor dit besturingssysteem kan je apps maken, die je vervolgens kan installeren en gebruiken. Als app-ontwikkelaar kan je de app uploaden naar Google Play, zodat ook anderen de app kunnen gebruiken.
Inhoud
Voorkennis
Android-apps schrijf je in Java en XML. Om een app te kunnen schrijven is het dus handig als je weet hoe Java en XML in elkaar zitten. Hieronder vindt je enkele links waarin het wordt uitgelegd:
- Learning the Java Language (Java)
- Object-Oriented Programming Concepts (Java)
- XML (XML)
Les 1: Een Android-Project maken
Hierin wordt er uitgelegd hoe je nieuwe Android-app Projecten aanmaakt.
Les 2: AndroidManifest.xml
Afhankelijk van de IDE die je gebruikt, zal je project-omgeving er verschillend uitzien. Over het algemeen worden vaak de volgende bestanden automatisch aangemaakt:
- AndroidManifest.xml
- MainActivity.java
- activity_main.xml (of main.xml)
De AndroidManifest is verplicht. Zonder manifest-bestand, kan je de app niet genereren. Als je het bestand opent, ziet het er ongeveer zo uit: <source lang="xml"> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android" android:versionCode="1" android:versionName="1.0">
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/Theme.App"> <activity android:name="com.example.android.MainActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> </manifest> </source> De <manifest>-tag heeft 4 atrributen:
xmlns:android
geeft informatie aan over de andere attributen die metandroid:
beginnen.package
geeft het ID van je app. Elke app heeft een ander package-ID. Het package-ID van WhatsApp is bijvoorbeeld 'com.whatsapp' en op de Google Play Store vindt je WhatsApp dus hier: https://play.google.com/store/apps/details?id=com.whatsappandroid:versionCode
is de versie van je app in een getal. Elke keer als het getal groter is dan de vorige versie van de app, dan geeft Google Play Store een melding dat er een nieuwe versie beschikbaar is.android:versionName
is de versie van je app in een zin, alsandroid:versionCode
125 is, dan is de naam bijvoorbeeld 'Beta 12.5', maar het kan ook iets zijn wat totaal niet lijkt opandroid:versionCode
.
Binnen de <manifest>
-tag staat de <application>
-tag. Ook deze tag heeft een aantal attributen:
android:icon
is een android-pad naar het icoontje van de app.@drawable/ic_launcher
verwijst naar ongeveer de volgende map:/res/drawable/ic_launcher.png
.android:label
is de naam van je app.android:theme
is een thema voor je app.- en wat andere (nu onbelangrijke) attributen.
Binnen de <application>
-tag, staat nu maar 1 andere tag, de <activity>
-tag. Behalve deze tag, kunnen er ook andere tags instaan. Hier staan de belangrijkste op een rijtje:
<activity>
: Een onderdeel van je app die je echt op je scherm ziet.<service>
: Een achtergrondproces die je niet op het scherm ziet.<receiver>
: Een onderdeel die kan worden opgestart als er iets op het systeem gebeurt.
In de volgende les gaan we verder in op de <activity>
-tag.
Les 3: Activities
Activities worden bij gewone apps het meest gebruikt. Elke activity die je gebruikt, moet je in de AndroidManifest.xml.
Een activity definieer je binnen de <application>
-tag. Dat doe je zo:
<application ... > <activity android:label="Een titel voor je activity, die je in de titelbalk ziet" android:name="Het class-pad naar de activity"/> </application>
Hierna kan je de activity gebruiken.
Als je wilt dat je de activity kan opstarten vanaf je homescreen, dan moet je de volgende activity toevoegen:
<application ... > <activity android:label="Een titel voor je activity, die je in de titelbalk ziet" android:name="Het class-pad naar de activity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application>
Je hebt nu een Intent Filter toegevoegd. Dit filter zorgt ervoor dat de activity wordt gestart, als het filter aan bepaalde voorwaarden voldoet. In dit geval, als je app is opgestart via het homescreen.
Het class-pad is de locatie waar je activity staat. Als je activity staat bij com.example.app.MainActivity
en de package
is com.example.app
, dan kan je een relatief class-pad gebruiken, namelijk .MainActivity
, anders moet je het volledige pad opgeven.
Nadat we de activity hebben gedefinieerd, kunnen we de activity zelf maken. Dit gebeurt in Java. Zoals hierboven maken we de com.example.app.MainActivity
aan, als die al niet bestaat.