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.
Za body z těchto úkolů bude možné získat zápočet (max. 45; min. 23).

  1. Android Studio, instalace zalozeni projektu, emulator
  2. Ukazka aktivit, zakladni gui prvky, zasilani zprav mezi aktivitami
  3. Složený úrok (0-3b)
  4. Rozšíření předchozího úkolu o následující části: (0-5b)
    • Vytvoření menu (alespoň tři položky).
    • V položce typ grafu (chart type) mít možnost vybrat typ grafu (alespoň dva různé grafy). Přepínání vyřešit pomocí startActivityForResult.
    • V obecném nastavení (settings) můžete dát uživateli vybrat například velikost kroku jednotlivých posuvníků nebo rozsah.
    • Historii hodnot a výsledků ukládat do SharedPreferences a historii také zobrazit - https://developer.android.com/training/data-storage/shared-preferences.
    • Hodnoty (vklad, úrok, doba) ukládat do SharedPreferences aby po vypnutí/spuštění aplikace zůstaly hodnoty z posledního výpočtu.
    • Umožnit uživateli vyčistit historii (SharedPreferences).
    • Ukázka pro inspiraci ukazuje pouze menu a první položku (změnu grafu). Vzhled dalších položek v menu si implementujte podle sebe.
  5. Zadání bylo zasláno na email - vlastní View implementující zobrazení jednoduchého 2D čárového kódu: (0-5b)
  6. Sokoban: (0-5b)
  7. Sokoban pokračování - Levely: (0-5b)
    • - Pro splnění úkolu je potřeba načítat herní levely ze souboru, kdy po splnění daného levelu se přepne na level následující. Pro pokročilejší verzi úkolu je možné přidat výběr levelu pomocí např. listu nebo výběrem z menu. V hodnocení úkolu bude zohledněno zpracování práce s levely (např. zda hra dokáže pracovat s různě velkými levely nebo řešení výběru/čtení daného levelu).
    • - odkaz na levely
      Symbols used in the screen files:
      " " (space)--An empty space (floor)
      "#"--Walls (the walls will be curved and shadowed automatically)
      "."--Target or goal square
      "$"--Treasure
      "*"--Treasure on a goal area
      "@"--You (the player)
      "+"--You standing on a goal square.
    • - Pomocná video ukázka (obsahuje zvukovou stopu)
  8. Sokoban pokračování - Ukládání skóre, zobrazení náhledu levelu, ukládání rozehraného levelu: (0-6b)
    • - Zobrazit náhled levelu pomocí ListView nebo modernějšího RecyclerView
      - Jedná se o automaticky (programově) generovaný náhled levelu podle vzhledu levelu ze třídy SokoView - ne pouze například manuálně (vytípnutý) vložený obrázek do adresáře drawable/assets a poté do listu
      - Ukládat nejlepší skóre ke každému levelu do úložiště (počet tahů, čas) - využít můžete SQLite nebo Room Persistence Library (případně SharedPreferences, ale bodově bude zvýhodněno použití jedné z předchozích technik)
      - Ukládání rozehraného levelu
      - Další možná vylepšení: například jednoduchý editor levelů; úvodní menu s výběrem postavy a zadání jména hráče; odemčení nového lelevu nebo postavy po splnění minimálního skóre atd.
      - Hint: DBHelper.java
      - Hint: Database Inspector
      - Hint: SQLite Android
    • sokoban
  9. Počasí: (0-5b)
    • - Zadání na tento úkol naleznete v následující video ukázce (obsahuje zvukovou stopu)
      - Pro síťovou komunikaci a práci s JSON můžete využít znalosti z přednášek (např. Volley, Gson)
    • - odkaz na ikony
    • https://openweathermap.org
  10. Počasí - Fragmenty: (0-5b)
    • - Za pomocí fragmentů modifikujte předchozí aplikaci viz obrázky a video
      - Zadání na tento úkol naleznete v následující video ukázce (obsahuje zvukovou stopu)
      - V hodnocení úkolu bude zohledněno zpracování fragmentů (např. zda aplikace dokáže přepínat fragmenty podle orientace zařízení/komunikace mezi fragmenty).
    • fragmenty
  11. Lokalizace tváří: (0-5b)
      - face-detection-android
      - animations
      - Vyuužíjte informace o lokalozovaných tváří a jejich částech (vykreslete obdelník/kružnici kolem tváří/očí/úst; nahraďte nalezené tváře jinou tváří)
      - Ukázka aplikace:
  12. Počasí - Poloha, offline verze, nastavení (například jednotek, rozsahu/intervalu předpovědi, seznam posledních poloh/měst atd.): (3-4b)
    • - Zadání na tento úkol naleznete v následující video ukázce (obsahuje zvukovou stopu)