KMI / TMA Tvorba mobilních aplikací. 9. seminář ZS 2016/2017 Středa 13:15-15:45

Podobné dokumenty
KMI / TMA Tvorba mobilních aplikací. 2. seminář ZS 2016/2017 Středa 13:15-15:45

KMI / TMA Tvorba mobilních aplikací

KMI / TMA. Tvorba mobilních aplikací. 8. seminář ZS 2017/2018 ČTVRTEK 13:15-15:45

KMI / TMA Tvorba mobilních aplikací


Programování II. Polymorfismus

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

KMI / TMA Tvorba mobilních aplikací. 6. seminář ZS 2016/2017 Středa 13:15-15:45

Programujeme v softwaru Statistica - příklady

Manuál pro NetDOGs práce s administrací

Semestrální práce 2 znakový strom

HLEDEJCENY.mobi. Obsah. Mobilní verze e-shopu. Důvody instalace

}w!"#$%&'()+,-./012345<ya

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Návod na tvorbu videa pro žáky ZŠ a SŠ zapojených do projektu,,miluji jídlo, neplýtvám! Realizováno za finanční podpory Královéhradeckého kraje

[APLIKACE PRO PŘEHRÁVÁNÍ VIDEA - PROJEKT MIAMI - SERVEROVÁ ČÁST]

Uživatelská příručka

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Obsah. Úvod 11. Vytvoření emulátoru 20 Vytvoření emulátoru platformy Android 4.4 Wearable 22 Spouštění aplikací na reálném zařízení 23

KMI / TMA Tvorba mobilních aplikací. 3. seminář ZS 2016/2017 Středa 13:15-15:45

SAP PROCUREMENT DAY SAP CLM (Contract Lifecycle Management) Správa životního cyklu kontraktů. smooth business flow

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MS Access formuláře a sestavy - vytváření Ing. Kotásek Jaroslav

Vzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec

Uživatelská příručka. Marushka Photo. aplikace firmy GEOVAP, spol. s r.o.

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

(c) Miroslav Balík, Ondřej Kroupa, Martin Pelant 11/29/ přednáška. Android projekt. Manifest. Activity. Uživatelské rozhraní (základy)

[BAL-MLP] Multiplayer

Programování II. Úvod do dědičnosti 2018/19

Návrhové vzory. Jakub Klemsa, Jan Legerský. 30. října Objektově orientované programování.

Programování II. Abstraktní třída Vícenásobná dědičnost 2018/19

Jazyk C# (seminář 6)

JSON API pro zjišťování cen MtG karet

Programování II. Návrh programu II

Programování II. Třídy a objekty (objektová orientovanost) 2018/19

Výčtový typ strana 67

Jak postavit webovou stránku pro mobilní zařízení. Lukáš Kokoška

Průvodce Mobilní agendou

GWT pro pokročilé. MoroSystems, s.r.o. Pavel Klobása. Senior Java Developer.

Návod k ovládání aplikace

ZÁVĚREČNÁ STUDIJNÍ PRÁCE dokumentace

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Programování II. Modularita 2017/18

ČÁST 1. Zahřívací kolo. Co je a k čemu je návrhový vzor 33

Bc. Martin Majer, AiP Beroun s.r.o.

D3 A7B36PDA Well being app

(Enterprise) JavaBeans. Lekce 7

Tabletová aplikace. Uživatelský manuál

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody

Programátorské večery. Tomáš Herceg Microsoft Student Partner

Programování II. Objektová dekompozice Třída jako objekt 2018/19

manuscriptorium Manuscriptorium v Evropě Manuscriptorium.com

KMI / TMA. Tvorba mobilních aplikací. 5. seminář ZS 2017/2018 ČTVRTEK 13:15-15:45

Návod pro založení individuálního studijního plánu (dále jen ISP)

KMI / TMA. Tvorba mobilních aplikací. 3. seminář ZS 2017/2018 ČTVRTEK 13:15-15:45

