Tvorba mobilních aplikací

Podobné dokumenty
Apache Cordova (PhoneGap 3)

Mobile application developent

1.2 Operační systémy, aplikace

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

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

iphone vývoj aplikací Jiří Vávrů

Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Vývoj Internetových Aplikací

Vývoj aplikací v Qt pro mobilní zařízení

Sem vložte zadání Vaší práce.

Metody vývoje aplikací s adaptivním systémem zobrazení na mobilních platformách

Internet Information Services (IIS) 6.0

Jakub Šesták. ESEJ DO PŘEDMĚTU DIGITÁLNÍ KNIHOVNY

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

Tablexia. Vývoj multiplatformních her pomocí opensource technologie libgdx. Matyáš Latner

Olga Rudikova 2. ročník APIN

UNICORN COLLEGE. Katedra informačních technologií

Bezpečná autentizace přístupu do firemní sítě

Projekt podnikové mobility

Tabulka základních vlastností nástroje C++Builder dle edice

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

Enterprise Mobility Management AirWatch & ios v businessu

Publikujeme web. "Kam s ním?!"

Vývoj aplikací pro Windows Phone 8. Mgr. David Gešvindr MCT MSP MCPD MCITP

Novinky v oblasti SAP Mobility. Martin Zikmund, Presale Mobility Platforms Miroslav Řehoř, Account Executive

Univerzita Hradec Králové Fakulta informatiky a managementu Katedra informatiky a kvantitativních metod

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

1.1 Seznámení s programy Office

Porovnání instalací linuxových distribucí Fedora x Debian Administrace počítačových sítí (2010/2011)

MBI - technologická realizace modelu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

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

MODERNÍ WEB SNADNO A RYCHLE

Vývoj Internetových Aplikací

ArcGIS Server 10.1/10.2

Rozhraní pro tvorbu doplňků v moderních prohlížečích. Martin Straka martin.straka@nic.cz

Jak bude? To ví jen... Váš mobil!

Extrémně silné zabezpečení mobilního přístupu do sítě.

Historie, současnost a budoucnost ASP.NET

w w w. u l t i m u m t e c h n o l o g i e s. c z Infrastructure-as-a-Service na platformě OpenStack

iphone vývoj aplikací Jiří Vávrů

Úvod do FlexiBee REST API. Petr Ferschmann FlexiBee Systems s.r.o.

Datová věda (Data Science) akademický navazující magisterský program

INFORMAČNÍ SYSTÉM PRO SPRÁVU NEMOVITOSTÍ INFORMATION SYSTEM FOR MANAGEMENT OF REAL ESTATES

SADA VY_32_INOVACE_PP1

Technologie počítačových sítí 1. cvičení

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

Workshop DSP Jan Medek, DiS. Data Agentura INFOPHARM s.r.o.

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

Instalace a konfigurace OpenAdmin tool na M$ a Linuxu

Instalační příručka. Vlastnoruční digitální podpis. Instalace ovladačů a rozšíření na uživatelský počítač nebo tablet

PV239/WP. Vývoj univerzálních Windows Store aplikací. Mgr. David Gešvindr MCSD: Windows Store MCSE: Data Platform MCT MSP

Migrace Lotus na verzi 8.x

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

Elektronické učebnice popis systému, základních funkcí a jejich cena

Měření nativních mobilních aplikací v rámci NetMonitoru

Quo vadis, vyhledávání (na webu)?

modrana: flexibilní navigační systém Martin Kolman

MATURITNÍ PRÁCE. Dokumentace. Inventární systém. Knapo Dominik. Školní rok: 2013/2014 Obor: Elektronické Počítačové Systémy

Komponentově orientované webové frameworky. Jiří Stránský twitter.com/jistr

Domino 10 nové komponenty a související témata (node.js, ES )

Obsah. Úvod 11 O autorovi 11 Koncept knihy 11 Zpětná vazba od čtenářů 12 Zdrojové kódy ke knize 12 Errata 12 ČÁST I VÝVOJ MOBILNÍ APLIKACE

