1 Vývoj hybridní aplikace pro webOS CZ.NIC z.s.p.o. Bedřich Košata / 18. 6. 2011.

Slides:



Advertisements
Podobné prezentace
© 2000 VEMA počítače a projektování spol. s r. o..
Advertisements

Web Michal Žůrek Jak se na něj dívám já..
Stránka 1, © Vema, a. s.. Stránka 2, © Vema, a. s. Podnikové aplikace  Integrovaný podnikový systém (Integrated Business System):  komplex aplikací.
Webové rozhraní pro datové úložiště
Vývoj aplikací s využitím JavaFX
Tvorba webových aplikací
Maturitní okruh č. 7. Odstínit aplikace od specifik HWSpráva procesůSpráva pamětiSpráva souborůSpráva vstupů a výstupůSpráva sítěSystém ochrany a bezpečnostiSystém.
Moderní vzdělávací systémy vyšších a vysokých škol neuniverzitního typu Ing. Daniel CHOC CCA Group a.s.
PHP – Základy programování
Datové schránky ve velké společnosti SharePoint partenrská konference Microsoft Pavel Salava Mainstream technologies,
Sdílení obsáhlých souborů na webu Výpočetní technika.
Roman Valeš projekt AVT. Cíl práce Obeznámení s programovacím jazykem Java Práce s vývojovými nástroji Hierarchie kódu Androidu Vytvoření Android aplikace.
Ant Připravil: Ing. Jan Kolomazník. strana 2 Proč vznikl Potřeba sestavovat komplexní Nezávisle na platformě Popis založený na xml Spouštění různých úloh.
Internet.
Reporting Ing. Jan Přichystal, Ph.D.. Úvod Uživatelé obvykle přistupují k DW pomocí BI aplikace Většina využívá předdefinované reporty Poskytují standardizovaný.
CSS styly Kaskádové styly (CSS – Cascading Style Sheets) jsou prostředkem, který zajišťuje jednotný vzhled publikovaných stránek. Technologii CSS podporují.
Mozilla z pohledu vývojáře David Majda, CZilla — prezentace na předmět Linux (SWI043) na MFF UK.
Autor: Jakub Dubrovský www:  Analýza procesu kontroly silnic  Získat data z GPS  Zobrazit data na mapě  Odesílat data do GPS  Vytvoření.
Práce se šablonami v MS Word 2007
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou I NFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jan Roubíček.
Internetový prohlížeč
GIS??? Ve státní správě Karel Charvát. GIS?????? Je správné používat v souvislosti s využíváním prostorových informací ve státní správě, ale i v komerčním.
AJAX nejmodernější webová technologie… seminář pro učitele ZŠ a SŠ Mgr. Marek Osuchowski Ostravská univerzita © 2011.
Copyright (C) 1999 VEMA počítače a projektování, spol. s r.o.
Remote control and administration. Podle technického řešení Harware Software klient/server.
Web 2.0, folksonomie a uživatelská rozhraní Lenka Němečková Eliška Pavlásková Založeno mimo jiné na prezentacích prof. B. Whitea „The Promise of Rich User.
Aplikační programy, programovací jazyky, formáty datových souborů
2 Fučíková Sylvie HR/Win – moderní technologie pro osvědčené aplikace.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Kamasová Silvie 9.C. Mozilla firefox Rychlejší prohlížení webu Blokování vyskakovacích oken Prohlížení stránek v panelech Snadná změna vzhledu Intuitivní.
ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA ELEKTROTECHNICKÁ KATEDRA TEORETICKÉ ELEKTROTECHKY Oddělení informatiky Java Micro Edition pro mobilní zařízení.
IDEA Web Systém 5.0 Pavel Bezstarosti IDEA spol. s r.o
Srovnání systémů řízení projektů Vypracovala: Jitka Procházková.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Vývojová platforma Mozilla David Majda, CZilla — LinuxExpo 2006, Praha.
Vzdálená správa Tomáš Kalný.
OPERAČNÍ SYSTÉMY.
14. června 2004Michal Ševčenko Architektura softwarového systému DYNAST Michal Ševčenko VIC ČVUT.
Tvorba metainformačního systému pro prostorová data s využitím Internetových technologií Zpracovatel: Tomáš Duchoslav Vedoucí: Dr. Ing. Bronislava Horáková.
JavaScript úvod. Jazyky webového vývojáře Dynamická stránka  aktivně mění svůj obsah v reakci na činnost uživatele  zpracování na straně serveru (PHP,
Apple Michaela Vodičková 5. A.
Stanice v síti učební texty pro deváté ročníky ZŠ.
Rezervační systém v prostředí XUL Zdeněk Novák, Petr Ondrejka.
GRASS GIS Alternativní GIS – volně dostupné programy a data.
Klient pro správu databází MySQL 1 Klient pro správu databází MySQL Zbyněk Munzar České vysoké učení technické v Praze Fakulta elektrotechnická.
Marcel Ondráček Martin Kasalý Petr Hanych.  je počítačový program, který slouží k prohlížení World Wide Webu  Program umožňuje komunikaci s HTTP serverem.
 nejvíce využívaná služba internetu založená na www stránkách  poskytuje virtuální informační prostor, přístupný pomocí prohlížeče  výhodou www stránek.
WebOS – operační systém (nejen) pro mobilní přístroje Lukáš Jelínek AIKEN s.r.o. -
Hybridní mobilní aplikace pro Android Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu.
Bezdrátové senzorické sítě Operační systémy a vývojové prostředky Ing. David Široký Katedra informatiky a výpočetní techniky Fakulta aplikovaných.
EU peníze školám Registrační číslo projektu CZ.1.07/1.4.00/ Název projektu Inovace školství Šablona - název Inovace a zkvalitnění výuky prostřednictvím.
Internet. je celosvětový systém navzájem propojených počítačových sítí („síť sítí“), ve kterých mezi sebou počítače komunikují pomocí rodiny protokolů.
Vývoj software pro Linuxové distribuce Installfest Praha,
BEZPEČNOSTNÍ TECHNOLOGIE I Operační program Vzdělávání pro konkurenceschopnost Projekt: Vzdělávání pro bezpečnostní systém státu (reg. č.: CZ.1.01/2.2.00/ )
Prezentace výsledku projektu k předmětu OSP
as4u advanced system for you
Programování mikropočítačů Platforma Arduino
Vývoj mobilních aplikací a jejich výhody
Operační Systém Operační systém je v informatice základní programové vybavení počítače (tj. software), které je zavedeno do paměti počítače při jeho.
Vlastnosti souborů Jaroslava Černá.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o, Orlová Lutyně
Operační systémy - úvod
INTEGRACE řešení základních registrů
Hybridní mobilní aplikace pro Android
Internetové publikování Dynamické HTML
Instalace programů do Linuxu
Web Application Scanning
Elektronický (digitální) podpis
Linux - instalace software
Transkript prezentace:

1 Vývoj hybridní aplikace pro webOS CZ.NIC z.s.p.o. Bedřich Košata /

2 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

3 Ú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

4 Datové schránky ● Prostředek pro elektronickou komunikaci s orgány veřejné moci (OVM) ● Připomíná , 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é)

