2019-02-22 14:28:41 +00:00
|
|
|
|
# Mobile_Application_Development_lab
|
2019-02-22 15:05:51 +00:00
|
|
|
|
##### Lab Notes von Philipp Wolfmajer & Matthias Schreiner
|
2019-02-22 14:28:41 +00:00
|
|
|
|
|
2019-02-22 15:05:17 +00:00
|
|
|
|
## 22.02.2019 - Lab 1
|
2019-02-22 14:31:20 +00:00
|
|
|
|
- Überblick über Android allgemein
|
|
|
|
|
- Entwicklungsumgebung eingerichtet (Android Studio)
|
|
|
|
|
- AndroidManifest.xml angesehen
|
2019-02-22 14:34:55 +00:00
|
|
|
|
- Graddle Module:app (betrifft nur aktuelle Modul)
|
|
|
|
|
- applicationid ist wichtig für den Play Store, bei Änderung bedeutet das -> neue App
|
|
|
|
|
- dependencies
|
|
|
|
|
- Projektweites Graddle File
|
|
|
|
|
- wenn z.B. neues Android Wear App dazu entwickelt wurde
|
2019-02-22 14:45:33 +00:00
|
|
|
|
- unterschiedliche Events die eine App haben kann (onCreate, etc.)
|
2019-02-22 14:57:33 +00:00
|
|
|
|
- Activities sind Ansichten der App
|
2019-02-22 14:56:19 +00:00
|
|
|
|
- Intent -> sind Nachrichten die andere Activities aufrufen
|
|
|
|
|
- Intent mit Result verwendet beim Aufruf immer einen Request Code damit man das Resultat zuordnen kann (z.B. Pfad zu einem Bild)
|
2019-02-22 15:02:00 +00:00
|
|
|
|
- Actions -> Android kümmert sich um das App das eine Aktion ausführt (z.B. ACTION_CALL)
|
2019-03-01 18:10:50 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 01.03.2019 - Lab 2 Online
|
|
|
|
|
- Starten mit AirKoality APP
|
|
|
|
|
- Leere App von Grund erstellen (keine Vorlage gewählt)
|
2019-03-01 18:15:03 +00:00
|
|
|
|
- Importieren der notwendigen Ressourcen von der e-learning Plattform
|
2019-03-01 18:10:50 +00:00
|
|
|
|
- Anlegen und implementieren folgender Klassen
|
|
|
|
|
- MainActivity.java
|
2019-03-01 18:15:03 +00:00
|
|
|
|
- SplashActivity.java – Ladebildschirm mit Verzögerung (delay)
|
2019-03-01 18:10:50 +00:00
|
|
|
|
- Anlegen und implementieren folgender Ressourcen
|
|
|
|
|
- activity_main.xml
|
|
|
|
|
- activity_splash.xml
|
|
|
|
|
- Editieren der Farben, Strings und Styles in den jeweiligen Files unter /res/values/
|
|
|
|
|
- Hinzufügen der Activities in der AndroidManifest.xml Datei
|
2019-03-01 18:15:03 +00:00
|
|
|
|
- strings.xml kennengelernt um Texte einer App zentral verwalten zu können
|
2019-03-08 18:03:00 +00:00
|
|
|
|
|
2019-03-08 19:05:22 +00:00
|
|
|
|
## 08.03.2019 - Lab 3
|
2019-03-08 18:03:00 +00:00
|
|
|
|
|
|
|
|
|
Context -> weiß was in der App gerade "abgeht" (Java Objekt)
|
2019-03-08 19:23:28 +00:00
|
|
|
|
- Activity oder Application
|
|
|
|
|
- Immer Context der aktuellen Activity verwenden
|
2019-03-08 18:03:00 +00:00
|
|
|
|
|
|
|
|
|
Best Practise kennengelernt um große Listen darzustellen
|
|
|
|
|
|
2019-03-08 19:05:22 +00:00
|
|
|
|
Liste bekommt einen Adapter und stellt dann nur Listenelemente dar, die gerade am Bildschrim angezeigt werden.
|
|
|
|
|
|
|
|
|
|
Card View Layout ausprobiert
|
|
|
|
|
|
2019-03-08 19:26:28 +00:00
|
|
|
|
Toast Messages implementiert -> Pop up Nachrichten im unteren Bereich des Bildschirms
|
2019-03-15 17:08:47 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 15.03.2019 - Lab 4
|
|
|
|
|
|
|
|
|
|
RecyclerView -> Items der View wiederverwendbar machen
|
|
|
|
|
- vorsicht bei ausgewählten Items (Adapter muss sich Position merken)
|
2019-03-15 17:50:50 +00:00
|
|
|
|
- onBindViewHolder: Selection über Index merken und Hintergrundfarbe je nach Index anpassen, da die RecyclerView wieder verwednet wird.
|
2019-03-15 17:08:47 +00:00
|
|
|
|
|
|
|
|
|
### Fragments
|
2019-03-15 17:50:50 +00:00
|
|
|
|
- Sind gekapselte Elemente, damit keine unnötigen Elemente geladen werden. (Details siehe Folie)
|
2019-03-15 17:08:47 +00:00
|
|
|
|
- ursprünglich für Tablets entwickelt
|
|
|
|
|
- Darstellung von z.B. Listen und Inhalt gleichzeitig
|
2019-03-15 17:50:50 +00:00
|
|
|
|
- Fragments erstellen (Klassen und Layout) und ManActivity.java auseindader teilen
|
2019-03-15 17:08:47 +00:00
|
|
|
|
|
|
|
|
|
### Storage
|
|
|
|
|
- unterschiedliche Möglichkeiten der Speicherung
|
|
|
|
|
- local storage (im App Verzeichnis)
|
|
|
|
|
- external storage
|
2019-03-15 17:43:55 +00:00
|
|
|
|
- shared preferences (key - value pairs, internes XML file)
|
|
|
|
|
- SQLite -> single file database
|
2019-03-15 17:50:50 +00:00
|
|
|
|
- Permissions beim Speichern beachten
|
2019-04-13 10:13:55 +00:00
|
|
|
|
- mit SharedPreferences das letzte Fragment laden
|
|
|
|
|
|
|
|
|
|
## 13.04.2019 - Lab 5
|
|
|
|
|
|
2019-04-13 10:31:50 +00:00
|
|
|
|
- SQ-Lite implementierung angeschaut aber unser Projekt wird auf Room aufgesetzt
|
2019-04-15 04:38:35 +00:00
|
|
|
|
- Room arbeitet mit Annotationen -> viel weniger Code im vergleich zu SQ-Lite
|
2019-04-13 11:59:29 +00:00
|
|
|
|
- Network
|
2019-05-10 16:50:32 +00:00
|
|
|
|
- HttpsGet Methoden implementiert (waren vorgegeben)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 10.05.2019 - Lab 5
|
|
|
|
|
|
|
|
|
|
- Unterschied Service - Background Task
|
|
|
|
|
- Service: Wenn etwas im Hintergrund laufen muss (z.B. Nuki App)
|
|
|
|
|
- BT: z.B Musik Player, immer wenn der User nicht mit der App Interagieren will
|
|
|
|
|
|
|
|
|
|
Service sollte immmer eine Aktion die er ausführt in einem extra Thread auslagern.
|
|
|
|
|
|
|
|
|
|
Service wird im Manifest deklariert
|
|
|
|
|
Um einen Foregroundservice zu starten muss das innerhalb von 5 Sekunden nach "start Service" (Intent)
|
|
|
|
|
|
|
|
|
|
|
2019-05-18 06:57:06 +00:00
|
|
|
|
Notifications benötigen immer einen Channel und Channel ID (ab Android O verfügbar)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 17.05.2019 - Online
|
|
|
|
|
|
|
|
|
|
## 18.05.2019 - Online
|