• Testtermin: 26. November 2010

  • Prüfungstermin: 21. Jänner 2021

1. 2020-09-24

1.1. Referate

Table 1. ToDo
Wer Was Bis wann? erledigt?

Stütz

Liste der Referatsthemen

1. Okt. 2020

Stütz

Referatstermine festlegen

1. Okt. 2020

Stütz

RevealJs Repo zur Verfügung stellen

1. Okt. 2020

Referatstermine
lfd.Nr. Thema Datum Referent

1

Android Fragments, (Recycler-)View, Provider…​ → erstellen und erläutern anhand von Car Rental oder eigenem Micro-Projekt

15.10.2020

17 Sandro T

2

Beispiel mit Room und CRUD Funktionalität ubd Recyclerview (mit Jetpack Compose)

19.11.2020

6 Florentin G

3

Android Services

5.11.2020

7 Johann H

4

Jakarta EE microprofile

5.11.2020

15 Georg S

5

reaktives vs. imperatives Programmiermodell

7.1.2021

19 Aleander W

6

Angular Client

22.10.2021

11 Alexander

7

CDI (Quarkus)

22.11.2020

14 Elias R

8

Docker, docker-compose, Swarm nur Theorie → Orchestrierung

5.11.2020

5 Lukas G

9

Zugriff auf Datenbanken

12.11.2020

2 Nico A

10

Android Jetpack Compose

19.11.2020

16 Chiara S

11

Java Webtechnologien

5.11.2020

8 Armin H

12

Datenformate

12.11.2020

9 Elias J

13

JavaFX → TornadoFX

12.11.2020

4 Simon B

14

Kubernetes

3.12.2020

3 Christian B

15

SOAP, REST, graphQL

16

WebSocket, SSE, gRPC, webhooks

3.12.2020

1 Gabriel A

17

Electron

11.12.2020

12 Christoph

18

Security - openID mit Keycloak

12.11.2020

10 Jusic H

19

Security - Authentication methods / Problems

20

Messaging - MQTT, Kafka, JMS

10.12.2020

20 Jakob W

21

openHAB on Raspberry Pi

22

IoT

17.12.2020

18 Clements W

23

Chatbots

7.1.2021

13 Florian P

24

25

26

27

28

29

30

31

  • Was ist in einem Referat enthalten?

    • Einfache Definition - Was tut der Standard / die Technologie?

    • Welches Problem wird gelöst?

    • Wie wurde dieses Problem bisher gelöst?

    • Was ist die Referenzimplementierung

    • Alternativen → Marktanalyse

    • ev. ein lauffähiges Beispiel (nach Möglichkeit mit Quarkus)

    • auf welchem Prinzip baut diese Lösung auf? / wie funktioniert der Standard / die Technologie

  • Wie ist ein Referat zu erstellen*

    • vorzugsweise mit Asciidoctor und RevealJS als Foliensatz

    • ev. auch als Asciidoctor Dokument (ohne RevealJS)

    • Sämtliche Projekte sind in einem Github-Repo zu erstellen (→ noch zu diskutieren)

1.2. Verwendung von plantuml in Asciidoctor

xxx
Hobby hobby = new Hobby();
hobby.person = new Person();

Person person = hobby.person;
jenkins

2. 2020-09-24

Überblick
  • Technologien

  • Matura

  • Curriculum

3. 2020-10-01

Referate vergeben und Termine zuordnen

4. 2020-11-12

  • Referate:

    • Nachtrag 15GSeng → Jaeger

    • 05LGais → Docker → wird nochmals gehalten

    • 04SBla → TornadoFX

4.1. Jib

  • noch nicht in Registry deployed

5. 2020-11-19

5.1. 2020-11-26

  • Referate:

    • 11KUA → Angular + Keycloak (Wiederholung)

    • 14RE → CDI

