---
# System prepended metadata

title: Sudoku | Projektarbeit Prog 3

---

# Sudoku | Projektarbeit Prog 3

## Notizen
- Wir sollen Jetpack verwenden deswegen -> Architecture Components


## Einleitung
- [x] - Was ist unser Projekt (Von wann bis wann Zeit im Rahmen einer Projektarbeit Prog3)
- [x] Wieso Android
- Entwicklungsumgebung
    - [x] AndroidStudio
    - [x] Emulator
    - Angepasste DIE für Android entwicklung [?]
- Entwicklungstools [?]
    - Git -> erlaubt die Versionierung
    - GitLab -> remote Repository (erlaubt den zugriff auf den selben Repo) (zusammenarbeit)

Leitfragen:
- Welche Architektur verwenden
- Wie baut man eine App
    - Wie ist Android aufgebaut
    - Bietet Android Hilfe (ArchitectureComponents)
- ...

## Grundlagen
Wieso sich über Architektur Gedanken machen?
- Trennen von UI und Logik
- Erhöht die Testbarkeit von Programmen (Applikationen)  Testen erklären 
- Wiederverwendeter
- SRP (Single Responsible Principle)
- …

Unterschiede zwischen Architekturen
- MVC -> Model View Controller
- MVP -> Model View Presenter
- MVVM -> Model View ViewModel 

Android LifeCycle (https://developer.android.com/guide/components/activities/activity-lifecycle) (Grafik)
- onCreate
- onDestroy
- …
- Hätten wir keine ArchitectureComponents müssten wir händisch den Lifecycle managen (das wollen wir nicht)

(Abhängigkeit „LifeCycle)
- MemoryLeaks
- Crashes

Androic ArchitecutreComponents
- LiveData -> Observable welche abhängig vom Lifecycle
- ViewModel -> Überlebt Lifecyclus (kein Datenverlust bei Rotation des Screens)
- Room

Sudoku
* erklären

Tests (https://developer.android.com/training/testing/fundamentals)
- UnitTests
- IntegrationTests
- End-to-End tests



## Hauptteil

Wieso wir uns für MVVM entschieden haben (Später):
- Empfohlen von Android (Google) (Android Dev)
- Angepasste Android Architecture Components

Wie wir was gemacht haben.

UI -> Wireframe -> Umsetzung in Android
- Custom View (Sudoku Board View)

## Fazit

Joa ganz nett
- MVVM -> Architecture Components
