Vývoj hybridní aplikace pro webos



Podobné dokumenty
Projekt Datové schránky

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

Vývoj software pro Linuxové distribuce. Installfest Praha,

Instalace a konfigurace web serveru. WA1 Martin Klíma

Karel Bittner HUMUSOFT s.r.o. HUMUSOFT s.r.o.

Formy komunikace s knihovnami

Linux na desktopu Pro Běžně Frustrované Uživatele

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

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

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í.

Využití systému Dynamips a jeho nástaveb pro experimenty se síťovými technologiemi Petr Grygárek

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

konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

TÉMATICKÝ OKRUH Softwarové inženýrství

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

Kontrolní seznam projektu a systémové požadavky Xesar 3.0

Compatibility List. GORDIC spol. s r. o. Verze

DNSSEC Validátor - doplněk prohlížečů proti podvržení domény

MATURITNÍ PRÁCE dokumentace

DODATEČNÉ INFORMACE K ZADÁVACÍM PODMÍNKÁM Č. 4

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Bezpečný router pro domácí uživatele. Bedřich Košata

Sísyfos Systém evidence činností

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

Citrix klient a OneTimePass moje.cpas.cz. Uživatelský návod pro interní uživatele České pojišťovny a.s.

eidas odstartuje Německo Jaromír Talíř

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

ROZVOJ ICT A PDA ZAŘÍZENÍ THE DEVELOPMENT OF ICT AND PDA DEVICES Jiří Vaněk

Autorizovaná konverze dokumentů

Dokumentace. k projektu Czech POINT. Technická specifikace hardwarového a softwarového vybavení

Minimální požadavky na systém Linux a Windows na jednom disku Zrušení instalace Mandriva Linuxu... 23

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

ELEKTRONICKÉ PODÁNÍ OBČANA

Oracle 1.6.0_43 Oracle 1.7.0_17* a novější verze. Oracle 1.6.0_43 Oracle 1.7.0_17* a novější verze. Oracle 1.6.0_43 Oracle 1.7.0_17* a novější verze

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

OKsmart a správa karet v systému OKbase

TSM for Virtual Environments Data Protection for VMware v6.3. Ondřej Bláha CEE+R Tivoli Storage Team Leader. TSM architektura IBM Corporation

Technické podmínky I. Služby: II. Technické podmínky pro službu MojeBanka, MojeBanka Business, MojePlatba a Expresní linka Plus

Apache Cordova (PhoneGap 3)

Knot DNS workshop. CZ.NIC Labs Daniel Salzman / daniel.salzman@nic.cz Jan Kadlec / jan.kadlec@nic.cz

Dokumentace. k projektu Czech POINT. Technická specifikace hardwarového a softwarového vybavení

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

Použití čipových karet v IT úřadu

SADA VY_32_INOVACE_PP1

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

ORION Podpora notebooků

Reporting a Monitoring

Užitečné rady pro administrátory. IBM Domino/Notes

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

Přístup k poště MS Office 365 mají pouze studenti 1. a 2. ročníku EkF prezenčního studia. Přístup k ostatním službám mají všichni studenti.

SDC aplikace. Zrychlený návod na zprovoznění

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

Příručka nastavení funkcí snímání

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

1 Administrace systému Moduly Skupiny atributů Atributy Hodnoty atributů... 4

Požadavky pro výběrová řízení TerraBus ESB/G2x

1. V notebooku (v hlavním hostitelském operačním systému (MS Windows)) mít nainstalováno a nakonfigurováno:

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

Obsah. Kapitola 1. Předmluva 11 O této knize 13 Konvence...13

Úvod do Linuxu SŠSI Tábor 1

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Instalace a konfigurace

Postup instalace umožňující el. podpis v IS KP14+ pro webové prohlížeče Google Chrome a Firefox.

Michal Andrejčák, Klub uživatelů ŘS MicroSCADA, Hotel Omnia Janské Lázně, SDM600 Stručný popis a reference.

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