5 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)

6 ● Desktop – dsgui & dslib – GUI aplikace v Pythonu + GTK – Linux, Mac OS X, Windows, BSD – libnicds – knihovna pro C ● Mobil – iDatovka – iPhone a iPad (od verze 2.0) – webDatovka – prototyp pro webOS založený na nemodifikované libnicds – Svobodné řešení od CZ.NIC Labs

7 Ukázka aplikace

8 webOS – pohled dovnitř ● založen na jádře Linuxu ● využívá řadu open source knihoven a programů – ● 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

9 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

10 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“) – HP Pre 3 (1.4 GHz, 512 MB RAM, 16 GB, 480×800, 3.6“) ● tablety – HP TouchPad (2x1.2 GHz, 1 GB RAM, GB, 1024×768, 9.7“)

11 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

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

13 webOS SDK – instalace ● nainstalujeme – palm-novacom – VirtualBox ( , 4.0 není podporován, ale je možné na něj později upgradovat) – Java – ia32-libs – na 64 bitovém OS – Palm SDK ● získáme – 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)

14 webOS – emulátor palm-emulator

15 webOS – interakce se zařízením ● novaterm - terminálový přístup k zařízení á la ssh novaterm -l a19a46271ca7c591b2fcc9964c429c4042af610 usb castle-linux aebd20c9cfa70d56e95b22fbf9f55f2198d6 tcp emulator novaterm - Palm Pre:/# novaterm -d 3261aebd20c9cfa70d56e95b22fbf9f55f2198d6

16 webOS SDK – první kroky 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 tree test test |-- app | |-- assistants | | `-- stage-assistant.js | `-- views |-- appinfo.json |-- framework_config.json |-- icon.png |-- images |-- index.html |-- sources.json `-- stylesheets `-- test.css

17 webOS SDK – první kroky palm-package test creating package cz.nic.labs.test_0.1.0_all.ipk in /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 palm-launch -d tcp cz.nic.labs.test launching application cz.nic.labs.test on device "emulator" {3261aebd20c9cfa70d56e95b22fbf9f55f2198d6} tcp ● webOS eclipse plugin – spouštění webOS aplikací přímo z prostředí eclipse

18 webOS SDK – základní pojmy ● Stage – jeviště – základní okno (karta) aplikace ● Scene – obsah karty – aplikace typicky obsahuje více scén – scény se překrývají jako karty v balíčku ● Assistant – 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

19 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é alternativy12 ● Přístup ke grafice - PDK (SDL) ● Nízkoúrovňové záležitosti - PDK

20 webOS – struktura aplikace |-- 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 |... |-- app | |-- assistants | | `-- stage-assistant.js | `-- views |-- appinfo.json |-- framework_config.json |-- icon.png |-- images |-- index.html |-- sources.json `-- stylesheets `-- test.css

21 webOS – PDK ● Oficiální 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 – – 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

22 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

23 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

24 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

25 webOS – cross-kompilace ● Scratchbox – cross-kompilační chrootované prostředí – ideální pro existující knihovny a aplikace sb2 -M /srv/preware/cross-compile/staging/mapping-armv7 [SB2 mapping-armv7 armv7] 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-gnueabi- respin/src/gcc-4.3/configure --build=i686-pc-linux-gnu --host=i686-pc- linux-gnu --target=arm-none-linux-gnueabi --enable-threads... Thread model: posix gcc version (Sourcery G++ Lite 2009q1-203)

26 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

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

28 webOS – debugging palm-log --system-log-level info setting log level to info on device "castle-linux" {5a19a46271ca7c591b2fcc9964c429c4042af610} usb palm-log -f cz.nic.labs.webdatovka following logs for application cz.nic.labs.webdatovka on device "castle- linux" {5a19a46271ca7c591b2fcc9964c429c4042af610} usb [ :04: ] info: =========> Calling palmInitFramework367, /usr/palm/frameworks/mojo/mojo.js:142 [ :04: ] info: Requested submission : 367 [ :04: ] info: Current locale is en_us [ :04: ] error: Uncaught TypeError: Object # has no method 'screenOrientationChanged' [ :04: ] warning: document had scroll top set, resetting. [ :04: ] info: About to activate scene front-page [ :04: ] info: Transition ended.

29 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

30 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

31 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

32 Děkuji za pozornost Bedřich Košata