Testování Java EE aplikací Petr Adámek

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Ing. Jana Kalinová [ÚLOHA 35 TABULKY A OSTATNÍ VÝSTUPY]

Analýza a Návrh. Analýza

Design Patterns. Tomáš Herceg Microsoft MVP (ASP.NET)

Zpráva o zhotoveném plnění

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

František Batysta 19. listopadu Abstrakt

Manuál pro mobilní aplikaci Patron-Pro. verze pro operační systém Symbian

Obsah. Menu. ListView ListActivity Adapter. Ikonkové Rozšířené Submenu Kontextové. BaseAdapter ArrayAdapter CursorAdapter SimpleCursorAdapter 11/29/11

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

Obsah. Úvod 11 Zpětná vazba od čtenářů 13 Errata 14 Poznámka ke kódům 14

Založení individuálního studijního plánu (návod pro studenty)

DATA ARTICLE. AiP Beroun s.r.o.

10 Balíčky, grafické znázornění tříd, základy zapozdření

Základy programování (IZP)

Mobilní OneNet samoobsluha Návod k vytvoření zástupce na ploše

Nástroje na vývoj aplikací pro ios Trocha motivace na úvod Co budete potřebovat Co když nemáte k dispozici počítač s macos? Vývojové prostředí Xcode

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro administrátory. Verze 1.

MHD v mobilu. Instalace a spuštění. Co to umí

Uživatelská příručka

Fotogalerie pro redakční systém Marwel Obscura v. 2.0

Návod pro práci s SPSS

Cvičení č. 3. Sdílené prostředky a synchronizace Program Banka. 4 body

RELAČNÍ DATABÁZE ACCESS

Testování mobilní navigace NACESTY

WNC::WebNucleatCreator

JRm verze Aplikace. Instalace. Ovládání

Název: VY_32_INOVACE_PG4119 Tipy a triky, rozdíly mezi prohlížeči

VIZUÁLNÍ PØÍRUÈKA K APLIKACI PRO MOBILNÍ TELEFONY SE SYSTÉMEM ANDROID

ZÁLOHA A OBNOVA ABRA GEN

VAR-NET INTEGRAL Manuál správce VNI 5.1 VAR-NET INTEGRAL. verze 0.2. Manuál správce VNI 5.1

PB161 Programování v jazyce C++ Přednáška 4

návrhový vzor Singleton.

Stručný manuál práce s e-shopem fiktivnifirmy.cz: vložení zboží do e-shopu

Modul Zásoby IQ sestavy a jejich nastavení Materiál pro samostudium +1170

TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ

ver. 1.0 Manuál Evidence klíčů

Semináˇr Java X JDBC Semináˇr Java X p.1/25

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

MVVM pro desktop i web

Programování II. Návrh programu I 2018/19

Transkript:

KMI / TMA Tvorba mobilních aplikací 9. seminář 22.11.2016 ZS 2016/2017 Středa 13:15-15:45

OBSAH SEMINáře Fragmenty a to, co se nevlezlo jinam

Větší Displeje je třeba něco dělat? většina aplikací, které nejsou uzpůsobeny pro různé velikosti displejů, nevypadá na velkých displejích dobře UI prvky se roztáhnou a UI vypadá najednou prázdně

Větší Displeje je třeba něco dělat?

Větší Displeje je třeba něco dělat? často je i lepší, pokud se aplikace chová na tabletu jinak než na telefonu jeden z přístupů je ten, že budeme brát displej tabletu jako více menších obrazovek spousta aplikací implementuje tzv. master-detail pattern

Větší Displeje je třeba něco dělat?

Větší Displeje je třeba něco dělat?

FRAGMENTY řešení? od Android 3.0 je k dispozici Fragment API, pomocí kterého je možné implementovat takové chování fragmenty jsou znovupoužitelné části UI, které je možné vkládat do aktivit najednou neplatí 1 aktivita = 1 obrazovka v extrémním případě může aplikace obsahovat pouze 1 aktivitu + X fragmentů