Úvodem Seznámení s HTML Rozhraní Canvas... 47

VirtualBox desktopová virtualizace. Zdeněk Merta

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

SDC aplikace. Podrobný návod na zprovoznění RS485 RTS vysílače

KMI / TMA Tvorba mobilních aplikací

IS RŽP. informační systém pro vedení živnostenského rejstříku a jeho propojení na registry veřejné správy. Ministerstvo průmyslu a obchodu

verze GORDIC spol. s r. o.

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

1. Pořízení dokumentu

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

Obsah. Rozdíly mezi systémy Joomla 1.0 a Systém Joomla coby jednička online komunity...16 Shrnutí...16

Emulátory. Autor: Martin Fiala. Spouštění programů a her z jiných OS nebo jiných platforem. InstallFest

ČÁST 1. Základy 32bitového programování ve Windows

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

TECHNICKÉ PODMÍNKY. Článek 2. Podmínky pro službu MojeBanka, MojeBanka Business, MojePlatba,Expresní linka Plus a TF OnLine

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

Česká pošta, s.p. na Linuxu. Pavel Janík open source konzultant

Příručka pro klientský certifikát

Django. Webový framework pro Python Projekt = webová stránka Aplikace = určitá funkcionalita webu

Jednorázová hesla pro zvýšení bezpečnosti vzdáleného přístupu mobilních uživatelů

O projektu OpenOffice.org a IBM OS/2 OS/2 a Open Source

Michal Kolařík ISZR - Brána k základním registrům

Stručná instalační příručka SUSE Linux Enterprise Server 11

Příloha č. 1 k Č.j.: OOP/10039/ Specifikace zařízení

Vytvoření bootovatelného média

Raspberry PI: Obr. 1 Raspberry PI

Archivace dat s využitím DÚ CESNET

Úvod do programovacího jazyka Python

Transkript:

Vývoj hybridní aplikace pro webos CZ.NIC z.s.p.o. Bedřich Košata / bedrich.kosata@nic.cz 18. 6. 2011 1

Plán přednášky Úvod Co jsou to datové schránky Ukázka výsledné aplikace webos historie, architektura a zařízení webos vývojové nástroje webos ukázka vývoje aplikace 2

Úvod CZ.NIC, z.s.p.o správce národní domény.cz... vývoj a rozvoj obecně prospěšných služeb pro lokální internetovou komunitu... CZ.NIC Labs vývojové oddělení CZ.NIC personálně oddělené od provozní části věnuje se projektům zaměřeným na DNS, sítě, ale také datové schránky DNSSEC Validator for Firefox BIRD idatovka, dsgui, libnicds Akademie CZ.NIC - http://www.nic.cz/akademie/ 3 http://labs.nic.cz/

Datové schránky Prostředek pro elektronickou komunikaci s orgány veřejné moci (OVM) Připomíná e-mail, ale: Centrální úložiště zpráv Jedna organizace má jen jednu DS Doručení fikcí (10 dní od dodání), doručení přihlášením do schránky Stav odeslané zprávy lze sledovat ověření doručení OVM má povinnost komunikovat přednostně přes DS (pokud je to možné) 4

Způsoby přístupu k DS Online webové rozhraní SOAP rozhraní pro aplikace třetích stran HTTPS Autentizace jméno + heslo jméno + heslo + komerční certifikát komerční certifikát (pro spisové služby) 5

Svobodné řešení od CZ.NIC Labs Desktop dsgui & dslib libnicds GUI aplikace v Pythonu + GTK Linux, Mac OS X, Windows, BSD knihovna pro C Mobil idatovka webdatovka iphone a ipad (od verze 2.0) prototyp pro webos založený na nemodifikované libnicds https://labs.nic.cz/page/909/webdatovka/ 6

Ukázka aplikace 7

