Android for Beginners SS2019 · 2019-07-29 · Android for Beginners SS 2019 1 Von 0 auf Android in...
Transcript of Android for Beginners SS2019 · 2019-07-29 · Android for Beginners SS 2019 1 Von 0 auf Android in...
Android for BeginnersSS 2019
�1
Von 0 auf Android in 3 Stunden!
© Prof. Dr. Georg Rock, Fachbereich Informatik Hochschule Trier
Bevor wir starten• Einloggen am Rechner
• Starten der Entwicklungsumgebung Android Studio → 4 min beim ersten Start 😳
• Start → Informatik → Android Studio 3.5
• Anlegen des ersten Projektes und des ersten Moduls in AS
• Danach ruhig warten bis AS FERTIG IST!
!2
Inhalt• Was ist Android?
• Android im Studium
• Android Studio
• Java-Grundlagen
• Android-Grundlagen
• Praxis !
!3
Was ist Android?• Mobiles Betriebssystem
• Linux-Kernel
• Zunehmende Nutzung in der Automobil-Industrie
• über 400 Auto-Modelle
• Audio, Chrysler, Citroën, Fiat, Ford, Hyundai, Peugeot, Volkswagen, …
• https://www.android.com/auto/
!4
Android im Studium• Veranstaltung „Entwicklung mobiler Anwendungen“
• Wahlpflichtfach (⌀ 90 Studierende)
• Empfohlen für 4. Semester (möglich, wenn
• Seminare, Projekte, Abschlussarbeiten, andere Module
• heute: Erster Einstieg mit hohem Eigenanteil
!5
Typische Android-Anwendungen?
• Kommunikation: eMail, Skype, Telegram, WhatsApp, …
• Soziale Netzwerke: Facebook, Instagram, Twitter, …
• Browser
• Bücher
• Filme
• Fotografie
• Kalender
• Musik
• Navigation
• Nachrichten
• Spiele
• Telefonieren ?!
!6 Bildquelle: https://de.123rf.com
Oreo (8.0, 8.1)19,4 %
Nougat (7.0, 7.1)29,6 %
Marshmallow (6.0)21,8 %
Lollipop (5.0, 5.1)17,5 %
KitKat (4.4)7,9 %
Jelly Bean (4.1.x , 4.2.x, 4.3)3,1 %
Ice Cream Sandwich (4.0.3 - 4.0.4)0,3 %
Gingerbread (2.3.3 - 2.3.7)0,3 %
Verbreitung
Android Studio (AS)
• Offizielle Entwicklungsumgebung — Integrated Development Environment (IDE)
• Version 3.1 (Stable) bzw. 3.3 (Canary)
• Vorinstalliert auf Pool-Rechnern
• Programmiersprache: Java (und/oder Kotlin)
!8
Activities
!9
Activity Lifecycle
!10Quelle https://developer.android.com/reference/android/app/Activity
Activity Lifecycle
Programm-Logik
!11
MainActivity.java
Automatischer Aufruf von onCreate
Neues Projekt erstellen
!12
!13
Achtung! Projekt wird nach Logout gelöscht
!14
!15
!16
Projektstruktur
!17
!18
ProjektstrukturProgramm-Logik (Java)
Benutzeroberfläche (XML)
Textwerte (Mehrsprachigkeit), Farben, Stile, …
App starten
Läuft die Anwendung?
!19
JavaGrundlagen
�20
Java
• Objektorientierte Programmiersprache
• Hohe Popularität
• Hohe Relevanz im Studium
• Programmlogik in Android
!21
Java-Code
!22
public void beispiel(){ int a = 4; int b = 3; int ergebnis = a + b;}
Java-Code
!23
public void beispiel(){ int a = 4; int b = 3; int ergebnis = a + b;}
beispiel Methodenname
Java-Code
public void beispiel(){ int a = 4; int b = 3; int ergebnis = a + b;}
• beispiel Methodenname
• void Kein Rückgabewert
!24
void Kein Rückgabewert
Java-Code
public void beispiel(){ int a = 4; int b = 3; int ergebnis = a + b;}
• beispiel Funktionsname
• void Kein Rückgabewert
• () Keine Parameter
!25
() Keine Parameter
Java-Code
public void beispiel(){ int a = 4; int b = 3; int ergebnis = a + b;}
• beispiel Funktionsname
• void Kein Rückgabewert
• () Keine Parameter
• int Ganze Zahl (Integer)
!26
int Ganze Zahl
Java-Codepublic void beispiel(){ int a = 4; int b = 3; int ergebnis = a + b;}
• beispiel Funktionsname
• void Kein Rückgabewert
• () Keine Parameter
• int Ganze Zahl (Integer)
!27
public int berechne(int a, int b){ return a + b; }
• berechne Methodenname
Java-Codepublic void beispiel(){ int a = 4; int b = 3; int ergebnis = a + b;}
• beispiel Funktionsname
• void Kein Rückgabewert
• () Keine Parameter
• int Ganze Zahl (Integer)
!28
public int berechne(int a, int b){ return a + b; }
• berechne Funktionsname
• int Rückgabe, Ganze Zahl
Java-Codepublic void beispiel(){ int a = 4; int b = 3; int ergebnis = a + b;}
• beispiel Funktionsname
• void Kein Rückgabewert
• () Keine Parameter
• int Ganze Zahl (Integer)
!29
public int berechne(int a, int b){ return a + b; }
• berechne Funktionsname
• int Rückgabe, Ganze Zahl
• () Zwei Integer als Parameter
Java-Code• Bedingungen
• Sichtbarkeit
!30
public void beispiel(){ int a = 4; int b = 3; int ergebnis = a + b; if ( ergebnis == 7) { // . . . { else { // . . . } }
Variablen a, b, Ergebnis hier nicht mehr bekannt
Java-CodeÜbersicht
�31
!32
Code Bedeutung Beispiel
int Ganze Zahl (-3, 0, 7, 42, …) int a = 5;
double Gleitkommazahl double p = 3.6;
String Zeichenkette (Text) String ladida = „Hallo“;
boolean Wahrheitswert boolean isActive = true;
+ Addition int c = a + b;
- Subtraktion int res = w1 - w2;
* Multiplikation int abc = f * g;
/ Division double g = d / a;
AndroidGrundlagen
�33
Android-Grundlagen• Benutzeroberfläche (in XML)
• Layouts (Container) beinhalten weitere Elemente wie…
• TextView (Anzeige von Text)
• EditText (Eingabe von Text)
• Button
• Programmlogik (in Java)
• Verhalten für Interaktion mit der Oberfläche
• Weitere Logik wie Netzwerk-Kommunikation, Timer, …
!34
Constraint-Layout
• Dokumentation
• https://developer.android.com/reference/android/support/constraint/ConstraintLayout
• https://developer.android.com/training/constraint-layout/
!35
Benutzeroberfläche
!36
activity_main.xml
Neue Elemente im ConstraintLayout (Container)
Benutzeroberfläche
!37
activity_main.xml
Benutzeroberfläche
!38
Funktion bestimmen, die aufgerufen werden soll
activity_main.xml
Programm-Logik
!39
MainActivity.java
Automatischer Aufruf von onCreate
Programm-Logik
!40
Benutzeroberfläche (File) bestimmen
MainActivity.java
Programm-Logik
!41
Funktionsname aus Layout-File
MainActivity.java
Programm-Logik
!42
Parameter muss vom Typ View sein (Bezeichner ist beliebig)
MainActivity.java
Programm-Logik
!43
Funktion ohne Logik
MainActivity.java
Programm-LogikAuslesen von Benutzer-Eingaben
�44
Programm-Logik
!45
MainActivity.java
activity_main.xml
Tippspiel-App
!46
Tippspiel-App (Stufe 1)• Benutzer-Eingabe für Spielernamen
• Durch Knopf-Druck füllt sich eine Fortschrittsanzeige
• Bei Erreichen des Maximums: Ausgabe eines Toasts mit Spielernamen
• Was für Benutzeroberflächen-Elemente benötigen wir?
• EditText, ProgressBar (horizontal), Button
!48
Tippspiel-App (Stufe 1)
!49
Tippspiel-App (Stufe 2)
• 2-Spieler-Version
!50
Tippspiel-App (Stufe 3)• Chance bei Knopf-Druck, dass der Knopf deaktiviert wird
• Weiteren Knopf, welcher aktiviert wird, und gedrückt werden, um den Knopf für die Punkte-Erhöhung zu reaktivieren
• Timer für Start des Spiels
• AlertDialog für Auswahl: Neues Spiel oder Stop
!51
Hilfreiches• ProgressBar
• Shortcuts
• Strg + Leertaste Vorschläge
• Strg + Q Quick Documentation
• Einstellungen Add unambiguous imports on the fly
!52
Hilfreiches• Toast
• Zeichenkette in Gleitkommazahl umwandeln
• Gleitkommazahl in Zeichenkette umwandeln
!53
Ebenso für Float!
Hilfreiches
!54