Přednášky (které vede Michal Krumnikl) a další pomocné materiály naleznete na: http://tamz2.mrl.cz/
Cvičení
Během semestru budou na cvičeních zadávány úkoly, které budou hodnoceny osobně na cvičeních. Za body z těchto úkolů bude možné získat zápočet (max. 45; min. 23). V hodnocení úkolů bude také zohledněno prezentovování vlastního řešení a pochopení problematiky.- Android Studio, instalace zalozeni projektu, emulator
- instalace a spuštění emulátoru (video)
- https://developer.android.com
- https://developer.android.com/studio/run/emulator
- Alternativně lze použít například emulátor genymotion
- https://developer.android.com/studio/debug/dev-options
- https://developer.android.com/build
- https://developer.android.com/studio/debug/am-logcat
- instalace a spuštění emulátoru (video)
- Zakladni komponenty/ui prvky
- Složený úrok (0-3b)
- Vytvoření aplikace, která bude počítat složené úročení - viz ukázka aplikace níže (daň z úroku neuvažujeme). Hint: CardView
- Matematický základ lze čerpat například z: https://www2.karlin.mff.cuni.cz/~portal/fin_mat/?page=slozene_uroceni
- Java/Kotlin + XML: Graf je možné vytvořit pomocí MPAndroidChart (níže je video ukazující základní použití knihovny): MPAndroidChart
- Dokumentace k MPAndroidChart: MPAndroidChart wiki
- Jetpack Compose: Graf je možné vytvořit pomocí AAY-chart: AAY-chart
4. Rozšíření předchozího úkolu: (0-5b)
Cvičení bude hodnoceno podle množství a obtížnosti přidaných prvků oproti předchozímu cvičení. Možné je například přidat těchto pět částí:- Přidání menu (např. s možností volby typu grafu; obecné nastavení; historie).
- V položce "typ grafu" umožněte výběr alespoň dvou různých grafů.
- Java/Kotlin + XML: pokuste se výběr grafu vyřešit pomocí
startActivityForResult
neboregisterForActivityResult
. - Jetpack Compose: pokuste se využít Navigation Compose.
- Java/Kotlin + XML: pokuste se výběr grafu vyřešit pomocí
- V položce "obecné nastavení" umožněte měnit parametry, např. velikost kroku posuvníků, rozsah posuvníků nebo barvu grafu.
- Přidejte funkci pravidelného vkladu (viz video ukázka).
- Zkuste přijít na způsob, jak implementovat položku "historie" se zobrazením předchozích hodnot a výsledků.
5. Implementace vlastního View/Composable pro generování 2D čárového kódu: (0-5b)
Vytvořte vlastní View/Composable implementující zobrazení jednoduchého 2D čárového kódu - UPC. Nosičem informace v kódu UPC-A jsou čáry a mezery. Mohou mít různou šířku, která je ale vždy násobkem šířky nejužšího elementu. Šířka nejužšího elementu představuje základní délkovou jednotku. Každý zakódovaný znak má v symbolu čárového kódu délku přesně 7 základních jednotek. Kódování jednotlivých cifer najdete v přiloženém zdrojovém souboru projektu. Kód je uprostřed rozdělen dělicím znakem na dvě části (na ukázce níže zvýrazněn červeně). První pole je vlevo od dělicího znaku, druhé pole je vpravo. Princip kódování můžete nalézt na Wikipedii
Při tvorbě aplikace se pokuste vyřešit (pro plný počet bodů) i následující body:- Možnost zadání 12-místného číselného kódu uživatelem prostřednictvím textového pole. Po stisknutí tlačítka se zadaný kód vykreslí.
- Vykreslování UPC-A čárového kódu se pokuste vyřešit pomocí bitového posunu v kombinaci s proměnnými L a R poskytnutými v ukázkové šabloně.
- Kontrola správnosti kódu pomocí poslední kontrolní číslice (check digit) UPC–A Check Digit Calculator
- Uložení vygenerovaného čárového kódu jako obrázek do galerie.
