Android for Beginners SS2019 · 2019-07-29 · Android for Beginners SS 2019 1 Von 0 auf Android in...

Preview:

Citation preview

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

Recommended