webos pohled dovnitř založen na jádře Linuxu 2.6.24 využívá řadu open source knihoven a programů http://opensource.palm.com/packages.html HTML + JavaScript + SDK pro tvorbu aplikací (renderovací jádro WebKit) pro nízkoúrovňové věci je možnost psát rozšíření v C 8

webos historie červen 2009 Palm představuje webos na telefonu Palm Pre duben 2010 HP kupuje Palm říjen 2010 vychází webos 2 spolu s Palm Pre 2 únor 2011 ohlášen telefon HP Pre 3 a tablet HP TouchPad s webos 3.0 (vydání plánované v létě) květen 2011 vydán minitelefon HP Veer s webos 2.2 9

webos produkty telefony Palm Pre (600 MHz, 256 MB RAM, 8 GB, 320 480, 3.1 ) Palm Pre Plus (600 MHz, 512 MB RAM, 16 GB, 320 480, 3.1 ) Palm Pixi (600 MHz, 256 MB RAM, 8 GB, 320 400, 2.6 ) Palm Pre 2 (1 GHz, 512 MB RAM, 16 GB, 320 480, 3.1 ) HP Veer (800 MHz, 512 MB RAM, 8 GB, 320 400, 2.6 ) tablety HP Pre 3 (1.4 GHz, 512 MB RAM, 16 GB, 480 800, 3.6 ) HP TouchPad (2x1.2 GHz, 1 GB RAM, 16-32 GB, 1024 768, 9.7 ) 10

webos vývojové nástroje SDK software development kit JavaScript + HTML přístup k interním funkcím z JavaScriptu PDK plugin development kit gcc cross compiler + knihovny oficiálně podporován pouze pod Windows a Mac OS X umožňuje low-level přístup ke zdrojům grafická stránka je obstarávána knihovnou SDL (snadná portace existujících SDL her) hybridní aplikace spolupráce SDK s binární komponentou založenou na PDK 11

webos aktivace developer módu Nutné pro možnost instalace vytvořených aplikací do telefonu dvě možnosti vyťukat webos20090606 vyťukat upupdowndownleftrightleftrightbastart 12

webos SDK instalace nainstalujeme palm-novacom VirtualBox (3.0-3.2, 4.0 není podporován, ale je možné na něj později upgradovat) Java ia32-libs na 64 bitovém OS získáme Palm SDK novaterm umožňuje terminálový přístup k zařízení palm-generate, palm-package, palm-install práce s balíčky virtuální stroj s testovacím prostředím (bohužel x86) 13 https://developer.palm.com/content/resources/develop/sdk_pdk_download.html

webos emulátor beda@zelva:/tmp$ palm-emulator 14

webos interakce se zařízením novaterm - terminálový přístup k zařízení á la ssh beda@zelva:~$ novaterm -l 41662 5a19a46271ca7c591b2fcc9964c429c4042af610 usb castle-linux 50397 3261aebd20c9cfa70d56e95b22fbf9f55f2198d6 tcp emulator beda@zelva:~$ novaterm root@ - Palm Pre:/# beda@zelva:~$ novaterm -d 3261aebd20c9cfa70d56e95b22fbf9f55f2198d6 root@qemux86:/# 15

webos SDK první kroky beda@zelva:/tmp$ palm-generate -t new_app -p "{'id': 'cz.nic.labs.test', 'version':'0.1.0', 'vendor':'cz.nic', 'title':'test'}" /tmp/test generating new_app in /tmp/test beda@zelva:/tmp$ tree test test -- app -- assistants `-- stage-assistant.js `-- views -- appinfo.json -- framework_config.json -- icon.png -- images -- index.html -- sources.json `-- stylesheets `-- test.css 16

