Novinky
- Tretí, mimoriadny, termín obhajoby sa koná 17. 6. 2015 od 7:07 v miestnosti SA1C03.
- Prečítajte si podrobne aktualizované požiadavky, ktoré boli obohatené o vyjasnenia, či aktualizácie.
Vzhľadom na malý počet úspešných obhajob v prvom termíne sa posúva začiatok 2. termínu na 14:00
Hodnotenie projektu
Systémové programovanie sa končí ohodnotením samostatne vypracovávaného projektu s nasledovnými charakteristikami:
- zvoľte si tému projektu. Inšpirujte sa brainstormingom, aplikáciami z Google Play, či iných platforiem
- projekt vypracujte samostatne. Tímové projekty nie sú povolené.
- osobne ho obhájte v stanovený dátum.
- vyberte si technologické črty vášho projektu. Na úspešnú obhajobu projektu je potrebné nazbierať minimálne 19 bodov. Stupnica hodnotenia je nasledovná: 19 bodov E, 20 bodov D, 21 bodov C, 22 bodov B, 23 a viac bodov A.
- najneskôr v deň obhajoby pošlite na e-mail informáciu o tom, ktoré technologické črty mienite obhajovať. E-mail je potrebný na urýchlenie priebehu obhajoby.
- sledujte priebežne požiadavky na hodnotenie: formulácia či ujasnenia môžu priebežne pribúdať podľa dopytov študentov.
Termíny hodnotenia
Hodnotenie a obhajoba projektov sa konajú v dvoch štandardných termínoch:
- streda 3. júna 2015 od 16:00 v miestnosti P4
- streda 10. júna 2015 od 16:00 v miestnosti P4
Tretí termín má konanie
- streda 17. júna 2015 od 7:07 v miestnosti P3
Pozor, dodatočné termíny obhajoby nebudú vypísané!
Nutné požiadavky
- pri vývoji predpokladajte minimálny API Level 14 (Android 4.0)
- ak využívate cudzí kód alebo externú knižnicu, uveďte exaktný odkaz na jeho autora alebo pôvodinu.
- najneskôr v deň obhajoby pošlite na e-mail informáciu o tom, ktoré technologické črty mienite obhajovať. E-mail je potrebný na urýchlenie priebehu obhajoby.
Technologické črty
aktivity a fragmenty: minimálne 4 aktivity (2 bod + bod za každú dodatočnú aktivitu spĺňajúcu požiadavky. Aktivita musí byť logická, zapadajúca do idey aplikácie, netriviálna (pozostávajúca z viacerých komplexných widgetov) a unikátna (identické aktivity s minimálnymi odlišnosťami nie sú brané do úvahy.) Aspoň 1 aktivita musí demonštrovať použitie netriviálnych fragmentov. Nesplnenie tejto podmienky má za následok neuznanie projektu.
Ďalšie kritériá:
- Každá aktivita musí mať korektne implementovaný životný cyklus, korektne ukladať priebežný stav a musí byť schopná vysporiadať sa so zmenou konfigurácie (otočenie zariadenia).
- Ak aktivita poskytuje len zoznam akcií (napríklad tlačidiel), nepovažuje sa za netriviálnu. Pre navigáciu v aplikácii slúži widget navigation drawer. Ak tlačidlá reprezentujú akcie, využite lištu akcií (action bar).
- SQL: využitie relačnej databázy, content providery, loadery (3 body)
- je zakázané volať databázové metódy v hlavnom vlákne: namiesto nich využite loadery.
- využitie viactabuľkového content providera (1 bod). Viactabuľkový content provider má využívať
UriMatcher
, prípadne demonštrovať použitie SQL JOINov.
- vlastné loadery: 1 bod
- podpora veľkých displejov (tabletov): 1 bod. Aplikácia musí efektívne využívať väčšiu veľkosť displeja (využite fragmenty), a zároveň musí užitočne korektne fungovať i na štandardných zariadeniach (telefóny).
- preferencie: využitie preferencií vrátane preferenčnej aktivity: 1 bod
- služby: služba založená na IntentService: 1 bod
- bindery$$$: služba využívajúca Bindery: 2 body
- komunikácia s aktivitou cez broadcasty: 1 bod
- zoznamy, mriežky, tabuľky: využitie zoznamu, mriežky či podobného widgetu s adaptérom: 1 bod za každý widget
- ViewBinder$$$: návrh vlastného adaptéra s ViewBinderom: 1 bod
- netradičný komponent$$$: využitie netradičného komponentu z knižnice Androidu, či z externej knižnice: 1 bod
- widgety moderného Androidu:
- lišta navigácie (navigation drawer): 1 bod
- karty (tabs): 1 bod
- swiping view: 1 bod
- HTTP klient: využitie HTTP klienta alebo
URLConnection
na komunikáciu so serverom: 1 bod.- Demonštrácia obojsmernej komunikácie (HTTP POST a HTTP GET) cez
URLConnection
: 1 bod
- Demonštrácia obojsmernej komunikácie (HTTP POST a HTTP GET) cez
- AsyncTask: korektné využitie
AsyncTasku
s primeraným zvážením okolností použitia: 1 bod- headless fragment: využitie headless fragmentu pre dlhotrvajúce úlohy s použitím AsyncTask: 1 bod
- notifikácie: 1 bod
- dialóg: 1 bod
- senzory: využitie niektorého senzora (GPS, krokomer): 1 bod za každý senzor
- fotoaparát/videokamera: 1 bod
- vlastné vykresľovanie náhľadu$$$? 1 bod
- zdieľanie: odosielanie či prijímanie dát do iných aplikácií: 1 bod za odosielanie, 1 za prijímanie
- zdieľania cez Android Easy Share$$$
- vlastná modifikácia ActionBaru$$$: obohatenie ActionBaru o vlastné komponenty: vyhľadávanie, špeciálne tlačidlá: 1 bod. (Bežné položky Action Baru reprezentované ako tlačidlá nie sú ohodnotené.)
- externá knižnica$$$ využitie externej Java knižnice v projekte: 1 bod. Použitie knižnice
AndroidCameraUtil
z cvičení nie je ohodnotené. - vlastný štýl aplikácie$$$: 1 bod
- synchronizácia$$$ s využitím synchronizačného API Androidu: 2 body
- kompletná lokalizácia aplikácie $$$ s využitím resources: 1 bod
- využitie dizajnového jazyka Material: 1 bod
- korektný beh aplikácie i na platforme Android 2.x: 2 body
- zverejnenie aplikácie na Google Play: 2 body
- zverejnenie zdrojových kódov na GitHub, BitBucket, SourceForge či inom verejnom úložisku zdrojových kódov: 1 bod
Vyjasnenia
- Črty označené $$ sú bonusové a priamo sa na stretnutiach nepreberali, alebo sa preberali v zjednodušenej forme. Pomôže Vám literatúra, dokumentácia k Androidu a StackOverflow.
- Technologické črty a funkcionalita musia viesť ku konzistentnej a logicky organizovanej aplikácii. Funkcionalita implementovaná bez ohľadu na zmysluplnosť v kontexte aplikácie nebude ocenené bodmi.
- Ak máte pochybnosti o hodnotení vašej črty, konzultujte to vopred mailom.
- Funkcionalita implementovaná s využitím cudzieho kódu bez uvedenia zdroja nebude ohodnotená bodmi.