Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
guFalcon committed Nov 6, 2023
1 parent 084ec92 commit 99f278c
Show file tree
Hide file tree
Showing 9 changed files with 111 additions and 17 deletions.
48 changes: 32 additions & 16 deletions asciidocs/android-1.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -181,22 +181,6 @@ fun compare(a: String, b: String): Boolean = a.length < b.length
----
|===

==== title
|===
|Java |Kotlin

a|blah
[java]
----
code
----

a|blah
[kotlin]
----
code
----
|===

=== Übung
Spielwiese unter: link:https://play.kotlinlang.org/koans/overview[https://play.kotlinlang.org/koans/overview]
Expand Down Expand Up @@ -327,6 +311,38 @@ class MainActivity : ComponentActivity() {


== Android Project Structure
image:android-1-10.png[align="center",width="50%"]
Das ist das Projekt-Root-Verzeichnis. Es enthält alle Dateien, die für das Projekt wichtig sind.

=== Manifest Ordner
Der Manifest-Ordner ist die Quelle der Wahrheit für die Android-App; er enthält AndroidManifest.xml.
Klicke auf AndroidManifest.xml, um es zu öffnen und Dir den Inhalt anzusehen.

image:android-1-11.png[align="center",width="100%"]
Das Java-Verzeichnis enthält alle Kotlin- (.kt) und Java-Dateien (.java), die wir erstellen, wenn wir unsere Android-Apps erstellen.
Beispielsweise, im nächsten Bild, haben wir ein Package mit (androidTest) und (test), und hier fügen wir unsere Tests hinzu.
Klicke einfach einmal alle Verzeichnisse durch um deren Inhalt zu sehen.

image:android-1-12.png[align="center",width="100%"]
Im AndroidTest-Verzeichnis haben wir unsere UI-Tests, und im Test-Verzeichnis haben wir unsere Unit-Tests.
Unit-Tests testen kleine Teile unseres Codes, um sicherzustellen, dass das gewünschte Verhalten wie erwartet ist.
Test-Driven Development (TDD) ist während der App-Entwicklung hervorragend und wertvoll.
Einige Unternehmen folgen dieser Regel, andere nicht. Aber grundsätzlich ist es eine gute Praxis, den Code immer zu testen.

Das res-Verzeichnis enthält XML-Layouts, UI-Strings, drawable-Images und Mipmap-Icons.
Auf der anderen Seite enthält das values-Verzeichnis viele nützliche XML-Dateien wie Dimensionen, Farben und Themes.
Klicke auf das res-Verzeichnis, um Dich mit dem vertraut zu machen, was dort ist, da wir es im nächsten Kapitel verwenden werden.

image:android-1-13.png[align="center",width="100%"]
Zuletzt, im Gradle-Scripts Verzeichnis, haben wir die build-Konfiguration, die die beschreiben auf welche Art unser Projekt gebaut werden soll für unser Projekt enthalten.
Es ist in Module aufgeteilt und die Einträge in der obersten Datei gelten für alle Module.

Ein Modul ist eine Sammlung von Source-Dateien und Build-Einstellungen, die es Dir ermöglichen, Dein Projekt in verschiedene Einheiten mit bestimmten Zwecken zu unterteilen.

== Deine App mit Gradlew laufen lassen

Zuerst mal die installierte Gradle-Version checken mit ./gradlew (GradleWrapper).

Mit ./gradlew clean und ./gradlew build kannst Du Dein Projekt bauen.

Ansonsten kannst Du auch einfach auf den grünen Pfeil in der IDE klicken.
71 changes: 71 additions & 0 deletions asciidocs/android-2.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
= Android - Course - 1 - Introduction
ifndef::imagesdir[:imagesdir: images]
:icons: font
:experimental:
:sectnums:
:toc:
ifdef::backend-html5[]

// https://fontawesome.com/v4.7.0/icons/
icon:file-text-o[link=https://raw.githubusercontent.com/UnterrainerInformatik/documents/main/asciidocs/{docname}.adoc] ‏ ‏ ‎
icon:github-square[link=https://github.com/UnterrainerInformatik/documents] ‏ ‏ ‎
endif::backend-html5[]

link:https://unterrainerinformatik.github.io/lectures/android.html[BACK to Android - Course]

== Android Views mit Jetpack Compose
image:android-2-0.png[align="center",width="100%"]

=== Einleitung
Das wichtigste Element bei Android-Apps ist natürlich die GUI.
Früher hat man die GUI mit Java-Code entwickelt und mit XML-Dateien konfiguriert (imperativ).

Seit ein paar Jahren ist man allerdings dazu übergegangen, diese mit Kotlin-Code unter Verwendung der deklarativen Library Jetpack Compose zu entwickeln (deklarativ).

=== Projekt erstellen
Geht nach Kapitel 1 vor, um ein neues Projekt zu erstellen.
Das Projekt sollte "Compose Basics" heißen und wir werden die Vorschau-Funktion verwenden, um die UI-Elemente zu betrachten.

In unserem Projekt, mach ein neues Package und nenne es components.
Hier werden wir alle Komponenten hinzufügen, die wir erstellen.

Erstelle ein Kotlin File und nenne es UIComponents.kt.
Innerhalb von UIComponent, erstelle eine composable Funktion, nenne sie EditTextExample() und rufe die OutlinedTextField() Funktion auf.
Dabei wirst Du aufgefordert, den erforderlichen Import zu importieren, der androidx.Compose.material.OutlinedTextField ist:

[kotlin]
----
@Composable
fun EditTextExample() {
OutlinedTextField()
}
----

Wenn man sich die Signatur von OutlineTextField() genauer ansieht, bemerkt man neben der @Composable-Annotation, dass sie eine Menge Parameter hat, die alle optional sind und mit einem Default-Wert versehen sind.
Auf diese Weise können Sie die Felder parametrisieren und an Ihre Bedürfnisse anpassen.

image:android-2-1.png[align="center",width="100%"]

Jetzt, damit wir unsere Methode für unsere Zwecke anpassen können, können wir die Parameter, die wir nicht benötigen, weglassen und nur die verwenden, die wir benötigen.
Wir werden die folgenden Parameter verwenden:
Text, color und Modifier, um es zu dekorieren.
Dem Modifier können wir eine Liste von Modifier-Objekten übergeben, die wir verwenden möchten. So setzen wir zum Beispiel fillMaxWidth(), um die Breite des Textfelds auf die maximale Breite zu setzen.
Wenn wir fill() aufrufen, wird das Textfeld voll gefüllt. Wir setzen padding(top) auf 16.dp, was zusätzlichen Platz entlang jeder Kante des Inhalts in dp anwendet. Es hat auch einen Wert, der der Wert ist, der im OutlinedTextField eingegeben werden soll, und ein onValueChange-Lambda, das auf die Eingabeänderung hört.



IMPORTANT: Hausübung:
Installieren und auf die neueste Version updaten.


== Scrollable List mit Jetpack Compose

== Tab-Layout mit View Pager

== Animationen

== Accessibility

== Declarative Graphics

== Grundlagen Android-Entwicklung
9 changes: 8 additions & 1 deletion asciidocs/android.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,15 @@ link:https://unterrainerinformatik.github.io/lectures/android-1.html[Android - 1
* Android Project Structure
* Deine App mit Gradlew laufen lassen

== Android - 2
== Jetpack Compose
link:https://unterrainerinformatik.github.io/lectures/android-2.html[Android - 2 - ]

* Android Views mit Jetpack Compose
* Scrollable List mit Jetpack Compose
* Tab-Layout mit View Pager
* Animationen
* Accessibility
* Declarative Graphics

== Android - 3
link:https://unterrainerinformatik.github.io/lectures/android-3.html[Android - 3 - ]
Binary file added asciidocs/images/android-1-10.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added asciidocs/images/android-1-11.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added asciidocs/images/android-1-12.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added asciidocs/images/android-1-13.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added asciidocs/images/android-2-0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added asciidocs/images/android-2-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 99f278c

Please sign in to comment.