Instalace a první spuštění programu.

Úvod do tvorby internetových aplikací

Google Apps. Administrace

INSTALACE SOFTWARE A AKTIVACE PRODUKTU NÁVOD

Alternativní operační systémy. Martin Drlík, Daniel Krotil OSY2A, ITV

[ASP].NET Core Demystified. Miroslav Holec. Konzultant a lektor [ASP].NET Core.

Informační systém ozdravných pobytů zdravotní pojišťovny

Enterprise Mobility Management & GDPR AirWatch - představení řešení

ABBYY Automatizované zpracování dokumentů

LINUX - INSTALACE & KONFIGURACE

IBM Tivoli Storage Manager 6.2 a IBM Tivoli Storage Manager FastBack 6.1.1

Databázové aplikace pro internetové prostředí PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Zapojení studentů VŠPJ do vývoje mobilních aplikací na platformě Recon Jet

Aplikační programové vybavení

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

KIV/PIA 2012 Ing. Jan Tichava

Programovací jazyky Přehled a vývoj

Monitorování a diagnostika aplikací v produkčním prostředí Michael Juřek

Staňte se bodem zájmu!

O autorech 13 O odborném korektorovi 13. Poděkování 15 Úvod 17. Cílová skupina této knihy 17 Témata této knihy 17

Enterprise Mobility Management AirWatch - představení řešení. Ondřej Kubeček březen 2017

1 Návod na instalaci prostředí LeJOS-NXJ a přehrání firmwaru NXT kostky

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

Nové vývojové nástroje i5/os Rational Developer for System i V7.1

AJAX. Dynamické změny obsahu stránek

Telekomunikační koncová zařízení

Vývoj univerzálních aplikací pro Windows 10. Mgr. David Gešvindr MCSD: Windows Store MCSE: Data Platform MCT MSP

Seznámení s prostředím dot.net Framework

Základní pojmy spojené s webovým publikováním ~ malý slovníček pojmů~ C3231 Základy WWW publikování Radka Svobodová, Stanislav Geidl

Inovace bakalářského studijního oboru Aplikovaná chemie

1. ÚVOD 2. ARCHITEKTURA MOBILNÍHO TERMINÁLU 2.1. HARDWARE TERMINÁLU PRO SYMBIAN OS S OS SYMBIAN 2009/

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Vývoj Internetových Aplikací

Transkript:

Tvorba mobilních aplikací multiplatformní mobilní vývoj Martin Trnečka Katedra informatiky Univerzita Palackého v Olomouci Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 1 / 16

Multiplatformní aplikace obecně Označovány jako hybridní nebo cross-platform aplikace. Nezávislé na platformě (ne zcela, vysvětĺıme později). Mohou vypadat stejně (horší varianta) i respektovat zvyklosti dané platformy. Alternativa (omezená) k nativním aplikacím (zejména využívající WebView). Stejné možnosti jako u nativních aplikací! Obecně jiné zaměření (např. prezentační aplikace, hry). Výrazně horší user experience (není to zas tak špatné). Obvykle skořápka tvořená nativní aplikací + multiplatformní framework. Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 2 / 16

Multiplatformní aplikace obecně Samotná aplikace nejčastěji HTML + CSS + JavaScript. HTML + CSS + JavaScript = Hybridní aplikace. Několik desítek řešení. Každoroční srovnání frameworků (Gartner 2016) https://www.gartner.com/doc/reprints?id=1-39kamml&ct=160616 Kdy o multiplatformní vývoji uvažovat? Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 3 / 16

Apache Cordova https://cordova.apache.org/ Volně dostupný open-sorce framework (jeden z nejpoužívanějších). Vznik z PhoneGap (po převzetí Nitobi Software společností Adobe Systems). Podpora platforem: Android, ios, Windows, Blackberry,... Obrázek: Apache Cordova Application Packaging Process Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 4 / 16

