7. STYLOVÁNÍ A SDÍLENÍ DAT
|
|
- Milan Pravec
- před 8 lety
- Počet zobrazení:
Transkript
1 Programování pro operační systém Android (BI-AND) (c) Autor a garant: M. Havryluk, Spolupráce: M. Balík, O. Kroupa, M. Pelant 7. STYLOVÁNÍ A SDÍLENÍ DAT BI-AND
2 přednáška Stylování Themování 9-patch Sdílení dat Shared Preferences Android Interface Definition Language
3 Vzhled aplikace Každý výrobce má většinou vlastní uživatelské prostředí Nahrazení stock/nativního vzhledu widgetů a dalších prvků TouchWiz, HTC Sense, Timescape, atd. Není možné se spolehnout na přítomnost nativních prvků Holo Theme přítomné ve všech zařízení s Androidem 4.0+ Obtížné přizpůsobení vzhledu aplikace Vytvořit vlastní vzhled widgetů, dialogů a dalších prvků Nelze snadno poznat, jaká úprava UI je použita Používat prvky z Holo Theme nebo starší nativní prvky Úprava vzhledu bývá většinou velmi náročná
4 Stylování a themování vzhledu aplikace Styl Sbírka vlastností, která specifikuje vzhled View či Window <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textcolor="#00ff00" android:typeface="monospace" android:text="@string/hello" /> DRY Don t repeat yourself <TextView style="@style/codefont" android:text="@string/hello" /> Theme Styl aplikovaný na activitu či celou aplikaci Vlastnosti layout_width, layout_height, textcolor a typeface je možné přesunout do vlastního stylu CodeFont
5 Definování stylu Vytvoříme XML soubor ve složce res/values Kořenový tag musí být <resources> Zvolíme název a případně rodiče stylu, od kterého se má dědit Nadefinujeme vlastní hodnoty k příslušným názvům vlastností ADT plugin pro Eclipse podporuje extrahování stylu <?xml version="1.0" encoding="utf-8"?> <resources> <style name="codefont" parent="@android:style/textappearance.medium"> <item name="android:layout_width">fill_parent</item> <item name="android:layout_height">wrap_content</item> <item name="android:textcolor">#00ff00</item> <item name="android:typeface">monospace</item> </style> </resources>
6 Vlastnosti stylů Styl může být použitý na Widget Container Vždy však ovlivní pouze prvek, na který je použit Např. styl RedText použitý na LinearLayout neovlivní potomka TextView Atributy je možné najít např. Android Javadoc pod XML Attributes Inherited XML Attributes R.attr Android ignoruje neplatné styly Není vyvolána žádná compile-time ani run-time výjimka
7 Dědičnost stylů Chceme konkrétního rodiče (např. Theme.Holo) s částečně jinými vlastnostmi Přidáme nebo změníme požadované vlastnosti U zbývajících vlastností jsou použity vlastnosti rodiče Používá se atribut parent nebo tečková notace <style name="greentext parent="@android:style/textappearance" > <item name="android:textcolor">#00ff00</item> </style> <style name="mytext.green > <item name="android:textcolor">#00ff00</item> </style> Rozdíl?
8 Themování příklad <resources> <style name="theme parent="android:theme"></style> <style name="theme.translucent"> <item <item name="android:windownotitle">true</item> <item name="android:colorforeground">#fff</item> </style> <style name="theme.transparent"> <item <item name="android:windownotitle">true</item> <item name="android:colorforeground">#fff</item> </style> <style name="textappearance.theme.plaintext" parent="android:textappearance.theme"> <item name="android:textstyle">normal</item> </style> </resources> Theme použít u <activity> nebo <application>
9 Druhy atributů Typy atributů (format) string fraction enum flag reference (na jiný resource) color boolean dimension float integer Lze volit více druhů současně Vlastní jsou definovány pomocí <declare-styleable> (name + format) Důležité pro vytváření vlastních widgetů Více v 11. přednášce
10 Používání atributu reference Pokud použití stylů přímo v XML layoutu nechceme být vázáni na konkrétní styl, ale styl použitý až podle daného theme Ve složce values vytvořit soubor attrs.xml <attr name="texttitle format="reference > Atribut se vyhodnotí až v run-time Danou referenci použít v XML layoutu pomocí?název Nastavit hodnoty (konkrétní styly) pro atributy v daných themes
11 Používání atributů Obdobně lze použít atributy i v jiném formátu (např. integer) a použít pro změnu drawable (např. src u Button) Lze používat i atributy přímo z operačního systému <ProgressBar style="?android:attr/progressbarstylehorizontal > Bude použit styl, který je vázán na aktuální theme dané verze OS
12 Draw 9-patch (draw9patch) WYSIWYG editor pro tvorbu 9-patch 9-patch drawable PNG obrázek Má tzv.,,patche v nich se obrázek roztahuje a škáluje Vhodné pro různé velikosti obrazovek pro Pozadí tlačítek Rámečky Mnohé další prvky Další druhy Drawables na 11. přednášce
13 Ukázka 9-patch pro EditText Je počet patches minimální?
14 Data Persistentní (trvalá) Data musejí být dostupná vždy (i po restartu aplikace) Nepersistentní (netrvalá) Data potřebná v jedné instanci aplikace
15 Možnosti sdílení persistentních data Soubory Databáze Content Provider Shared Preferences
16 Shared Preferences android.content.sharedpreferences Třída pro ukládání a načítání trvalých párů klíč-hodnota Uložení jakéhokoli primitivního typu boolean, float, int, long, String Data se uchovávají v XML Umístění: /data/data/<jméno aplikace>/shared_prefs/ Příklad XML s uloženými SharedPreferences: 1. <?xml version='1.0' encoding='utf-8' standalone='yes'?> 2. <map> 3. <long name="longkey" value="1" /> 4. <boolean name="booleankey" value="false" /> 5. <string name="stringkey">text</string> 6. </map>
17 Shared Preferences Instanci můžeme získat několika metodami PreferenceManager. getdefaultsharedpreferences(context); Vrátí výchozí SharedPreferences společné pro všechny komponenty aplikace Context.getSharedPreferences(name, mode); Vrátí SharedPreferences identifikované parametrem name
18 Shared Preferences Activity.getPreferences(mode); Vrátí SharedPreferences unikátní pro danou aktivitu Alternativa k volání metody getsharedpreferences se jménem třídy v prvním parametru Oprávnění můžeme určit parametrem mode MODE_PRIVATE MODE_WORLD_WRITEABLE MODE_WORLD_READABLE Přístup z jiné aplikace pomocí 1. createpackagecontext("cz.cvut.and", 0);
19 Shared Preferences ukládání dat K editování a následnému uložení se používá SharedPreferences.Editor Instance se získá zavoláním edit na SharedPreferences Samotné uložení se provede příkazem commit 1. SharedPreferences sp =getpreferences(mode_private); 2. Editor ed = sp.edit(); 3. ed.putstring("klic", "hodnota"); 4. ed.putfloat("lastfloat", 1f); 5. ed.putint("wholenumber", 2); 6. ed.putlong("anumber", 3l); 7. ed.putboolean("istrue", true); 8. ed.commit(); apply() vs commit()
20 Shared Preferences načítání dat Pro každý typ, který může být v SharedPreferences uložen, existuje getter, který přijímá dva parametry: Klíč Defaultní hodnotu, která se vrátí, pokud záznam s daným klíčem neexistuje Pro zjištění, jestli hodnota s daným klíčem existuje, se může použít metoda SharedPreferences.contains(key); 1. SharedPreferences sp = getpreferences(mode_private); 2. String text = sp.getstring("text", ""); 3. int number = sp.getint("wholenumber", 0); 4. float lastfloat = sp.getfloat("lastfloat", 0f); 5. long anumber = sp.getlong("anumber", 0); 6. boolean istrue = sp.getboolean("istrue", false);
21 Možnosti sdílení nepersistentních dat Intent Třída android.app.application Veřejná statická proměnná nebo metoda Singleton object Service (android.app.service) Systém ji může automaticky zabít pouze v extrémních situacích Vhodná pouze pro zpracování déle trvajících operací Bundle Data jsou ztracena po ukončení aplikace
22 Sdílení dat přes Intent putextra(klíč, hodnota) Klíč String Hodnota Primitivní datové typy Objekty implementující java.io.serializable Většina objektů Java a Android knihovny mají již implementováno Rychlé na implementaci android.os.parcelable Rychlejší zpracování Časové náročnější na implementaci Data je možné poslat activitě, která běžící activitu spustila startactivityforresult(intent intent, int requestcode)
23 Posílání dat přes Intent - příklad ActivityA.java Intent intent = new Intent(getApplicationContext(), ActivityB.class); intent.putextra("cz.cvut.fit.secret", "hello world"); startactivity(intent); ActivityB.java Bundle extras = getintent().getextras(); if (extras!= null) { String string = extras.getstring("cz.cvut.fit.secret"); }
24 Parcelable - příklad public class ParcelableData implements Parcelable private Date date; private String message; private double value; public Date getdate() { return date; } public String getdetails() { return message; } public double getmagnitude() { return value; } public ParcelableData(Date date, String message, double value) { this.date = date; this.message = message; this.value = value; }
25 Parcelable pokračování příkladu Data zapíšeme do kontejneru Parcel public void writetoparcel(parcel out, int flags) { out.writelong(date.gettime()); out.writestring(message); out.writedouble(value); Data vytvoříme z kontejneru Parcel } private ParcelableData(Parcel in) { date = new Date(); date.settime(in.readlong()); message = in.readstring(); value = in.readdouble(); }
26 Parcelable pokračování příkladu public static final Parcelable.Creator<ParcelableData> CREATOR = new Parcelable.Creator<ParcelableData>() { public ParcelableData createfromparcel(parcel in) { return new ParcelableData(in); } public ParcelableData[] newarray(int size) { return new ParcelableData[size]; } }; Použito např. pro potomky třídy public int describecontents() { return 0; } Generátor instance ParcelableData
27 Sdílení pomocí Application Výhody Komplexní kontrola nad správou životního cyklu dat Přehledná inicializace a destrukce zdrojů Centralizovaný přístup, kam může získat přístup jakákoliv Activita či Service Nevýhoda Data jsou dostupná pouze v rámci aplikace
28 Sdílení pomocí Application Do AndroidManifest.xml k elementu <application> je nutno přidat android:name=".globalstate" Sdílený objekt s potřebnými proměnnými a metodami public class GlobalState extends Application { private String text; public String gettext() { Použití vlastní třídy Application return text; } public void settext(string testme) { this.text = testme; } } Přístup ke sdílenému objektu GlobalState globalstate = (GlobalState) getapplication();
29 Singleton Velmi podobné sdílení přes Application Vlastní a obtížnější kontrola životního cyklu dat Obtížnější pro testování Používat nejenom jako úschovnu dat
30 Singleton - příklad public class SingletonObject { private static SingletonObject instance = null; private String text; public static synchronized SingletonObject getinstance() { if (instance == null) { instance = new SingletonObject(); } return instance; } public void settext(string text) { this.text = text; } public String gettext() { return text; } } SingletonObject.getInstance().setText("hello world");
31 Android Interface Definition Language (AIDL) Umožňuje definovat programové rozhraní, přes které komunikuje klient a služba za použití meziprocesové komunikace (Interprocess Communication - IPC) Nástavba IPC je právě AIDL Usnadňuje práci s nízko úrovňovým protokolem V Androidu proces nemůže sdílet paměť s jiným procesem Objekty musí být rozloženy na jednoduché datové typy (příp. Parcelable), s nimiž systém umí pracovat Nutné vytvořit interface (.aidl), který bude určovat dostupné služby a zde popsat signaturu metod
32 Android Interface Definition Language (AIDL) AIDL umí pracovat s: Všemi primitivními datovými typy v Javě String a CharSequence List vždy použit/vrácen ArrayList Map - vždy použit/vrácen HashMap List a Map může obsahovat pouze ostatní datové typy podporované AIDL Postup implementace: 1. Vytvořit.aidl s definicí interface 2. Implementovat daný interface v Javě 3. Implementovat Service pro předání Binderu
33 Další zdroje patch-tutorial
5. přednáška. Stylování a themování Themování Android Interface Definition Language Data Sdílení dat 11/29/11
5. přednáška Stylování a themování Themování Android Interface Definition Language Data Sdílení dat 2 3 Stylování a themování vzhledu aplikace Styl Sbírka vlastností, která specifikuje vzhled a formát
Začínáme s vývojem pro Android
Pavel Petřek CTO Praha, 14. dubna 2010 Kdo je kdo Pavel Petřek Vývojář, přednášející, entusiasta světa chytrých telefonů (a velký jedlík) Spoluzakladatel Inmite Inmite Vývoj pro chytré telefony (Android:
(c) Miroslav Balík, Ondřej Kroupa, Martin Pelant 11/29/ přednáška. Android projekt. Manifest. Activity. Uživatelské rozhraní (základy)
2. přednáška Android projekt Manifest Activity Uživatelské rozhraní (základy) 2 Android Projekt - src Zdrojový kód v Javě Unikátní jméno balíčku Konvence: [země].[autor].[jméno aplikace] např.: cz.cvut.helloworld
14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
Bridge. Známý jako. Účel. Použitelnost. Handle/Body
Bridge Bridge Známý jako Handle/Body Účel odděluje abstrakci (rozhraní a jeho sémantiku) od její konkrétní implementace předchází zbytečnému nárůstu počtu tříd při přidávání implementací používá se v době
Programování v Javě I. Leden 2008
Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory
Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky
JAVA Třídy Definice třídy úplná definice [public] [abstract] [final] class Jmeno [extends Predek] [impelements SeznamInterfacu] {... // telo tridy public veřejná třída abstract nesmí být vytvářeny instance
Programování v Javě I. Únor 2009
Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Únor 2009 Radek Kočí Seminář Java Programování v Javě (1) 1/ 44 Téma přednášky Datové typy Deklarace třídy Modifikátory
Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky
Google Web Toolkit Martin Šurkovský, SUR096 Vysoká škola Báňská - Technická univerzita Ostrava Katedra informatiky 29. března 2010 Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010
typová konverze typová inference
Seminář Java Programování v Javě II Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Programování v Javě (2) 1/ 36 Téma přednášky Rozhraní: použití, dědičnost Hierarchie
UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/
UJO Framework revoluční architektura beans verze 0.80 http://ujoframework.org/ Pavel Pone(c), září 2008 Historie rok 2004 upravené objekty z frameworku Cayenne nevýhodou byla špatná typová kontrola rok
Obsah. Životní cyklus activity Context Intent Spouštění aktivit Interakce s uživatelem. Toast. (c) Miroslav Balík, Ondřej Kroupa, Martin Pelant
Obsah Životní cyklus activity Context Intent Spouštění aktivit Interakce s uživatelem Toast 2 4 oncreate(bundle savedinstancestate) { } Zavolá se při každém vytvoření activity (i při otočení displeje)
3. ŽIVOTNÍ CYKLUS ACTIVITY
23.2.2013 1 Programování pro operační systém Android (BI-AND) (c) Autor a garant: M. Havryluk, Spolupráce: M. Balík, O. Kroupa, M. Pelant 3. ŽIVOTNÍ CYKLUS ACTIVITY BI-AND 23.2.2013 2 Obsah Životní cyklus
KMI / TMA Tvorba mobilních aplikací. 6. seminář ZS 2016/2017 Středa 13:15-15:45
KMI / TMA Tvorba mobilních aplikací 6. seminář 2.11.2016 ZS 2016/2017 Středa 13:15-15:45 OBSAH SEMINáře Ukládání dat Ukládání dat Jaké jsou možnosti? SharedPreferences jednoduchá data databáze SQLite relační
Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky
JAVA Třídy Definice třídy úplná definice [public] [abstract] [final] class Jmeno [extends Predek] [impelements SeznamInterfacu] {... // telo tridy public veřejná třída abstract nesmí být vytvářeny instance
OMO. 4 - Creational design patterns A. Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC
OMO 4 - Creational design patterns A Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC Ing. David Kadleček, PhD. kadlecd@fel.cvut.cz, david.kadlecek@cz.ibm.com 1 Creational
Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
NetBeans platforma Aplikační programování v Javě (BI-APJ) - 7 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme
1. Programování proti rozhraní
1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
20. Projekt Domácí mediotéka
Projekt Domácí mediotéka strana 211 20. Projekt Domácí mediotéka 20.1. Základní popis, zadání úkolu V projektu Domácí mediotéka (Dome) se jednoduchým způsobem evidují CD a videa. Projekt je velmi jednoduchý
Java a XML. 10/26/09 1/7 Java a XML
Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis
Android 100% Java telefon. Petr Musil
Android 100% Java telefon Petr Musil 1 Vytvoření aplikace Prostředí pro vývoj Android SDK http://developer.android.com/sdk/index.html ADT plugin pro Eclipse http://developer.android.com/sdk/eclipse-adt.html
Abstraktní datové typy: zásobník
Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Programování v C++ 2, 4. cvičení
Programování v C++ 2, 4. cvičení statické atributy a metody, konstruktory 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Přístupová práva
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
KMI / TMA Tvorba mobilních aplikací
KMI / TMA Tvorba mobilních aplikací 5. seminář 17.10.2018 ZS 2018/2019 STŘEDA 13:15-15:45 OBSAH SEMINáře BARVY, GRAFIKA, STYLY/TÉMATA, ŘETĚZCE, TOOLBAR MENU BARVY DRY = Dont Repeat Yourself v souboru /res/values/colors.xml
KMI / TMA Tvorba mobilních aplikací. 3. seminář ZS 2016/2017 Středa 13:15-15:45
KMI / TMA Tvorba mobilních aplikací 3. seminář 12.10.2016 ZS 2016/2017 Středa 13:15-15:45 OBSAH SEMINáře vztah aktivit a layoutů, views a layouty podrobně, přizpůsobení se HW HIERARCHIE VIEWS Co všechno
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Uživatelské rozhraní. Layouty FrameLayout LinearLayout RelativeLayout TableLayout ScrollView Taby Dialogy ViewFlipper 11/29/11
Uživatelské rozhraní Layouty FrameLayout LinearLayout RelativeLayout TableLayout ScrollView Taby Dialogy ViewFlipper 2 FrameLayout Nejjednodušší a nejzákladnější layout Prvky Nelze nijak pozicovat Všechny
Výčtový typ strana 67
Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce
Algoritmizace a programování
Algoritmizace a programování Struktura programu Vytvoření nové aplikace Struktura programu Základní syntaktické elementy První aplikace Verze pro akademický rok 2012/2013 1 Nová aplikace NetBeans Ve vývojovém
KMI / TMA. Tvorba mobilních aplikací. 3. seminář ZS 2017/2018 ČTVRTEK 13:15-15:45
KMI / TMA Tvorba mobilních aplikací 3. seminář 12.10.2017 ZS 2017/2018 ČTVRTEK 13:15-15:45 OBSAH SEMINáře vztah aktivit a layoutů, views a layouty podrobně, přizpůsobení se HW HIERARCHIE VIEWS Co všechno
Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky
JAVA Třídy Definice třídy úplná definice [public] [abstract] [final] class Jmeno [extends Predek] [impelements SeznamInterfacu] {... // telo tridy public veřejná třída abstract nesmí být vytvářeny instance
Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí
Kolekce obecně Seznamy a iterátory doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Kolekce ::= homogenní sada prvků
ADT/ADS = abstraktní datové typy / struktury
DT = datové typy obor hodnot, které může proměnná nabývat, s operacemi na tomto oboru určen: obor hodnot + výpočetní operace např. INT = { 2 147 483 648 až +2 147 483 647} + {+,,*,/,} ADT/ADS = abstraktní
Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo
Datové typy v Javě Tomáš Pitner, upravil Marek Šabo Úvod k datovým typům v Javě Existují dvě základní kategorie datových typů: primitivní a objektové Primitivní v proměnné je uložena přímo hodnota např.
8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
Teoretické minimum z PJV
Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov
Programátorská příručka
KAPITOLA 1. PROGRAMÁTORSKÁ PŘÍRUČKA Kapitola 1 Programátorská příručka 1.1 Úvod 1.1.1 Technologie Program je psaný v jazyce Java 1.7. GUI je vytvářeno pomocí knihovny SWT. (http://eclipse.org/swt/) Pro
Jazyk C# (seminář 3)
Jazyk C# (seminář 3) Pavel Procházka KMI October 8, 2014 Motivace Největší využití v programování okenních aplikací a GUI knihoven. Data reprezentujeme pomocí objektů (tříd), máme tedy ucelený pohled na
Android za hranicemi Hello World
Android za hranicemi Hello World Pavel Petřek CTO Praha, 18. října 2009 Kdo je kdo Pavel Petřek Vývojář, entusiasta přes chytré telefony, přednášející Spoluzakladatel Inmite Inmite Vývoj pro chytré telefony
Fronta (Queue) Úvod do programování. Fronta implementace. Fronta implementace pomocí pole 1/4. Fronta implementace pomocí pole 3/4
Fronta (Queue) Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Fronta uplatňuje mechanismus přístupu FIFO first
Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth
Evropský sociální fond. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace Ing. Ondřej Guth Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze
PREPROCESOR POKRAČOVÁNÍ
PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,
První kapitola úvod do problematiky
První kapitola úvod do problematiky Co je to Flex Adobe Flex je ActionSript (AS) framework pro tvorbu Rich Internet Aplications (RIA), tedy knihovna AS tříd pro Flash. Flex používáme k vytvoření SWF souboru
Seminář Java IV p.1/38
Seminář Java IV Seminář Java IV p.1/38 Rekapitulace Deklarace tříd Proměnné, metody, konstruktory, modifikátory přístupu Datové typy primitivní, objektové, pole Dědičnost Řídící konstrukce Podmínky, cykly
JAVA Android Java, letní semestr
JAVA Android Přehled kompletní platforma pro mobilní zařízení založená na Linuxu původně vyvíjen firmou Android, Inc. 2005 koupeno Googlem 2007 Open Handset Alliance Google, výrobci HW, výrobci SW,...
Dědění, polymorfismus
Programování v jazyce C/C++ Ladislav Vagner úprava Pavel Strnad Dědění. Polymorfismus. Dnešní přednáška Statická a dynamická vazba. Vnitřní reprezentace. VMT tabulka virtuálních metod. Časté chyby. Minulá
Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)
Příklad aplikace Klient/Server s Boss/Worker modelem (informativní) Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze A0B36PR2 Programování 2 Jan Faigl, 2015 A0B36PR2
Třídy, polymorfismus. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické
Třídy, polymorfismus A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické Polymorfizmus ~ vícetvarost Polymorfizmus základní vlastnost objektového přístupu základní princip polymorfismu:
Generické programování
Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =
Jazyk C# (seminář 6)
Jazyk C# (seminář 6) Pavel Procházka KMI 29. října 2014 Delegát motivace Delegáty a události Jak docílit v C# funkcionální práce s metodami v C je to pomocí pointerů na funkce. Proč to v C# nejde pomocí
Stromy. Příklady. Rekurzivní datové struktury. Základní pojmy
Základní pojmy Stromy doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Graf uzly hrany orientované / neorientované Souvislý
IB111 Programování a algoritmizace. Objektově orientované programování (OOP)
IB111 Programování a algoritmizace Objektově orientované programování (OOP) OP a OOP Objekt Kombinuje data a funkce a poskytuje určité rozhraní. OP = objektové programování Vše musí být objekty Např. Smalltalk,
Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo
Statické proměnné a metody Tomáš Pitner, upravil Marek Šabo Úvod Se statickou metodou jsme se setkali už u úplně prvního programu - Hello, world! public class Demo { public static void main(string[] args)
Seminář Java II p.1/43
Seminář Java II Seminář Java II p.1/43 Rekapitulace Java je case sensitive Zdrojový kód (soubor.java) obsahuje jednu veřejnou třídu Třídy jsou organizovány do balíků Hierarchie balíků odpovídá hierarchii
Třídy. Instance. Pokud tento program spustíme, vypíše následující. car1 má barvu Red. car2 má barvu Red. car1 má barvu Blue.
23. Třídy, generické třídy, instance, skládání, statické metody a proměnné. Zapouzdření, konstruktory, konzistence objektu, zpřístupnění vnitřní implementace, modifikátory public a private. Polymorfismus,
Obsah. LayoutInflater. UI model KeyEvent View Tvorba vlastních komponent Canvas Matrix Vlastní EditText
Obsah UI model KeyEvent View Tvorba vlastních komponent Canvas Matrix Vlastní EditText LayoutInflater Dotykové události MotionEvent Dynamické přidání View 2 UI model Androida View Základní stavební kámen
Principy objektově orientovaného programování
Principy objektově orientovaného programování Třídy a objekty doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz C E T
Vláknové programování část V
Vláknové programování část V Lukáš Hejmánek, Petr Holub {xhejtman,hopet@ics.muni.cz Laboratoř pokročilých síťových technologií PV192 2014 03 25 1/25 Přehled přednášky Paměťový model Javy GUI v Javě Vlákna
Vytváření a použití knihoven tříd
Vytváření a použití knihoven tříd doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Prostory jmen motivace spolupráce
Java - řazení objektů
Java - řazení objektů Kapitola seznamuje se základními principy řazení objektů Klíčové pojmy: Přirozené řazení, absolutní řazení, ideální porovnávatelná třída ŘAZENÍ OBJEKTŮ U objektů není příliš jasné,
Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu
Procesy, vlákna Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu Implementace vláken one-to-one o implementace na úrovni jádra o každé vlákno je pro
Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006
Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006 Lekce 1 Jazyk Java Tento projekt je spolufinancován Evropským sociálním fondem
Neměnné objekty. Tomáš Pitner, upravil Marek Šabo
Neměnné objekty Tomáš Pitner, upravil Marek Šabo Neměnné objekty Neměnný (immutable) objekt nemůže být po jeho vytvoření modifikován Bezpečně víme, co v něm až do konce života bude Tudíž může být souběžně
7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd
7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd Algoritmizace (Y36ALG), Šumperk - 7. přednáška 1 Třída jako zdroj funkcionality Třída v jazyku Java je programová jednotka tvořená
11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9
Obsah přednášky 9 Základy programování (IZAPR, IZKPR) Přednáška 9 Základy dědičnosti, přístupová práva Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií
boolean hasnext() Object next() void remove() Kolekce
11. Kontejnery Kontejnery Kontejnery jako základní dynamické struktury v Javě Kolekce, iterátory (Collection, Iterator) Seznamy (rozhraní List, třídy ArrayList, LinkedList) Množiny (rozhraní Set, třída
Vývoj multiplatformní aplikace v Qt
Vývoj multiplatformní aplikace v Qt z pohledu vývoje Datovky Karel Slaný karel.slany@nic.cz 13. 11. 2015 Obsah Co je Qt Nástroje Qt Koncepty Qt Problémy při vývoji Datovky Balíčkování aplikace Datovka
Úvod do programování - Java. Cvičení č.4
Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení
Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
Dědičnost (inheritance)
Dědičnost (inheritance) Úvod Umožňuje objektům převzít (zdědit) členy jiných objektů a pouze je rozšířit o Auto: lze odvodit Vztah je osobní auto, cisterna jsou auta Základní pojmy Bázová třída (rodič)
Objektové programování
Objektové programování - přináší nové možnosti a styl programování - vytváří nový datový typ, který umí vše co standardní datové typy + to co ho naučíme - překladač se k tomuto typu chová stejně jako k
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
RMI - Distribuované objekty v Javě
Vysoká škola báňská - Technická univerzita Ostrava 30. března 2009 Osnova Co je to RMI? 1 Co je to RMI? 2 Vnější pohled Vrstvy RMI Stub & Skeletons Layer Remote Reference Layer Transport Layer Pojemnování
Abstraktní třída a rozhraní
Abstraktní třída a rozhraní Někdy se může stát, zejména při psaní v hierarchické struktuře hodně nadřazených tříd, že tušíme, že bude ve zděděných třídách vhodné použít nějakou metodu. Tuto metodu ještě
Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní
Základy jazyka C# doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah přednášky Architektura.NET Historie Vlastnosti
X-komponenty 3.1. Uživatelská příručka. J. Kocman, V. Trojan
X-komponenty 3.1 Uživatelská příručka Napsal: J. Kocman, V. Trojan Verze: 3.1 Ze dne: 01.11.2017 Chyba! Nenalezen zdroj odkazů. Chyba! Nenalezen zdroj o dkazů. Soupis změn Výchozí verze i Chyba! Nenalezen
Zápis programu v jazyce C#
Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač
Příklad zobrazení toastu s vlastním designem
Notifikace, alarmy KAPITOLA 6 V této kapitole: Notifikace Alarmy Notifikace Notifikace jsou zprávy, někdy i rozsáhlejší, které potřebuje aplikace ve vhodné situaci zobrazit uživateli mimo běžné uživatelské
Návrhové vzory. Jakub Klemsa, Jan Legerský. 30. října Objektově orientované programování.
Jakub Klemsa Jan Legerský Objektově orientované programování klemsjak@fjfi.cvut.cz jan.legersky@gmail.com 30. října 2012 návrhový vzor (design pattern) obecné řešení problému, které se využívá při návrhu
Správa paměti. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta, 2016
Správa paměti Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta, 2016 Objektové modelování, B36OMO 10/2016, Lekce 2 https://cw.fel.cvut.cz/wiki/courses/xxb36omo/start
Integrace OpenOffice.org a Javy. CZJUG, , Robert Vojta
Integrace OpenOffice.org a Javy CZJUG, 15.12.2008, Robert Vojta Obsah Část 1 - Teorie Úvodní informace, definice pojmů Dokumentace, Java Language Binding Pomocné nástroje Část 2 - Praktické ukázky Lokální
Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15
Platforma Java Objektově relační mapování II Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, 2016 1 / 15 Dotazování vyhledání objektu podle
Čipové karty Lekařská informatika
Čipové karty Lekařská informatika Následující kód je jednoduchou aplikací pro čipové karty, která po překladu vytváří prostor na kartě, nad kterým jsou prováděny jednotlivé operace a do kterého jsou ukládány
Návrhové vzory Design Patterns
Návrhové vzory Design Patterns doc. Ing. František Huňka, CSc. Ostravská univerzita PřF 1 Definice vzoru Každý vzor popisuje problém, který nastává opakovaně v našem prostředí, a potom popisuje podstatu
Návrhové vzory OMO, LS 2014/2015
Návrhové vzory OMO, LS 2014/2015 Motivace Cílem objektového návrhu je strukturu aplikace navrhnout tak, aby splňovala následující kritéria: snadná rozšiřitelnost účelnost testovatelnost dokumentovatelnost
Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.
Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat. 1. Odkrokujte následující program a s použitím notace z přednášky popište stav paměti
Java - výjimky. private void vstup() throws IOException {... }
Java - výjimky Tato kapitola ukazuje na několika příkladech práci s výjimkami v Javě. Klíčové pojmy: Výjimka, hierarchie výjimek, zachytávání výjimek, blok try-catch, tvorba vlastních výjimek, propagace
Java Výjimky Java, zimní semestr
Java Výjimky 1 Výjimky (exceptions) hlášení a ošetření chyb výjimka signalizuje nějaký chybový stav výjimka = instance třídy java.lang.throwable dvě podtřídy java.lang.error a java.lang.exception konkrétní
(c) Miroslav Balík, Ondřej Kroupa, Martin Pelant 11/29/ přednáška. Práce na pozadí. Služby. Notifikace
9. přednáška Práce na pozadí Služby Notifikace 2 3 Práce na pozadí Jeden z hlavních rozdílů oproti iphonu je možnost provádět téměř libovolné úkony na pozadí Vlákna Používají se ke spouštění kódu na pozadí,
Zapouzdření. Tomáš Pitner, upravil Marek Šabo
Zapouzdření Tomáš Pitner, upravil Marek Šabo Co je zapouzdření Naprosto zásadní vlastnost objektového přístupu, možná nejzásadnější Jde o spojení dat a práce s nimi do jednoho celku - objektu Data jsou
JAVA. Další jazyky kompilovatelné do Java byte-code
JAVA Další jazyky kompilovatelné do Java byte-code Přehled Scala objektový a funkcionální jazyk Closure funkcionální jazyk dialekt Lispu Groovy skritpovací jazyk Kotlin nová Java Jython Java implementace
Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody
Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Dynamická alokace paměti Jazyky C a C++ poskytují programu možnost vyžádat si část volné operační paměti pro
Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39
Programování v C# Hodnotové datové typy, řídící struktury Petr Vaněček 1 / 39 Obsah přednášky Referenční datové typy datové položky metody přístupové metody accessory, indexery Rozhraní Pole 2 / 39 Třídy
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
Úvod 11 KAPITOLA 1 Nástroje pro vývoj 13 Co budete potřebovat 13 Instalace programovacího jazyka Java 13 Java 8 14 Vývojové prostředí Eclipse 15 Instalace a konfigurace Android SDK a doplňků ADT 15 Vytvoření
JAVA JavaBeans Java, letní semestr
JAVA JavaBeans Komponenty přehled komponenta znovupoužitelný kus kódu charakterizována službami, které poskytuje a požaduje není přesná definice komponentové modely JavaBeans Enterprise JavaBeans (EJB)