Qt na mobilních zařízeních
|
|
- Lubomír Beneš
- před 7 lety
- Počet zobrazení:
Transkript
1 Qt na mobilních zařízeních Vývoj mobilní Datovky Karel Slaný
2 Stav projektu Datovka v roce 2016 desktopová Datovka UNIX/Linux, mac OS, Windows Od verze nepodporujeme Windows XP. Qt 5.3 (5.2+), OpenSSL, libisds Datovka pro Android TinyISDS, ISDSCommon, Java idatovka ObjC Byl požadavek na sjednocení funkcionality a vývoje mobilních Datovek.
3 Qt 5 Qt 5.0/ proti Qt 4 vylepšená podpora QML a JavaScript kompatibilní s Qt4 abstrakce nad platformami X11, Wayland, Windows, Android, Jolla, macos, ios, QNX/Blackberry10 plná podpora pro Android, ios, WinRT ios a Android od 5.2/ (5.1/ ) WinRT od (5.3/ ) Desktopová Datovka 4 je v Qt, chtěli jsme využít již existující kód.
4 Aplikace v Qt *.pro qmake: *.pro Makefile *.ui uic: *.ui ui_*.h *.h + *.cpp moc: *.h moc_*.cpp *.qml (deklarované v *.res) rcc -name qml res/qml.qrc -o qrc_qml.cpp # project.pro QT += core gui network sql printsupport widgets TEMPLATE = app APP_NAME = datovka VERSION = DEFINES += DEBUG=1 QMAKE_CXXFLAGS = -g -O0 -std=c++11 INCLUDEPATH += src LIBS = -lisds -lcrypto SOURCES +=... HEADERS += FORMS += RESOURCES += TRANSLATIONS +=... /* qrc_qml.cpp */ static const unsigned char qt_resource_data[] = { /*... */ // qml/main.qml 0x0,0x0,0xc,0xa, 0x0, 0x0,0x2b,0x77,0x78,0x9c,0xed,0x1a,0x6b,0x73, 0xdb,0xb8,0xf1,0xbb,0x7f,0x5,0x4e,0xbd,0x99, 0x93,0xf2,0Xa0,... /*... */ ;
5 Vývoj mobilní aplikace v Qt Předpokládá se použití Qt Quick. Kromě Qt je potřeba (dle cílové platformy): Android SDK a NDK, Java SE JDK, Apache Ant XCode + Command Line Tools Visual Studio 2013 (2015 pro Windows 10) Výsledná aplikace je v nativním binárním kódu pro cílovou platformu.
6 QML / Qt Quick deklarativní jazyk syntaxe podobná JSON navrženo pro dotykové ovládání, animace, styly, podpora JavaScript strom objektů reprezentující elementy Dají se sestavovat vlastní komponenty. Lze integrovat vlastní elementy napsané v C++.
7 Aplikace v Qt Quick smyčka aplikace QML engine nahraje se QML Lze psát programy pouze v QML. /* qml/main.qml */ import QtQuick 2.0 Item { id: item width: 100; height: 100 signal qmlsignal(string msg) MouseArea { anchors.fill: parent onclicked: item.qmlsignal("hello from QML") /* main.cpp */ #include <Qapplication> #include <QtQuick> int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); /* QQuickView view(qurl::fromlocalfile("qml/main.qml")); view.show(); */ QQmlApplicationEngine engine; engine.load( QUrl(QStringLiteral("qrc:/qml/main.qml"))); return app.exec();
8 QML a C++ objekty QQuickItem, QObject /* QmlObj.qml */ import QtQuick 2.7 Item { id: root property int val : 0 /* CppObj.cpp */ #include <QDebug> #include "CppObj.h" /* CppObj.h */ #pragma once #include <QObject> class CppObj : public QObject { Q_OBJECT public: explicit CppObj(QObject *parent = Q_NULLPTR); Q_INVOKABLE void setval(int val); signals: void signalvalue(int val); public slots: void dosomething(int val); private: int m_val; ; signal signalvalue(int sigval) function dosomething(val) { console.log("value " + val) onsignalvalue: { dosomething(sigval) CppObj::CppObj(QObject *parent) : QObject(parent), m_val(0) { connect(this, SIGNAL(signalValue(int)), this, SLOT(doSomething(int))); void CppObj::setVal(int val) { m_val = val; void CppObj::doSomething(int val) { qdebug() << "Value" << val;
9 Dědičnost v QML Jeden soubor definuje strukturu jedné komponenty. Jméno souboru je důležité. /* main.qml */ import "components" // import cz.nic.mobiledatovka 1.0 Item { id: item01 /* components/spinboxzeromax.qml */ import QtQuick.Controls 2.0 SpinBox { property var items: [1, qstr("max")] property int dfltidx: 0 from: 0 to: items.length - 1 /* Last is infinite. */ textfromvalue: function(idx) { /* text at idx */ valuefromtext: function(text) { /* idx with text */ function val() { /* value at current index */ SpinBoxZeroMax { id: spibbox function setval(v) { /* set index nearest to v */ /* main.cpp */ QmlRegisterType(Qurl("qrc:/components/SpinBoxZeroMax"), "cz.nic.mobiledatovka", 1, 0, "SpinBoxZeroMax");
10 C++ do QML přístup k objektům přístup k třídám parametry přes Qvariant nebo QString /* main.qml */ import Qt.Quick 2.7 import cz.nic.mobiledatovka 1.0 CppObj { id: object val: 0 Item { id: obj property int val: objcpp.val /* main.cpp */ #include "CppObj.h" /* CppObj.h */ #pragma once #include <QObject> class CppObj : public QQuickItem { Q_OBJECT Q_PROPERTY(QString val READ val WRITE setval NOTIFY valchanged) public: CppObj(QObject *parent = Q_NULLPTR) : QObject(parent), m_val(0) { int val(void) const { return m_val; void setval(const QVariant &v) { bool ok; int i = v.toint(&ok); if (ok) { m_val = i; emit valchanged(); signals: void valchanged(void); private: int m_val; ; Q_DECLARE_METATYPE(CppObj) QQmlApplicationEngine engine; QQmlContext *ctx = engine.rootcontext(); CppObj obj; ctx->setcontextproperty("objcpp", &obj); qmlregistertype<cppobj>("cz.nic.mobiledatovka", 1, 0, "CppObj");
11 QML do C++ příklad: blokující dialog vyhledání objektu ne vše je QQuickItem pozor na vlákna /*.cpp */ QEventLoop loop; /* Must lie in same thread as engine. */ QQmlApplicationEngine engine; /*... */ QList<QObject *> objlist = engine.rootobjects() QObject *root = objlist.first(); /* QQuickItem */ QObject *dlg = = root->findchild<qobject *>("dialogue", Qt::FindChildrenRecursively); /* not a QQuickItem. */ dlg->setproperty("title", QVariant("Dialogue message")); QObject::connect(dlg, SIGNAL(dialogueClosed()), &loop, SLOT(quit())); /* Show dialogue. */ QMetaObject::invokeMethod(dlg, "open"); loop.exec(); /* Wait for dialogue to close. */ /* dialogue.qml */ import QtQuick 2.7 import QtQuick.Controls 2.0 import QtQuick.Dialogs 1.2 /* * objectname properties are used to * navigate through the structure from * within C++ code. */ Item { id: root objectname: "root" signal dialogueclosed() Dialog { id: dialogue objectname: "dialogue" /* Set from C++. */ title: "" modality: Qt.ApplicationModal StandardButtons: StandardButton.Ok StandardButton.Cancel onaccepted: { root.dialogueclosed() onrejected: { root.dialogueclosed()
12 Vykonávání QML Struktura stromu objektů a jejich závislostí (signály, sloty) je vytvořena při inicializaci - QQmlApplicationEngine::load(). Chyby často způsobí pád aplikace. JavaScript je interpretován, když je potřeba. Chyby se projeví za běhu aplikace, někdy způsobí pád, někdy zamrznutí. Import statement slouží spíše k deklaraci požadované funkcionality. Pokud QML funguje na jedné platformě, není jisté, že na ostatních platformách bude program fungovat také.
13 QML best practice 3 programové vrstvy prezentace/zobrazování dat (QML) konverze dat pro prezentaci, zpracování uživatelských vstupů pro jádro (C++) jádro aplikace pro komunikaci se serverem a správu uložených dat Udržovat QML v přehledné a krátké formě. Minimalizovat použití JS v QML, funkce psát raději v C++ a exportovat do QML.
14 Obcházení nedostatků Qt AndroidExtras soubor tříd a objektů pro komunikaci s Androidem Lze volat kód v Javě. požíváme s Android Intent (zpracování událostí) MacExtras Zpřístupňuje některé funkce OS X specifické datové typy, grafika a GUI komunikace se správcem oken málo funkcí (protože jich není zapotřebí?) Lze psát funkce v ObjC, které mají rozhraní v C. SWIFT je kompatibilní s ObjC. Lze psát funkce v C++, které mají rozhraní v C.
15 Dokumentace Qt Rozhraní C++ má vynikající dokumentaci (Qt Assistant). Dokumentace QML se nese v podobném duchu, ale Mnohé komponenty jsou potomky jiných. Často chybí informace, co je rodič komponenty. Kompletní funkcionalitu lze odhadnout až ze zdrojových souborů. Komponenty se v různých verzích (import...) liší v některých atributech. V mnoha případech není uvedeno, kdy byl který atribut přidán. Pomáhá použití Qt Creatoru.
16 Vzhled ovládacích prvků QuickControls 1.4 starší, více komponent, desktopový vzhled QuickControls 2.0 (Qt 5.7/ ) (2.1) moderní mobilní vzhled, méně typů komponent chybí např. TableView
17 Bolístky někdy rozsypané fonty na ios řešení: zdola omezit velikost fontů
18 Další bolest Občas potřebujeme QML dialogy, které blokují vykonávání C++ kódu. Dialogy v QML jsou sice pěkné a blokující ale Na Androidu po zobrazení ukradnou funkci tlačítka zpět. Na ios se po zobrazení zablokuje smyčka událostí a aplikace zamrzne. Na desktopu fungují bez problémů. :)
19 Dialogy
20 Chyby v Qt It s not a bug - it s a feature. Vývojáři Qt raději implementují novou funkcionalitu než opravují staré chyby. otevírání ů na ios workaround since Qt 5.2 The fix would break backward compatibility. Problém napojení a zpracování signálů mezi C++ a QML na ios. A conceptual change needed, fix likely in Qt 6. V Qt 5.8 jde na Androidu konečně vkládat text ze schránky.
21 Získané poznatky Jsme relativně spokojeni s použitelností Qt pro vývoj mobilní aplikace. Funguje-li něco na jedné platformě, ještě to nemusí fungovat všude. Změna způsobu ovládání a vzhledu vyvolala nečekanou vlnu negativních reakcí.
22 Děkuji za pozornost Karel Slaný
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
Multiplatformní GUI knihovna
Úvod ke knihovnì Qt Multiplatformní GUI knihovna Qt = jedna ze dvou nejpopulárnìjších multiplatformních knihoven na tvorbu programù s grafickým uživatelským rozhraním. Pomocí Qt jsou naprogramovány napø.
Nástroje pro vývoj a publikaci mobilní aplikace v Qt. Martin Straka
Nástroje pro vývoj a publikaci mobilní aplikace v Qt Martin Straka martin.straka@nic.cz 24. 11. 2017 Obsah Qt a mobilní aplikace Nástroje, překlad a publikace v obchodech Android ios Aplikace mobilní Datovka
Nástroje pro vývoj a publikaci mobilní aplikace v Qt. Martin Straka
Nástroje pro vývoj a publikaci mobilní aplikace v Qt Martin Straka martin.straka@nic.cz 24. 11. 2017 Obsah Qt a mobilní aplikace Nástroje, překlad a publikace v obchodech Android ios Aplikace mobilní Datovka
Multiplatformní GUI toolkity
Multiplatformní GUI toolkity GTK+ a Qt Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI GUI toolkit (widget toolkit) (1) = programová knihovna (nebo kolekce knihoven) implementující prvky
25. listopadu 2014, Brno Připravil: David Procházka QML (2) Programovací jazyk C++
25. listopadu 2014, Brno Připravil: David Procházka QML (2) Programovací jazyk C++ Obsah přednášky Strana 2 / 32 Obsah přednášky 1 Obsah přednášky 2 Volání C++ kódu 3 Dialogy 4 XML soubory 5 Drag & drop
Vývoj aplikací v Qt pro mobilní zařízení
Vývoj aplikací v Qt pro mobilní zařízení Jozef Mlích Department of Computer Graphics and Multimedia Brno University of Technology, Faculty of Information Technology Božetěchova 2, 612 66 Brno, Czech Republic
25. listopadu 2014, Brno Připravil: David Procházka. Qt a QML. Programovací jazyk C++
25. listopadu 2014, Brno Připravil: David Procházka Qt a QML Programovací jazyk C++ Obsah přednášky Strana 2 / 38 Obsah přednášky 1 Obsah přednášky 2 Událostně řízené programování 3 Knihovna Qt 4 QML 5
Uživatelská rozhraní 10. cvičení. Martin Němec A
Uživatelská rozhraní 10. cvičení Martin Němec A1047 +420 597 324 438 Úvod do Qt GUI toolkit Qt (cute) Samostatná knihovna společnosti TrollTech. Podpora platforem Windows, Linux, Mac. Vzhled i chování
IUJCE Přednáška č. 11. další prvky globální proměnné, řízení viditelnosti proměnných, funkcí
Velké projekty v C velký = 100ky a více řádek udržovatelnost, bezpečnost, přehlednost kódu rozdělení programu do více souborů další prvky globální proměnné, řízení viditelnosti proměnných, funkcí Globální
PROGRAMOVÁNÍ V C++ CVIČENÍ
PROGRAMOVÁNÍ V C++ CVIČENÍ INFORMACE Michal Brabec http://www.ksi.mff.cuni.cz/ http://www.ksi.mff.cuni.cz/~brabec/ brabec@ksi.mff.cuni.cz gmichal.brabec@gmail.com PODMÍNKY ZÁPOČTU Základní podmínky společné
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
Obsah. O autorech 9 Earle Castledine 9 Myles Eftos 9 Max Wheeler 9 Odborný korektor 10. Předmluva 11 Komu je kniha určena 12 Co se v knize dočtete 12
O autorech 9 Earle Castledine 9 Myles Eftos 9 Max Wheeler 9 Odborný korektor 10 Předmluva 11 Komu je kniha určena 12 Co se v knize dočtete 12 Poděkování 15 Earle Castledine 15 Myles Eftos 15 Max Wheeler
Architektura COM. Historie Component Object Model (COM) Komunikace s komponentami Rozhraní komponent COM komponenty v.net.
Architektura COM 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 Historie Component Object Model (COM)
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
ANT. Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha
ANT Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP gesvindr@mail.muni.cz
Efektivní vývoj mobilních aplikací na více platforem současně Mgr. David Gešvindr MCT MSP MCPD MCITP gesvindr@mail.muni.cz Osnova 1. Kam míří platforma Windows Phone 2. Seznámení s univerzálními Windows
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,
Úvod 13 O čem je tato kniha? Pro koho je tato kniha? Jak studovat tuto knihu? Poděkování 16 Zpětná vazba od čtenářů Zdrojové kódy ke knize Errata 17
Úvod 13 O čem je tato kniha? 13 Pro koho je tato kniha? 15 Jak studovat tuto knihu? 16 Poděkování 16 Zpětná vazba od čtenářů 17 Zdrojové kódy ke knize 17 Errata 17 KAPITOLA 1 Trocha teorie na úvod 19 Něco
Ú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
KNIHOVNA QT4, PROSTŘEDÍ QTCREATOR A MOŽNOSTI JEJICH VYUŽITÍ
KNIHOVNA QT4, PROSTŘEDÍ QTCREATOR A MOŽNOSTI JEJICH VYUŽITÍ Petr Fiala, Michal Rost, Vladimír Španihel, Miroslav Virius České vysoké učení technické v Praze, Fakulta jaderná a fyzikálně inženýrská ABSTRAKT:
NSWI096 - INTERNET JavaScript
NSWI096 - INTERNET JavaScript Mgr. Petr Lasák JAVASCRIPT JAK SE DNES POUŽÍVÁ Skriptovací (interpretovaný) jazyk Umožňuje interaktivitu Použití: Dialogy Kontrola dat ve formulářích Změny v (X)HTML dokumentu
Doxygen. Jakub Břečka
Doxygen Jakub Břečka Úvod Proč a typy dokumentace na přednášce Programátorská dokumentace (popis implementace, tříd, funkcí, API) Doxygen, JavaDoc, Sandcastle, AppleDoc, Doxygen = klasika mezi dokumentačními
PB161 Programování v jazyce C++ Přednáška 10
.. PB161 Programování v jazyce C++ Přednáška 10 Šablony Nikola Beneš 23. listopadu 2015 PB161 přednáška 10: šablony 23. listopadu 2015 1 / 29 K zamyšlení Jaký je rozdíl mezi new int[10] a new int[10]()?
Pokročilé programování v jazyce C pro chemiky (C3220) Knihovna Qt část 2
Pokročilé programování v jazyce C pro chemiky (C3220) Knihovna Qt část 2 Program rozdělený do několika souborů Zdrojový kód programů v C++ obvykle rozdělujeme do několika souborů tak aby každá větší třída
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
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
C++ 0x aka C++11. Základním kamenem je třída std::thread
C++ 0x aka C++11 Jako jiné jazyky, např. Free/Object Pascal, se C++ ve standardu ++0x dočkal podpory vláken Výhodou je, že standardní knihovna je platformě nezávislá na úrovni zdrojového kódu Základním
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í
Skriptovací jazyky. Obsah
Skriptovací jazyky 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 Co je to skriptovací jazyk? Výhody a nevýhody
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ě
Jakub Čermák <jakub@jcermak.cz> http://www.jcermak.cz. Microsoft Student Partner
Jakub Čermák http://www.jcermak.cz Microsoft Student Partner Úvod, příklady použití, trocha teorie Struktura aplikace Typy obecně, primitivní typy, speciální typy Podmínky, cykly, namespaces
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:
Fakulta stavební. Grafické rozhraní pro GNU Sqltutor
České vysoké učení technické v Praze Fakulta stavební Semestrální projekt letní semestr 2009 Softwarový seminář 1 (YSS1) Katedra mapování a kartografie Grafické rozhraní pro GNU Sqltutor Autoři: Zora Hořejšová,
Formy komunikace s knihovnami
Formy komunikace s knihovnami Současné moderní prostředky Jiří Šilha a Jiří Tobiáš, Tritius Solutions a.s., Brno Osnova Základní požadavky na komunikaci s knihovnami Historie komunikace s knihovnami Confluence
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)
Desktop GUI. IW5 - Programování v.net a C# Desktop GUI
IW5 - Programování v.net a C# Strana 1 Obsah přednášky Definice GUI Představení existujících technlogií Jemný úvod do WPF Praktické ukázky WPF MVVM pattern Strana 2 Prezentační vrstva aplikace Vrstva zodpovědná
1 - Úvod do platformy.net. IW5 - Programování v.net a C#
1 - Úvod do platformy.net IW5 - Programování v.net a C# Strana 1 Obsah přednášky Objektově orientované paradigma.net Framework Základní rysy jazyka C# Strana 2 Objektová orientace C# implementuje základní
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
MBI - technologická realizace modelu
MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,
Ú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
Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace
Připravil: Ing. Jiří Lýsek, Ph.D. Verze: 16. 4. 2019 Webové aplikace ES6, Vue strana 2 ES6, ES7... ES NEXT Nová/rozšířená syntaxe Mnoho vylepšení Není podporováno ve všech prohlížečích https://caniuse.com/
Mobile application developent
Mobile application developent Jiří Šebek b6b36nss Obsah Návrh softwaru Prototypování testování MVVM architektura - mobile aplikace 2 Návrh softwaru Strategie : top down, bottom up Nejen u navrhu sw, ale
PB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
PB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
Chain of responsibility
Chain of responsibility Chain of responsibility n Známý jako n Účel q český překlad řetěz(ec) odpovědnosti q umožnit zasílání požadavků (zpráv) neznámým příjemcům q příjemci tvoří frontu è předávají si
Embedded vývoj v Clutteru a Mx
Pavel Šimerda pavlix@pavlix.net OpenMobility 2011 Creative Commons Uved te autora 3.0 Česko Embedded Oblíbený buzzword Vestavěná zařízení (v automobilech, budovách, venkovních terminálech) Jednoúčelová
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 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
PB161 Programování v jazyce C++ Přednáška 9
PB161 Programování v jazyce C++ Přednáška 9 Právo friend Přetěžování operátorů Nikola Beneš 16. listopadu 2015 PB161 přednáška 9: friend, přetěžování operátorů 16. listopadu 2015 1 / 30 Reklama PB173 Tematicky
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 =
TÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího
MySQL sežere vaše data
MySQL sežere vaše data David Karban @davidkarban AWS Certified http://davidkarban.cz/ It s not a bug, it s a feature syndrome Pravděpodobně znáte indexy. Urychlují dotazy. Mohou být řazené, vzestupně i
Projekty pro výuku programování v jazyce Java
JIHOČESKÁ UNIVERZITA V ČESKÝCH BUDĚJOVICÍCH Pedagogická fakulta Katedra informatiky Akademický rok: 2006/2007 TEZE BAKALÁŘSKÉ PRÁCE Projekty pro výuku programování v jazyce Java Jméno: František Přinosil
PŘETĚŽOVÁNÍ OPERÁTORŮ
PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako
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
Jazyk C++ II. Šablony a implementace
Jazyk C++ II Šablony a implementace AR 2013/2014 Jazyk C++ II Úvod Dědičnost a kompozice nejsou vždy tou správnou odpovědí na požadavky znovupoužitelnosti kódu. Proto máme možnost definování určité třídy
PB161 Základy OOP. Tomáš Brukner
PB161 Základy OOP Tomáš Brukner Sylabus - Co je to OOP? Jaké jsou základní principy OOP? Jak se projevují v C++? https://cs.wikipedia.org/wiki/strahovská_knihovna SELECT * FROM books WHERE pages < 250
Jakub Čermák jakub@jcermak.cz, http://www.jcermak.cz. Microsoft Student Partner
Jakub Čermák jakub@jcermak.cz, http://www.jcermak.cz Microsoft Student Partner Testy ve VS - úvod Unit testy Testy ve VS featury a pokročilejší funkce Web testy DB testy Visual Studio 2010 Nástroje: Visual
Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13
Obsah Úvod 11 Platforma.NET 11.NET Framework 11 Visual Basic.NET 12 1 Základní principy a syntaxe 13 Typový systém 13 Hodnotové typy 13 Struktury 15 Výčtové typy 15 Referenční typy 15 Konstanty 16 Deklarace
Code Contracts. Robert Haken [MVP ASP.NET, MCT] Software architect, Owner at HAVIT, s.r.o. knowledge-base.havit.cz
Code Contracts Robert Haken [MVP ASP.NET, MCT] Software architect, Owner at HAVIT, s.r.o. knowledge-base.havit.cz Contracts volaná strana deklaruje, jak se chová vzniká dohoda mezi volající a volanou stranou
Metody zabezpečeného přenosu souborů
Metody zabezpečeného přenosu souborů Radek Dostál Petr Koloros Cryptofest 15.11.2003 Úvod Co všechno šifrovat SSL FTP x SFTP, SCP SSL FTP Implicit x Explicit jak poznat Windows klienti, servery Linux klienti,
ios Cvičení RSS čtečka
strana 1 ios Cvičení RSS čtečka Jiří Kamínek Kaminek.jiri@stoneapp.com strana 2 Vytvoření nového projektu v XCode Název RSSLesson Navigation-based Application use Core Data for storage nezaškrtávat strana
Software602 Form Designer
Software602 Form Designer Javascriptový vyhodnocovací mechanismus výrazů Aktualizováno: 17. 3. 2017 Software602 a.s. Hornokrčská 15 140 00 Praha 4 tel: 222 011 602 web: www.602.cz e-mail: info@602.cz ID
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
Práce s knihovnami. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016
Práce s knihovnami Karel Richta a kol. katedra počítačů FEL ČVUT v Praze Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016 Programování v C++, A7B36PJC 04/2016, Lekce 7 https://cw.fel.cvut.cz/wiki/courses/a7b36pjc/start
<surface name="pozadi" file="obrazky/pozadi/pozadi.png"/> ****************************************************************************
zdroje/zdroje.xml
Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML
Obsah přednášky Webové služby a XML Miroslav Beneš Co jsou to webové služby Architektura webových služeb SOAP SOAP a Java SOAP a PHP SOAP a C# Webové služby a XML 2 Co jsou to webové služby rozhraní k
PB161 Programování v jazyce C++ Přednáška 10
PB161 Programování v jazyce C++ Přednáška 10 Šablony Nikola Beneš 27. listopadu 2017 PB161 přednáška 10: šablony 27. listopadu 2017 1 / 33 Šablony PB161 přednáška 10: šablony 27. listopadu 2017 2 / 33
18. února 2015, Brno Připravil: David Procházka. Programovací jazyk C++
18. února 2015, Brno Připravil: David Procházka Vstupní a výstupní proudy v C++ Programovací jazyk C++ Vstup dat do programu Strana 2 / 26 Obsah přednášky 1 Vstup dat do programu 2 Terminál 3 Textový soubor
Základy programování (IZP)
Základy programování (IZP) Jedenácté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Gabriela Nečasová, inecasova@fit.vutbr.cz
České vysoké učení technické v Praze. Fakulta Elektrotechniky XD39NUR. Semestrální práce. Ovládání videokonferencí pomocí mobilního telefonu
České vysoké učení technické v Praze Fakulta Elektrotechniky XD39NUR Semestrální práce Ovládání videokonferencí pomocí mobilního telefonu Ondřej Procházka 2013 / 2014 Obsah 1. Deliverable D4... 3 1.1.
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
KAPITOLA 1 Nástroje na vývoj aplikací pro ios 11 Trocha motivace na úvod 11 Co budete potřebovat 11 Co když nemáte k dispozici počítač s macos? 12 Vývojové prostředí Xcode 14 Průběžná aktualizace 16 První
Na začátku bych chtěl poděkovat vedoucímu bakalářské práce Prof. Ing. Aleši Čepkovi, CSc za výuku předmětů Informatika 1,2,3, Projekt - Informatika a
Na začátku bych chtěl poděkovat vedoucímu bakalářské práce Prof. Ing. Aleši Čepkovi, CSc za výuku předmětů Informatika 1,2,3, Projekt - Informatika a za vedení mé bakalářské práce. Dále bych chtěl poděkovat
Programování v C++ 2, 8. cvičení
Programování v C++ 2, 8. cvičení návrhový vzor iterátor 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí minule procvičené látky
CMS LARS VIVO VERZE 1.2 Z POHLEDU VIVOJÁŘE
CMS LARS VIVO VERZE 1.2 Z POHLEDU VIVOJÁŘE Miroslav Hájek mhajek@lundegaard.eu OBSAH Implementace entity Document Vivo Exceptions Vivo Interfaces Vivo Validator Vivo CMS Events 2 IMPLEMENTACE ENTITY DOCUMENT
Programování v C++ 1, 5. cvičení
Programování v C++ 1, 5. cvičení konstruktory, nevirtuální dědění 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 3 Shrnutí minule procvičené
Č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
InterSystems Caché Post-Relational Database
InterSystems Caché Post-Relational Database Martin Holoubek xholoub@fi.muni.cz Úvod InterSystems byla založena shodou okolností ve stejném roce jako její největší konkurent Oracle 1978 Caché je velmi vyspělý
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
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
IUJCE 07/08 Přednáška č. 1
Úvod do předmětu Literatura Záznamy přednášek a vaše poznámky Harbison, S. P., Steele, G. L.: Referenční příručka jazyka C Herout, P.: Učebnice jazyka C Kernighan, B. W., Ritchie, D. M.: The C Programming
Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15
Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové
Použití inteligentních značek s informačními službami
Použití inteligentních značek s informačními službami Jan Fransen Podokno úloh Zdroje informací v aplikacích sady Microsoft Office 2003 umožňuje uživatelům snadno prohledávat množství integrovaných či
Jak importovat profily do Cura (Windows a
Jak importovat profily do Cura (Windows a macos) Written By: Jakub Dolezal 2019 manual.prusa3d.com/ Page 1 of 10 Step 1 Stažení Cura profilů V tomto návodu se dozvíte, jak importovat a aktivovat nastavení
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
Struktura třídy, operátory, jednoduché algoritmy, junit. Programování II 2. cvičení Alena Buchalcevová
Struktura třídy, operátory, jednoduché algoritmy, junit 2. cvičení Alena Buchalcevová Cíle cvičení seznámit se s rozhraním (interface) v Javě seznámit se s testováním při vývoji (makety, JUnit) naučit
Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework
Web Jaroslav Nečas Obsah přednášky Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Co to je web HTTP protokol bezstavový GET POST HEAD Cookies Session HTTPS
Mediator motivace. FontDialog. závislosti mezi jednotlivými ovládacími prvky jsou netriviální
Mediator Mediator motivace FontDialog závislosti mezi jednotlivými ovládacími prvky jsou netriviální Mediator - motivace zná pomůcky, koordinuje interakce místo distribuce chování do jednotlivých pomůcek
Úvodem... 9 Kapitola 1 Karetních
Úvodem... 9 Základní znalosti o programovacích jazycích...10 Jazyk C# a platforma.net...10 Visual C# 2010 Express...11 Instalace platformy.net 4.0 a Visual C# 2010 Express...11 Zdrojový kód aplikací...12
Co je (staro)nového v DSpace
Ústav výpočetní techniky, Masarykova univerzita, Brno CZDSUG 2011, Ostrava Obsah přednášky I Delegování práv. Autentizace přes IP adresy. Omezení viditelnosti, skrytí metadat. Export (CSV). Rozšířená konfigurace
PB přednáška (23. listopadu 2015)
PB161 10. přednáška (23. listopadu 2015) Šablony Motivace snaha o co nejmenší duplikaci kódu co když máme kód, který chceme použít pro různé typy? generická funkce (maximum, minimum, swap, ) kontejnery
DEVFEST ANGULAR 2 WORKSHOP. angular.cz
DEVFEST 2016 - ANGULAR 2 WORKSHOP Milan Lempera @milanlempera Víťa Plšek @vitaplsek Matěj Horák @horakmat angular.cz O nás 0 1 Milan Lempera @milanlempera php, javascript, clojure(script) Víťa Plšek @vitaplsek
Vývoj software pro Linuxové distribuce. Installfest Praha, 7.3.2010
Vývoj software pro Linuxové Installfest Praha, 7.3.2010 Úvod Dan Horák vývojář Fedora člen Fedora Engineering Steering Comitee (pro F-11 a F-12) zaměstnán u Red Hat Czech Copyright
ANGULAR 2 WORKSHOP. angular.cz
ANGULAR 2 WORKSHOP Milan Lempera @milanlempera Víťa Plšek @vitaplsek Matěj Horák @horakmat angular.cz O nás 0-1 Matěj Horák @horakmat java, javascript Víťa Plšek @vitaplsek java, javascript angular.cz/gdg-brno-a2
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í
Michal Podzimek 6. 11. 2013
Testování Test NG Michal Podzimek 6. 11. 2013 1 Úvod public class SimpleTest { @BeforeClass public void setup() { // code that will be invoked // when this test is instantiated @Test public void afasttest()
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é,
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č)