Instalace a nastavení projektu Apache Cordova console běží pod Node.js (npm) Předpokládá se instalace SDK pro danou platformu. Příklad 1 npm install g cordova 2 cordova create project 3 cd project 4 cordova platform add android 5 cordova platform update android@5.1.0 6 cordova run Více: https://cordova.apache.org/docs/en/latest/reference/ cordova-cli/index.html#cordova-create-command Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 5 / 16

Základní struktura aplikace www - aplikace ve formátu HTML + CSS + JavaScript. plugins - pluginy použité v aplikaci. platforms - skeleton aplikace v daných platformách (např. Android, ios, BlackBerry,... ) + knihovna Apache Cordova. config.xml Obecně stačí editovat obsah www. Úpravy ostatních souborů větší technologická zdatnost. Obvykle postačuje Node.js konzole. Veškeré nastavení přes config.xml. https://cordova.apache.org/docs/en/latest/config_ref/ Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 6 / 16

Vývojové prostředí Konzole + jakýkoliv obĺıbený editor. Lze použít Visual Studio (moc nedoporučuji). Podpora v NetBeans (https: //netbeans.org/kb/docs/webclient/cordova-gettingstarted.html). Vývoj pro android Android Studio. Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 7 / 16

Apache Cordova API V terminologii ekosystému Apacha Crodova se základní pluginy označují jako Apache Cordova API (stav k 30. 11. 2016) + uživatelské pluginy. Battery Status Camera Console Contacts Device Device Motion Device Orientation Dialogs File File Transfer Geolocation Globalization Inappbrowser Media Media Capture Network Information Splashscreen Vibration Statusbar Whitelist Legacy Whitelist Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 8 / 16

Na co si dát pozor Jakákoliv chyba JavaSriptu způsobí zaseknutí aplikace. Pluginy jsou obecně multiplatformní, ale... pozorně číst dokumentaci. Předchozí bod se týká i Apache Cordova API. Propagace událostí a volání funkcí. Již plnohodnotná aplikace, ale.... Potřebujeme dokonalejší UI mobilní webové frameworky. Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 9 / 16

Ionic framework http://ionicframework.com/ Příklad 1 npm install g ionic 2 ionic start project tabs 3 cd ionic 4 ionic platform add android Ionic framework přestavuje template mobilní aplikace. Lze zprovoznit přímím kopírováním do Apache Cordova projektu. Podpora Visual Studia 2015 (community). Možnost testovat aplikaci jako u PhoneGap. Sandbox: http://play.ionic.io/ Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 10 / 16

Alternativy Obecně jakýkoliv webový framework. jquery Mobile Mobile Angular UI Secha Touch Kendo UI... Onsen UI (nesrovnatelné s výše uvedenými). Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 11 / 16

Odbočka Takže multiplatformní vývoj = webový vývoj? (zklamání). Obecně ne (lze využít i jiné frameworky, C#, C++, Python,... ). Na druhou stranu weby dělat umíme. Webový vývoj = můžeme to rozjet naplno. Google Polymer, React.js, Meteor.js, Vue.js, Angular 2,... Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 12 / 16

Apache Cordova vs. PhoneGap http://phonegap.com/ Nejpopulárnější distribuce Apache Cordova. PhoneGap vyvíjen Adobe Systems. Předpřipravená instalace (instalátor). Inovativní koncept: aplikace běží na lokálním serveru (aplikace je jen webová stránka) a pomocí mobilní aplikace ji můžeme testovat. Netřeba instalovat SDK! Produkční verze = jedna kompilace (existuje i cloudové řešení). Pluginy podobné (shodné) s Apache Cordova. Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 13 / 16

Daň za multiplatformní vývoj Horší UI v porovnání s nativními aplikacemi. Větší nánorky na zdroje (pamět, uložiště a procesor) v případě webově založených aplikací. V některých situacích pomalejší (zvlášt při špatném řešení). Celá řada frameworků je placená (ne vždy to stojí za to). Jedna aplikace více UI (pokud respektujeme zvyklosti). Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 14 / 16

Na závěr Celá řada speciálních frameworků pro hry (2D, 3D) a administrační aplikace. Například: https://coronalabs.com/, http://cocos2d.org/. Výběr frameworku by měl zohledňovat hlavní jazyk (JavaScript, C#, C++, skriptovací jazyk LUA). Úkol pro dnešní seminář: Vytvořte multiplatformní aplikaci pomocí Apache Cordova (prázný projekt). Pro vizualizaci použijte Ionic framework (Tabs variantu). Příště budeme aplikaci rozšiřovat. Vyberte zda použijete Apache Cordova nebo PhoneGap. Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 15 / 16

Tvorba mobilních aplikací multiplatformní mobilní vývoj Martin Trnečka Katedra informatiky Univerzita Palackého v Olomouci Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 16 / 16

Tvorba mobilních aplikací multiplatformní mobilní vývoj Martin Trnečka Katedra informatiky Univerzita Palackého v Olomouci Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 1 / 7

A jdeme dál Použili jsme Apache Cordova/PhoneGap. Aplikace z minula skeleton + webová stránka. JavaScriptová aplikace (umí toho dost, ale... ). Svým způsobem prezentační aplikace. Chceme zpřístupnit samotné zařízení. Fotoaparát, uložiště a další. Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 2 / 7

Instalace pluginu Skeleton z předchozího kroku omezené možnosti. Poznámka: standardní aparát JavaScriptu nemusí fungovat (např. onclick()). Pro přístup k fyzickému zařízení jsou zapotřebí pluginy. Příklad 1 cordova plugin search camera 2 cordova plugin add cordova plugin camera Tvorba vlastních pluginů (pro zájemce): https://cordova.apache.org/docs/ en/latest/guide/hybrid/plugins/index.html Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 3 / 7

Použití pluginu Příklad 1 var app = { 2 initialize : function() { 3 document.getelementbyid("tlacitko").addeventlistener("touchend", this.opencamera, false); 4 }, 5 6 opencamera: function () { 7 var options = {quality : 50, sourcetype: Camera.PictureSourceType.CAMERA, 8 destinationtype : Camera.DestinationType.DATA URL}; 9 navigator.camera.getpicture(function camerasuccess(imageuri) { 10 var elem = document.getelementbyid("imagefile"); 11 elem. src = "data:image/jpeg;base64," + imageuri; 12 }, function cameraerror(error) { 13 console.debug("unable to obtain picture: " + error, "app"); 14 }, options ); 15 } 16 }; 17 18 app. initialize (); Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 4 / 7

Přístup k databázi Obvykle řešeno přes existující W3C specifikace (aplikace je www stránka). LocalStorage - uložiště typu kĺıč hodnota, snadné použití, nevhodné pro velká data, omezení na 5MB, ios navíc může smazat při nedostatku místa. (https://html.spec.whatwg.org/multipage/webstorage.html) WebSQL - zastaralý a nevyvíjený standard (podpora postupně odstraňována z platforem), jednoduché použití, bĺızke klasické databázi, nepodporované všemi platformamy, omezení 5MB. (https://dev.w3.org/html5/webdatabase/) IndexedDB - plnohodnotná SQL databáze, asynchronní vykonávání, kombinace předchozích, není podporována ios, několik okrajových omezeních na Windows. (https://www.w3.org/tr/indexeddb/) Přehled na: https: //cordova.apache.org/docs/en/latest/cordova/storage/storage.html Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 5 / 7

Přístup k databázi Pro jednoduché účely postačující, ale... Nevýhody lze řešit použitím cordova-plugin-file (podporovaný na všech platformách), umožňující přístup k file systému zařízení (tedy strukturovaná data, NoSQL). Plnohodnotný přístup k SQLite databázi (bez omezení velikosti) pomocí pluginů. Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 6 / 7

Na závěr Pluginy obvykle běží v samostatném vlákně. Ochutnávka multiplatformního mobilního vývoje. Úkol pro dnešní seminář: Rozšiřte aplikaci z minulého semináře o: možnost pořízení fotografie (první tab), náhled aktuálně pořízené fotografie (druhý tab) a přehled všech pořízených fotografií (třetí tab). Martin Trnečka Multiplatformní mobilní vývoj KMI/TMA 7 / 7