Table of Contents
Android Development Series
Každý týden přibližně hodinová přednáška na téma vývoj aplikací pro Android, a následně workshop v rámci kterého realizujeme example aplikaci na probranou teorii. Workshop se dle zkušeností může protáhnout i na 3 hodiny. Přednášky a záznamy z přednášek budou vystaveny zde na wiki.
Konkrétní den stanovíme do konce ledna 2013, přednášky budou probíhat od prvního týdne v únoru.
Workshopy
Workshopy jsou specifikovány, ale kvůli nedostatku zájmu se nebudou realizovat, pokud bude zájem o vytvoření workshopu, kontaktovat da3m0n22
Bugfixing Workshop
Po skonceni zakladniho kurzu se pokusime v brmlabu zorganizovat workshop, ktery se zameri na fixovani problemu existujicich open-source Android aplikaci. Identifikujeme vhodne aplikace, ktere kazdy z nas vyuziva, a na strance jednotlivych aplikaci projedeme seznam hlasenych chyb. Nektere z nich se pokusime (ci uz spolecne nebo samostatne) opravit a poslat opravy zpatky autorum. O workshopu budeme vcas informovat.
Further-development Workshop
https://github.com/smarek/Simple-Dilbert
Workshop zaměřený na vývoj a přidávání funkčností do existujícího projektu. Pro účely praxe v týmovém vývoji, přebírání exisutjícího kódu, používání Github (Issues, Pull Request, Wiki), vytváření dokumentace (Javadoc) a kontroly kvality kódu.
Pro účely workshopu se práce rozdělí podle schopností a problematiky do více prací a ty budou rozděleny jednotlivcům nebo týmům.
Example aplikace je zároveň zveřejněná v Google Play (Android Market), takže se budeme zabývat praxí správy aplikace v Google Play, podpory, nahrávání a vytváření nových verzí…
Plán přednášek
- (1) Nastavení vývojového prostředí, úvod do struktury aplikace, podpora různých HW a SW konfigurací
- example: Hello World
- (2) Struktura aplikace, MVC pattern, Activity life-cycle, způsoby uložení dat
- example: CRUD nad SharedPreferences, Files, Cache, SQL
- (3) Vlákna, responzivita aplikace, AsyncTask, Práce se sítí
- example: Načítání dat z webového zdroje, persistence, zobrazení
- (4) Pokročilé UI (UI pro API > v11, Action Bar), 9patch, Seznamy, Fragmenty, Zpětná kompatibilita (Support v4, v13)
- example: Seznam načtených dat, onItemClickedListener, využití fragmentu Google Maps API
- (5) ActionBar (ABS, Split), Options Menu, Context Menu, Dialogs, Intents
- example: Využití ActionBarSherlock, Support v4/v11 library, options a context menu
- (6) Layout variants, Maven
- (7) Pokročilá témata:NDK, Bezpečnost, GC, Memory Leaks, Čistota kódu
- (8) Pokročilá témata: 2D/3D Grafika, Ochrana kódu (ProGuard), Code Quality (FindBugs, CodePro, PMD)
Použité technologie
- Java
- XML
- SQL
- JSON
- SVN/GIT
Podporované vývojové nástroje
- Eclipse
- Eclipse ADT
- FindBugs (statická analýza java kódu)
- Testování na fyzickém zařízení (použití AVD na vlastní nebezpečí, nepodporovaná metoda)
- draw9patch - pro úpravu grafických assetů pro 9patch resizing
Příprava vývojového prostředí
- Nainstalovat JDK a JRE prostředí
- Stáhnout Eclipse poslední verzi pro Java vývoj (verze 3.8 by neměla dělat problémy) (Eclipse Juno)
- Nainstalovat Android SDK (Stažení a instalační instrukce)
- Stáhnout aktualizace pro SDK a nainstalovat SDK API 17 (Sources, Javadoc, Google API) (Návod
- Nainstalovat z Marketplace ADT plugin (Dokumentace ADT a Návod na instalaci)
- Nastavit proměnnou prostředí PATH tak aby obsahovala cestu ke složce {android_sdk/platform-tools}
Knowledge Base (EN)
- Robotium testing: http://www.vogella.com/articles/AndroidTesting/article.html
- Supporting multiple screen resolutions: http://developer.android.com/guide/practices/screens_support.html
- ORM:
- Permissions explained
- Supporting multiple API levels:
- ActionBar for backsupport API lower than 11
- Fastest JSON Serialize/Deserialize library
- Java Static Code Analysis
- LINT (ADT since API 16 built-in) http://tools.android.com/tips/lint
- Avoiding Memory Leaks (Context Memory leaks)
- ACRA - collecting crash logs from devices (many useful info for debugging in deploy stage)
- AVD (Android Virtual Device) - Emulator enhancement
- Java pass-by-reference / pass-by-value explanation
- Android introduction, setting up dev environment
Knowledge Base (CZ)
- Seriál o vývoji na Zdrojak.cz
video