webos SDK první kroky beda@zelva:/tmp$ palm-package test creating package cz.nic.labs.test_0.1.0_all.ipk in /tmp beda@zelva:/tmp$ palm-install -d tcp cz.nic.labs.test_0.1.0_all.ipk installing package cz.nic.labs.test_0.1.0_all.ipk on device "emulator" {3261aebd20c9cfa70d56e95b22fbf9f55f2198d6} tcp 39196 beda@zelva:/tmp$ palm-launch -d tcp cz.nic.labs.test launching application cz.nic.labs.test on device "emulator" {3261aebd20c9cfa70d56e95b22fbf9f55f2198d6} tcp 39196 webos eclipse plugin spouštění webos aplikací přímo z prostředí eclipse 17

webos SDK základní pojmy Stage jeviště základní okno (karta) aplikace Scene obsah karty aplikace typicky obsahuje více scén Assistant scény se překrývají jako karty v balíčku JavaScript, který se stará o obsluhu jednotlivých událostí ve scéně každá scéna má svého asistenta jeden top-level asistent pro celou aplikaci asistent může aktivovat další scény a přidat je na stack 18

Komponenty aplikace Vzhled scény HTML + CSS + speciální atributy (x-mojo-...) Interakce s prvky JavaScript (definice propojení prvků s daty, obsluha událostí) Externí data Application services (otevření odkazu v prohlížeči, PDF ve čtečce) Systémové prostředky - System services via JavaScript (interakce s GPS, accelerometrem) Ukládání dat HTML 5 db [1,2], webos specifické alternativy Přístup ke grafice - PDK (SDL) Nízkoúrovňové záležitosti - PDK 19

webos struktura aplikace -- app -- assistants `-- stage-assistant.js `-- views -- appinfo.json -- framework_config.json -- icon.png -- images -- index.html -- sources.json `-- stylesheets `-- test.css -- app -- assistants -- account-config-assistant.js --... `-- stage-assistant.js -- models `-- isds-plugin.js `-- views -- account-config `-- account-config-scene.html --... `-- message-view -- message-list-entry.html -- message-list.html `-- message-view-scene.html... 20

webos PDK Oficiální PDK https://github.com/kayahr/linux-webos-pdk využívá oficiální PDK pro Mac OS X obsahuje cross-compiler a knihovny vhodné pro kompilace vlastních programů bez dalších externích závislostí WebOS Internals PDK http://www.webos-internals.org/wiki/webos_internals_pdk svobodná varianta oficiálního PDK obsahuje podporu pro Scratchbox 2 cross-kompilační prostředí instalace trvá desítky minut a může být potřeba vyhledat si řešení nějakého problému umožňuje pohodlně kompilovat externí knihovny s pomocí configure a make 21

webos interakce s pluginem Aplikace plugin volání registrovaných funkcí pluginu z JavaScriptu probíhá synchronně plugin může zablokovat běh aplikace lze převést na asynchronní kombinací se zpětným voláním vždy vrací pouze string s výhodou lze použít JSON z pluginu lze vyvolat výjimku Plugin aplikace volání funkcí definovaných v JavaScriptu z C na straně aplikace svážeme volání s konkrétní JS funkcí libovolný počet argumentů typu string volání se provádí asynchronně bez návratové hodnoty 22 https://developer.palm.com/content/content/api/dev-guide/pdk/js-and-plug-in-interface.html

webos vložení pluginu Aplikace vložit element object s opovídajícími parametry do HTML kódu stránky úprava appinfo.json + vytvoření package.properties vytvoření plugin_appinfo.json Plugin definovat funkce, které budou dostupné z JavaScriptu PDL_bool MyJSHandlerFunc(PDL_JSParameters *parms) zaregistrovat funkce dostupné z JavaScriptu PDL_Err PDL_RegisterJSHandler(const char *functionname, PDL_JSHandlerFunc function) aktivovat pomocí PDL_JSRegistrationComplete 23 https://developer.palm.com/content/content/api/dev-guide/pdk/js-and-plug-in-interface.html