5.1.1. Übung

  • Erstellen Sie eine Quarkus Applikation zum Thema Ihres Microprojekts vom 4.Jg

    • Schreiben Sie dieses Backend in Kotlin (mit Maven als Build-Tool)

    • Erstellen Sie ca. 3 Use-Cases, die Sie implementieren

    • Dokumentieren Sie diese User-Stories in einem geeignetem Asciidoctor-Dokument

      • Dieses Dokument soll sehr prägnant (kurz) sein

      • ein UCD-Diagramm sowie eine textuelle Formulierung

    • Erstellen Sie BDD-orientierte Tests (Behaviour-Driven-Design)

      • Verwenden Sie das Karate-Framework

      • Schreiben Sie die Feature-Files in Gherkin

      • Testen Sie verschiedene Szenarien jeweils zu Ihren User-Stories

  • Termin: 1. Dezember 2020

  • Classroom-Repo

5.2. Behaviour Driven Design - BDD (Karate & Gherkin)

  • Konzept: BDD

    • aus der sicht des Kunden werden die Tests erstellt

5.3. Karate

karate overview

Erstellen des Projekts
mvn io.quarkus:quarkus-maven-plugin:1.9.2.Final:create \
    -DprojectGroupId=at.htl \
    -DprojectArtifactId=quarkus-karate-demo \
    -DclassName="at.htl.karate.boundary.GreetingResource" \
    -Dpath="/hello"
pom.xml
    <dependency>
      <groupId>com.intuit.karate</groupId>
      <artifactId>karate-apache</artifactId>
      <version>0.9.6</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.intuit.karate</groupId>
      <artifactId>karate-junit5</artifactId>
      <version>0.9.6</version>
      <scope>test</scope>
    </dependency>
    ...

  <build>
    <testResources>
      <testResource>
        <directory>src/test/java</directory>
        <excludes>
          <exclude>**/*.java</exclude>
        </excludes>
      </testResource>
    </testResources>
    <plugins>
    ...
    </plugins>
  ...
  </build>
src/test/java/karate-config.js
function fn() {
    var env = karate.env; // get java system property 'karate.env'
    karate.log('karate.env system property was:', env);
    if (!env) {
        env = 'dev'; // a custom 'intelligent' default
    }
    var config = { // base config JSON
        baseUrl: 'http://localhost:8081'
    };
    // don't waste time waiting for a connection or if servers don't respond within 5 seconds
    karate.configure('connectTimeout', 5000);
    karate.configure('readTimeout', 5000);
    return config;
}

6. 2020-12-17

6.1. Smallwind

  • JP-QL vs SQL

  • Cascading asscociations

6.2. Teststoff

  • Quarkus

6.3. Karate

  • BDD → Behaviour Driven Development

  • verhaltensorientierte Entwicklung (besser: Anforderungsorientierte Entwicklung)

  • feature-Files sind in Gherkin geschrieben

7. 2021-01-14

7.1. Häufige Fehler bei Projekten

7.2. Bidirektionale Beziehungen

8. 2021-02-04

9. 2021-03-04

  • Testtermin:

  • Teststoff:

  • Lehrziele

    • Backend

      • DB

      • REST-Service

    • Frontend: mobile

      • DB (Room)

      • REST-Client (Retrofit)

      • Jetpack-Compose

10. 2021-03-18

  • https://developer.android.com/teach#for-instructors-teaching-a-course

  • Mikroprojekt

    • Classroom: https://classroom.github.com/a/-beRQZMm

    • alle Commit-Mesages beinhalten den Nachnamen

    • im REDAME.md muss ganz kurz das Projekt und die Implementierung beschrieben werden

    • Termin 2021-03-25

      • App mit RecyclerView (inkl. Bilder)

      • Es wird Gespräche über die Ausarbeitung geben (LZK)

      • begleitend die Codelabs des Kurses

    • Termin 2021-04-08

      • App mit Room Database

      • Es wird Gespräche über die Ausarbeitung geben (LZK)

    • Termin 2021-04-15

      • App mit Access to RESTApi mit Quarkus-Backend (deployed in oravm)

      • Es wird Gespräche über die Ausarbeitung geben (LZK)