~~NOCACHE~~ ======== Android Development Series ======== {{template>infobox| name=Android Development| image=http://ondrejcermak.info/wp-content/uploads/2010/11/Android_logo.svg_.png| organizer=[[user:da3m0n22]]| datetime=weekly since 4.2.2013, 19h| place=brmlab| stream=[[stream]] }} 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 [[user: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 * {{:event:helloworld.zip|Projekt Eclipse ke stažení}} * {{:event:android_1.pdf|Prezentace PDF}} * [[http://nat.brmlab.cz/talks/android/2013-02-06-android.mkv|Záznam přednášky]] * (2) Struktura aplikace, MVC pattern, Activity life-cycle, způsoby uložení dat * {{:event:helloworld2.zip|Projekt Eclipse ke stažení}} * {{:event:android_2.pdf|Prezentace PDF}} * [[http://nat.brmlab.cz/talks/android/2013-02-13-android.mkv|Záznam přednášky]] * 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í * {{:event:android3.zip|Projekt Eclipse ke stažení}} * {{:event:android3_update.zip|Projekt Eclipse po workshopu}} * {{:event:android_3.pdf|Prezentace PDF}} * [[http://nat.brmlab.cz/talks/android/2013-02-27-android.mkv|Záznam přednášky]] * (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 * {{:event:android_4.pdf|Přednáška v PDF}} * {{:event:android4.zip|Projekt Eclipse pro Workshop}} * [[http://nat.brmlab.cz/talks/android/2013-03-06-android.mkv|Záznam přednášky]] * (5) ActionBar (ABS, Split), Options Menu, Context Menu, Dialogs, Intents * example: Využití ActionBarSherlock, Support v4/v11 library, options a context menu * {{:event:android_5.pdf|Prezentace PDF}} * {{:event:android5.zip|Projekt Eclipse pro Workshop}} * [[http://nat.brmlab.cz/talks/android/2013-03-13-android.mkv|Záznam přednášky]] * (6) Layout variants, Maven * {{:event:android6.zip|Projekt Eclipse pro Workshop a Přednášku}} * {{:event:android_6.pdf|Prezentace PDF}} * [[http://nat.brmlab.cz/talks/android/2013-03-27-android.mkv|Záznam přednášky]] * (7) Pokročilá témata:NDK, Bezpečnost, GC, Memory Leaks, Čistota kódu * {{:event:android_7.pdf|Prezentace PDF}} * [[http://nat.brmlab.cz/talks/android/2013-04-03-android.mkv|Záznam přednášky]] * (8) Pokročilá témata: 2D/3D Grafika, Ochrana kódu (ProGuard), Code Quality (FindBugs, CodePro, PMD) Pokud nejsou aktuální záznamy přednášek nalinkovány sem, jsou k nalezení na adrese: http://nat.brmlab.cz/talks/android/ ======== 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í ======== Sežeňte si pro vývoj fyzické android zařízení s Android verze 4 (API 14 a výše) * 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) ([[http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junosr1|Eclipse Juno]]) * Nainstalovat Android SDK ([[http://developer.android.com/sdk/index.html|Stažení a instalační instrukce]]) * Stáhnout aktualizace pro SDK a nainstalovat SDK API 17 (Sources, Javadoc, Google API) ([[http://developer.android.com/sdk/installing/adding-packages.html|Návod]] * Nainstalovat z [[http://marketplace.eclipse.org/|Marketplace]] ADT plugin ([[http://developer.android.com/sdk/installing/installing-adt.html|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) ======== Informace, které asi nebudete potřebovat všechny, ale rozhodně stojí za zmínku, pokud to myslíte vážně * Robotium testing: http://www.vogella.com/articles/AndroidTesting/article.html * Supporting multiple screen resolutions: http://developer.android.com/guide/practices/screens_support.html * ORM: * http://ormlite.com/ * https://www.activeandroid.com/ * Permissions explained * http://developer.android.com/reference/android/Manifest.permission.html * http://www.android-permissions.org/permissionmap.html * Supporting multiple API levels: * http://developer.android.com/guide/topics/manifest/uses-sdk-element.html * http://stackoverflow.com/a/4994039/492624 * ActionBar for backsupport API lower than 11 * http://actionbarsherlock.com/ * Fastest JSON Serialize/Deserialize library * http://jackson.codehaus.org/ * Java Static Code Analysis * http://www.jutils.com/eclipse/index.html * LINT (ADT since API 16 built-in) http://tools.android.com/tips/lint * http://findbugs.sourceforge.net/ * Avoiding Memory Leaks (Context Memory leaks) * http://android-developers.blogspot.cz/2009/01/avoiding-memory-leaks.html * ACRA - collecting crash logs from devices (many useful info for debugging in deploy stage) * http://acra.ch/ * AVD (Android Virtual Device) - Emulator enhancement * http://www.developer.com/ws/android/development-tools/supercharge-your-android-emulator-speed-with-intel-emulation-technologies.html * Java pass-by-reference / pass-by-value explanation * http://javadude.com/articles/passbyvalue.htm * Android introduction, setting up dev environment * http://www.youtube.com/watch?v=1fT32Gs1fBs ======== Knowledge Base (CZ) ======== * Seriál o vývoji na Zdrojak.cz * http://www.zdrojak.cz/clanky/vyvijime-pro-android-zaciname/ {{tag>video}}