webos vlastnosti pluginu běží v samostatném procesu musí se sám udržovat při životě, typicky vlastním event loopem životnost procesu odpovídá životnosti scény, která plugin inicializovala při vložení do více scén dochází ke vzniku nových instancí sdílení pluginu lze řešit vložením pomocí JavaScriptu a následným kopírováním vzniklého DOM objektu do dalších scén 24

webos cross-kompilace Scratchbox cross-kompilační chrootované prostředí ideální pro existující knihovny a aplikace beda@gaspode:~$ sb2 -M /srv/preware/cross-compile/staging/mapping-armv7 [SB2 mapping-armv7 armv7] beda@gaspode~$ gcc -v Using built-in specs. Reading specs from /usr/share/scratchbox2/modeconf/gcc-specs.simple rename spec cpp to old_cpp Target: arm-none-linux-gnueabi Configured with: /scratch/mitchell/builds/4.3-arm-none-linux-gnueabirespin/src/gcc-4.3/configure --build=i686-pc-linux-gnu --host=i686-pclinux-gnu --target=arm-none-linux-gnueabi --enable-threads... Thread model: posix gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) 25

webos cross-kompilace libnicds závisí na openssl používá autoconf a automake nejprve zkompilovat a nainstalovat příslušnou verzi openssl (./configure; make; make install) poté zkompilovat a nainstalovat libnicds (./configure; make; make install) libnicds přikompilovat staticky k pluginu není třeba žádných úprav openssl či libnicds 26

webos debugging palm-log umožňuje sledovat výpisy z aplikace v aplikaci - console.log(zpráva) na konzoli - palm-log -f cz.nic.labs.webdatovka eclipse plugin ukazuje log výpisy na konzoli automaticky plugin debugging kódu na PC bez webos specifických funkcí výpis do souboru v /media/internal, apod. 27

webos debugging beda@zelva:~/projects/webdatovka$ palm-log --system-log-level info setting log level to info on device "castle-linux" {5a19a46271ca7c591b2fcc9964c429c4042af610} usb 53412 beda@zelva:~/projects/webdatovka$ palm-log -f cz.nic.labs.webdatovka following logs for application cz.nic.labs.webdatovka on device "castlelinux" {5a19a46271ca7c591b2fcc9964c429c4042af610} usb 53412 [20110615-13:04:31.156127] info: =========> Calling palminitframework367, /usr/palm/frameworks/mojo/mojo.js:142 [20110615-13:04:32.079925] info: Requested submission : 367 [20110615-13:04:32.085937] info: Current locale is en_us [20110615-13:04:32.439941] error: Uncaught TypeError: Object #<an Object> has no method 'screenorientationchanged' [20110615-13:04:32.668334] warning: document had scroll top set, resetting. [20110615-13:04:32.912078] info: About to activate scene front-page [20110615-13:04:33.088623] info: Transition ended. 28

webos lokalizace JavaScript lokalizuje se á la gettext označením textu k překladu přímo v kódu překlady se definují v adresáři resources v souborech strings.json $L("Hello, world."); HTML v adresáři resources se vytvoří alternativní verze HTML souborů pro každý podporovaný jazyk Metadata jméno aplikace, apod. v adresáři resources se vytvoří alternativní appinfo.json soubor pro každý podporovaný jazyk 29 https://developer.palm.com/content/api/dev-guide/mojo/localization.html

webos postřehy mnoho věcí je asynchronních přístup k databázi práce s pluginem, pokud synchronní verze není dostatečně rychlá globální proměnné šetří práci 30

Závěr webos je rozumně otevřená platforma vývoj pod Linuxem není 100% podporován existuje komunita schopná pomoci dokumentace je dostatečná (i když je stále co zlepšovat) HP bude webos silně prosazovat doufejme, že brzo již uvidíme oficiální prodej i u nás 31

Děkuji za pozornost Bedřich Košata bedrich.kosata@nic.cz http://labs.nic.cz/datove-schranky/ http://www.nic.cz 32