Projekt z programování pro Android

Týden 7

Úkol 6

  • Implementujte stahování a parsování dat pomocí OkHttpClient (http://square.github.io/okhttp/)

    • 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

    • 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é byste 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 kinech

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

    • Na parsování použijte např. 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 Fresco, nebo UniversalImageLoader - je to jedno, hlavně to nedělejte ručně)

    • ​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, a nebo i na disk

      • sledujte, kdy se načítá obrázek z cache, kdy z disku, kdy ze serveru (v Picassu na to jsou debugIndicators)