První Androidí aplikaci jsem pro SUSku udělal již loni, byla konkrétně pro poslech Rádia Kolej. Letos ale přišel na řadu trochu větší projekt.
Festivalová aplikace pro Majáles Ostrava
Ve Finsku jsem měl předmět Android development a museli jsme vymyslet další projekt. Protože se zde požaduje, aby projekt byla týmová práce, rozhodli jsme se s Lukášem udělat aplikaci pro Majáles Ostrava. Aplikace již je hotová, a najdete ji v obchodě Google Play.
Předbězný plán a požadavky
Projekty na JAMKu fungují trochu jinak než u nás na VŠB. Během prvních týdnů musíte odevzdat předběžný plán. Posbírali jsme požadavky od Jakuba Kotzota, vedoucího PR v SUS, udělali wireframe, diagramy, sepsali a odevzdali. Celou dokumentaci si můžete stáhnout ve formátu PDF.
Ve zkratce, aplikace měla obsahovat: novinky, informace o festivalu, line-up, možnost sestavit vlastní line-up s upozorněním před koncertem, mapu, praktické informace, akce doprovodného programu a informace k průvodu. Co nejvíce obsahu stahovat z internetu a po přidání novinky upozornit uživatele, že přibyla novinka.
Prezentace a odevzdání
Když jsme aplikaci odevzdávali, chyběl celý line-up a upozornění na novinky. To nikomu ale nevadilo, a co jsme udělali, učiteli stačilo k hodnocení. Pak také přislíbil, že nám pomůže aplikaci otestovat, až bude finální. Ještě přidám odkazy, pokud by vás zajímala výsledná dokumentace a prezentace. Ty byly také součástí odevzdání a obsahují popis, co jsme využívali atd. Takto se dělají projekty na JAMKu, a myslím, že na VŠB by se mohli inspirovat.
Vývoj a technické detaily
Po konzultacích s Davidem jsme se rozhodli využít následujících knihoven a technik:
- Retrofit - HTTP klient pro stahování dat ze serveru. Dokonale spolupracuje s knihovnou GSON pomocí konvertoru.
- GSON - Knihovna od Google pro mapování JSON dat na objekty i zpět. Využíváme jak pro stáhnutí dat, tak pro uložení do SharedPreferences.
- Picasso - Knihovna pro stahování obrázků. Všechny obrázky se stahují pomocí této knihovny. Dokáže obrázky načíst přímo do ImageView, případně umístí placeholder do doby, než je vše načteno.
- Crashlytics - Umožní logovat chyby, ať už v lepším případě odchycené, nebo pády aplikace v horším případě.
- Google cloud messaging - umožní ze serveru poslat notifikaci do všech mobilních zařízení. Využívá se u novinek, kdy po přidání se stáhnou data znova a vyskočí notifikace. Požadavek se odesílá pluginem do WordPressu.
Serverová část
Jak jsme zmínili, aplikace si stahuje data z webu. Museli jsme je proto připravit ke stáhnutí a to ve formátu JSON pro lepší zpracování. Skript je rozdělen do 4 částí:
- Novinky - jsou přibližně polovina dat a aktualizují se nejčastěji. Proto se stahují zvlášť, a při změně se nemusí stahovat úplně všechno.
- Ostatní - vše ostatní se stahuje najednou. Více dělení již není, protože by pak rostlo počet požadavků na server. To by na pomalém připojení mohlo zabrat více času než přenesení všech dat najednou.
- Hash - Je zvlášť pro novinky a pro ostatní data. Pokud se uživatel připojí, je zbytečné stahovat data, pokud se nezměnily. Prvně se tedy stáhne pouze MD5 hash dat a pokud nesedí s již uloženým, začnou se stahovat všechna data.
Máte dotazy nebo připomínky? Napište komentář, za ohodnocení aplikace budeme s Lukášem rádi.
K tomuto článku již není možné přidávat další komentáře