FRAGMENTY řešení? Activity1 FragmentA Activity2 FragmentB

FRAGMENTY řešení? Activity1 FragmentA FragmentB

FRAGMENTY low-level fragmenty jsou velmi flexibilní, master-detail pattern je jen jeden z mnoha použití fragmentů s flexibilitou fragmentů však roste náročnost na implementaci funkčního UI implementace často závisí na správné architektuře a oddělení UI od logiky

FRAGMENTY definice fragmentů fragmenty je možné definovat přímo v layoutu nebo je z aktivity načítat dynamicky podle situace dynamické UI s fragmenty spočívá ve vytvoření layoutu, který má FrameLayout na místech, kam přijde fragment

FRAGMENTY dynamické přidávání fragmentů dynamické přidávání zajišťuje FragmentManager změny v UI s fragmenty probíhají v transakcích, lze provést více změn v jeden okamžik

FRAGMENTY Stručný popis master-detail vytvoříme dva layouty pro hlavní aktivitu: na výšku 1x FrameLayout na šířku 2x FrameLayout vedle sebe v aktivitě zjistíme, kolik máme k dispozici fragmentů a podle toho načteme buď pouze master fragment nebo i detail fragment logiku pro zobrazení master/detail zajišťují fragmenty

FRAGMENTY Stručný popis master-detail pro zobrazení jiného detail fragment z master fragmentu potřebujeme mít přístup z master fragmentu do aktivity kontrakt ve formě rozhraní, které zajišťuje provedení akce na základě layoutu, tj. zobrazení detailu v detail fragmentu nebo spuštění aktivity s detail fragmentem

DEMO time pozn. není to jen tak :(

Vlastní adaptér když nám tostring() nestačí

vlastní adaptér když nám tostring() nestačí prostředníka mezi daty a seznamem zajišťuje adaptér, v našem případě to byl jednoduchý ArrayAdapter, který na místě v jednotlivých řádcích seznamu zobrazoval výstup metody tostring() to však často nestačí, např. když chceme mít v řádku složitější layout

vlastní adaptér když nám tostring() nestačí řešení je vytvořit potomka ArrayAdapter, který bude mít kolekci v členské proměnné pro základní použití přepíšeme metody: getcount: vrací počet položek v kolekci getitem: vrátí položku na předané pozici getview: vrátí View pro danou pozici konstruktoru na místě layoutu předáme 0, protože vytvoření layout si řešíme sami v getview

vlastní adaptér když nám tostring() nestačí implementace getview: získáme si LayoutInflater a načteme View z layoutu získáme UI prvky z layout (findviewbyid) a upravíme je dle položky, kterou získáme pomocí přepsané getitem

vlastní adaptér když nám tostring() nestačí implementace getview: v produkčních aplikacích je potřeba použít ViewHolder pattern, který zajistí plynulé scrollování seznamu při složitých layoutech a mnoha položkách v současné době se doporučuje používat RecyclerView: ListView + Adapter + něco navíc

Knihovny jak nevynalézat kolo

knihovny jak nevynalézat kolo nástroj Gradle pro sestavení aplikace dokáže získat knihovny třetích stran z centrálního repozitáře jcenter v build.gradle modulu stačí do sekce dependencies přidat položku compile, např. pro GSON: a následně v toolbaru Sync with Gradle

ÚKOL 9. semináře 1) přidat do seznamu ikonku znázorňující provedení úkolu 2) přidat GSON knihovnu pro práci s JSON a provést pomocí ní deserializaci TODO položek z URL namísto ručního získání vlastností Tipy pro řešení: 1) objekt todo položky musí mít stejné jména členských proměnných, v opačném případě je nutné k proměnným přidat anotaci @SerializedName(? }, kde? je jméno vlastnosti v JSON 2) dokumentace k použití GSON je na https://sites.google.com/site/gson/gson-user-guide (hledejte Object Examples deserialization nebo ještě lépe přímo Array Examples deserialization)

Otázky Ptejte se!