Projekt z programování pro Android

Týden 7

Úkol 7

  • Implementujte stahování a parsování dat pomocí OkHttpClient

    • Pro stahování použijte AsyncTask

    • Implementujte akce pro správné stahování dat, nedostupnost internetu nebo nemožnost parsování dat

    • Zacházejte s AsyncTaskem správně - nesmí leakovat, když aktivita ukončí svůj cyklus

      • ​pozor na otočení obrazovky

  • Nahraďte mock data za reálná z API z druhého úkolu

    • Data držte zatím v paměti - singleton, případně worker fragment

    • Použijte discover api http://docs.themoviedb.apiary.io/#reference/discover/get

      • Např. si nechte zobrazovat filmy s nejlepším hodnocením navrchu (?sort_by=avg_rating.desc)

      • Příklady možných prohledávání filmů https://www.themoviedb.org/documentation/api/discover

      • Použijte svou kreativitu na seznam filmů, které by ste chtěli mít zobrazeny na úvodní obrazovce

      • Kdo nemá kreativitu, zobrazte filmy, které vycházejí od "dnes" do 7 dnů a v druhé sekci filmy, které běží momentálně v kinách

      • GridView musí obsahovat minimálně dvě sekce

    • Na parsování použijte Gson parser

      • Vytvořte k němu všechny potřebné modely a použijte anotace

      • Stačí definovat jenom potřebné atributy, které chceme použít. Ostatní atributy z JSONu budou parserem ignorovány

  • Na stahování obrázků použijte Picasso nebo Glide (nebo UniversalImageLoader - umí toho víc)

    • ​Můžete zkusit všechny a na hodině poté přednést, který byl lepší z hlediska použití, paměti, rychlosti, možností...

    • Nezapomeňte na cachování do paměti anebo i na disk

      • sledujte, kdy se tahá obrázek z cache, kdy z disku, kdy ze servru (v Picassu na to jsou debugIndicators)