SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Vývoj Windows Store aplikací pomocí HTML,
CSS a Javascriptu
2012 © Skype. Commercially confidential.
Aby bylo jasno …
• původně Modern aplikace

• posléze Metro aplikace

• nyní Windows Store aplikace (Windows Store Apps)




 2012 © Skype. Commercially confidential.
Obsah
1. Skype a Windows 8

2. obecně o platformě Windows 8

3. Windows Store aplikace

4. Windows Library for Javascript

5. demo




 2012 © Skype. Commercially confidential.
Skype a Windows 8




2012 © Skype. Commercially confidential.
Skype a Windows 8
• Skype je součástí Microsoftu od 1.1.2012
  •    jsme samostatná divize – na stejné úrovni jako Windows, Office nebo Xbox

• napadlo nás, že udělat Skype pro Windows 8 není špatný nápad
  •    shodou okolností, podobný nápad mělo vedení Microsoftu 

• přemýšleli jsme v čem to budeme psát
  •    chtělii jsme využít experty na web frontend (HTML, CSS)
  •    trochu jsme se báli C# + XAML

• Skype pro Windows 8 není jen o Javascriptu
  •    100 vývojářů a QE, 10 týmů
  •    C++/C# backend, PHP web backend, Postgres database, web front end (HTML/CSS/JS)


 2012 © Skype. Commercially confidential.
Windows 8




2012 © Skype. Commercially confidential.
Windows 8 - WinRT
•       nová sada API

•       moderní a jednoduché
    •      HDC, WndProc, LPARAM, ...

•       asynchronní
    •      zejména kvůli touch

•       projekce WinRT API – C++, C#, VB, Javascript




    2012 © Skype. Commercially confidential.
Co potřebujete pro vývoj
• Windows 8

• Visual Studio 2012 (Express/Ultimate)
  •    Blend
  •    DOM Explorer
  •    Zephyr

• ale stačí notepad a PowerShell ...
  •    pokud nepotřebujeme psát native WinRT komponenty

• e-book: Brockschmidt, Kraig: “Programming Windows 8 Apps with HTML, CSS and
  Javascript” (zdrama)
  •    také jsme na ní začínali
  •    je skvělá
 2012 © Skype. Commercially confidential.
Windows Store aplikace




2012 © Skype. Commercially confidential.
Proč zrovna HTML, Javascript a CSS
• rozšířená technologie

• jednoduchost
  •    zkuste vysvětlit prarodičům C++ a Javascript

• nebude to pomalé?
  •    IE 10
  •    hardwareová akcelerace CSS
  •    můžeme psát i nativní kód v C++

• odpadají problémy s kompatibilitou




 2012 © Skype. Commercially confidential.
Z čeho se Windows Store aplikace skládá

                                            zdrojový kód (.js,
                                               .css, .html)


                                                 nativní
                                                kód (.dll)


                                             resources (.png,
                                             .svg, …)


                                            AppxManifest.xml
                                                                 .appx


 2012 © Skype. Commercially confidential.
Jak aplikace běží
• wwahost.exe
  •    IE 10
  •    window.alert(…), window.open(…)

• sandbox
  •    izolace
  •    řízený přístup k citlivým zařízením (kamera, mikrofon)
  •    přístup do souborové systému (určuje manifest)

• lokální kontext vs. web kontext
  •    přístup k WinRTAPI, přístup ke vzdáleným skriptům




 2012 © Skype. Commercially confidential.
Životní cyklus Windows Store aplikace
• výdrž baterie, bandwidth

• focus → běží

• nemá focus → uspí se (suspended) a posléze ukončí (terminated)
  • o uspání dostaneme zprávu, máme 5 s na uložení stavu (crash pokud to nestihneme)
  • o ukončení zprávu nedostaneme, může nastat kdykoli, mimo naši kontrolu

• podpora pro “always connected”
  • push notifikace
      • toast, tile, badge




 2012 © Skype. Commercially confidential.
Javascript, HTML a CSS




2012 © Skype. Commercially confidential.
Javascript
• tak, jak ho všichni známe

• IE 10

• podpora ECMAScript 5 strict mode (“use strict”)

• existující knihovny
  •    JQuery

• Windows Library for Javascript 1.0 (WinJS)

• TypeScript



 2012 © Skype. Commercially confidential.
WinJS
• sdílená knihovna, automaticky distribuovaná přes Windows Store (manifest)
  • „JQuery“ pro Windows Store aplikace
• Namespace, Class konstrukce
  • derive, mix

• podpora pro práci s asynchronními voláními
  •    WinJS.Promise

• základní ovládací prvky Window Store aplikací (navíc k standardním HTML5)
  •    listview, rating, …

• data-binding – one-time, one-way

 2012 © Skype. Commercially confidential.
HTML
• HTML5

• Windows 8 specifické atributy
  •    data-win-control, data-win-bind,
       data-win-res, data-win-options

• standardní ovládací prvky

• navigace přidáváním elementů do
  DOMu spíše než přes <a
  href=“”>




 2012 © Skype. Commercially confidential.
HTML markup - příklad
<!-- sablona pro polozku listview -->

<div id="myTemplate" data-win-control="WinJS.Binding.Template">

   <div style="width: 150px; height: 100px;">

        <h2 data-win-bind="innerText: venueName"></h2>

        <div data-win-res="{textContent: 'address_title'}"></div>

        <div data-win-bind="innerText: venueAddress"></div>

   </div>

</div>
 2012 © Skype. Commercially confidential.
CSS
• CSS3 na steroidech

• proprietární -ms property, -ms hodnoty, -ms pseudoelementy
  •    display: -ms-grid; display: -ms-flexbox;
  •    -ms-grid-columns: 1fr 300px;
  •    input::-ms-clear

• media query
  •    -ms-view-state: fullscreen | snapped | fill




 2012 © Skype. Commercially confidential.
Demo




2012 © Skype. Commercially confidential.
Otázky?
        jindraparus

        @jparus

        jindrich.parus@skype.net



Kam dál?
• “graduates hiring” program

• jobs.skype.com


 2012 © Skype. Commercially confidential.

Weitere ähnliche Inhalte

Ähnlich wie Vyvoj Windows Store aplikaci pomoci HTML, CSS a Javascriptu

Rich Internet Applications 2009 (Czech)
Rich Internet Applications 2009 (Czech)Rich Internet Applications 2009 (Czech)
Rich Internet Applications 2009 (Czech)Pavel Růžička
 
Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Tomáš Kukol
 
Borek Bernard: TypeScript - příčetný jazyk pro web
Borek Bernard: TypeScript - příčetný jazyk pro webBorek Bernard: TypeScript - příčetný jazyk pro web
Borek Bernard: TypeScript - příčetný jazyk pro webDevelcz
 
Anonymní Inteligenti - Angular js
Anonymní Inteligenti - Angular jsAnonymní Inteligenti - Angular js
Anonymní Inteligenti - Angular jsPetr Stanislav
 
Blend for Visual Studio 2015
Blend for Visual Studio 2015Blend for Visual Studio 2015
Blend for Visual Studio 2015Jiri Danihelka
 
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptČtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptCtvrtkoncz
 
Responzivní webdesign (pro MS Fest)
Responzivní webdesign (pro MS Fest)Responzivní webdesign (pro MS Fest)
Responzivní webdesign (pro MS Fest)Martin Michálek
 
Webový front-end ve službách mobilního vývojáře
Webový front-end  ve službách mobilního  vývojáře Webový front-end  ve službách mobilního  vývojáře
Webový front-end ve službách mobilního vývojáře Martin Michálek
 
Co přináší Oracle Database 12c Release 2
Co přináší Oracle Database 12c Release 2Co přináší Oracle Database 12c Release 2
Co přináší Oracle Database 12c Release 2MarketingArrowECS_CZ
 
Dotykova zarizeni ve vyuce informatiky
Dotykova zarizeni ve vyuce informatikyDotykova zarizeni ve vyuce informatiky
Dotykova zarizeni ve vyuce informatikyINTERES - KISK
 
Generátory statických webů
Generátory statických webůGenerátory statických webů
Generátory statických webůMichal Doležel
 

Ähnlich wie Vyvoj Windows Store aplikaci pomoci HTML, CSS a Javascriptu (20)

Joomla! na MS Windows
Joomla! na MS WindowsJoomla! na MS Windows
Joomla! na MS Windows
 
Rich Internet Applications 2009 (Czech)
Rich Internet Applications 2009 (Czech)Rich Internet Applications 2009 (Czech)
Rich Internet Applications 2009 (Czech)
 
Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]
 
TNPW2-2013-05
TNPW2-2013-05TNPW2-2013-05
TNPW2-2013-05
 
Borek Bernard: TypeScript - příčetný jazyk pro web
Borek Bernard: TypeScript - příčetný jazyk pro webBorek Bernard: TypeScript - příčetný jazyk pro web
Borek Bernard: TypeScript - příčetný jazyk pro web
 
Anonymní Inteligenti - Angular js
Anonymní Inteligenti - Angular jsAnonymní Inteligenti - Angular js
Anonymní Inteligenti - Angular js
 
Začínáme iOS vývoj
Začínáme iOS vývojZačínáme iOS vývoj
Začínáme iOS vývoj
 
TNPW2-2014-05
TNPW2-2014-05TNPW2-2014-05
TNPW2-2014-05
 
TNPW2-2012-03
TNPW2-2012-03TNPW2-2012-03
TNPW2-2012-03
 
Blend for Visual Studio 2015
Blend for Visual Studio 2015Blend for Visual Studio 2015
Blend for Visual Studio 2015
 
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptČtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
 
TNPW2-2013-07
TNPW2-2013-07TNPW2-2013-07
TNPW2-2013-07
 
Responzivní webdesign (pro MS Fest)
Responzivní webdesign (pro MS Fest)Responzivní webdesign (pro MS Fest)
Responzivní webdesign (pro MS Fest)
 
TNPW2-2013-03
TNPW2-2013-03TNPW2-2013-03
TNPW2-2013-03
 
Webový front-end ve službách mobilního vývojáře
Webový front-end  ve službách mobilního  vývojáře Webový front-end  ve službách mobilního  vývojáře
Webový front-end ve službách mobilního vývojáře
 
Co přináší Oracle Database 12c Release 2
Co přináší Oracle Database 12c Release 2Co přináší Oracle Database 12c Release 2
Co přináší Oracle Database 12c Release 2
 
06 Cvičení.pptx
06 Cvičení.pptx06 Cvičení.pptx
06 Cvičení.pptx
 
Dotykova zarizeni ve vyuce informatiky
Dotykova zarizeni ve vyuce informatikyDotykova zarizeni ve vyuce informatiky
Dotykova zarizeni ve vyuce informatiky
 
TNPW2-2016-03
TNPW2-2016-03TNPW2-2016-03
TNPW2-2016-03
 
Generátory statických webů
Generátory statických webůGenerátory statických webů
Generátory statických webů
 

Vyvoj Windows Store aplikaci pomoci HTML, CSS a Javascriptu

  • 1. Vývoj Windows Store aplikací pomocí HTML, CSS a Javascriptu 2012 © Skype. Commercially confidential.
  • 2. Aby bylo jasno … • původně Modern aplikace • posléze Metro aplikace • nyní Windows Store aplikace (Windows Store Apps) 2012 © Skype. Commercially confidential.
  • 3. Obsah 1. Skype a Windows 8 2. obecně o platformě Windows 8 3. Windows Store aplikace 4. Windows Library for Javascript 5. demo 2012 © Skype. Commercially confidential.
  • 4. Skype a Windows 8 2012 © Skype. Commercially confidential.
  • 5. Skype a Windows 8 • Skype je součástí Microsoftu od 1.1.2012 • jsme samostatná divize – na stejné úrovni jako Windows, Office nebo Xbox • napadlo nás, že udělat Skype pro Windows 8 není špatný nápad • shodou okolností, podobný nápad mělo vedení Microsoftu  • přemýšleli jsme v čem to budeme psát • chtělii jsme využít experty na web frontend (HTML, CSS) • trochu jsme se báli C# + XAML • Skype pro Windows 8 není jen o Javascriptu • 100 vývojářů a QE, 10 týmů • C++/C# backend, PHP web backend, Postgres database, web front end (HTML/CSS/JS) 2012 © Skype. Commercially confidential.
  • 6. Windows 8 2012 © Skype. Commercially confidential.
  • 7. Windows 8 - WinRT • nová sada API • moderní a jednoduché • HDC, WndProc, LPARAM, ... • asynchronní • zejména kvůli touch • projekce WinRT API – C++, C#, VB, Javascript 2012 © Skype. Commercially confidential.
  • 8. Co potřebujete pro vývoj • Windows 8 • Visual Studio 2012 (Express/Ultimate) • Blend • DOM Explorer • Zephyr • ale stačí notepad a PowerShell ... • pokud nepotřebujeme psát native WinRT komponenty • e-book: Brockschmidt, Kraig: “Programming Windows 8 Apps with HTML, CSS and Javascript” (zdrama) • také jsme na ní začínali • je skvělá 2012 © Skype. Commercially confidential.
  • 9. Windows Store aplikace 2012 © Skype. Commercially confidential.
  • 10. Proč zrovna HTML, Javascript a CSS • rozšířená technologie • jednoduchost • zkuste vysvětlit prarodičům C++ a Javascript • nebude to pomalé? • IE 10 • hardwareová akcelerace CSS • můžeme psát i nativní kód v C++ • odpadají problémy s kompatibilitou 2012 © Skype. Commercially confidential.
  • 11. Z čeho se Windows Store aplikace skládá zdrojový kód (.js, .css, .html) nativní kód (.dll) resources (.png, .svg, …) AppxManifest.xml .appx 2012 © Skype. Commercially confidential.
  • 12. Jak aplikace běží • wwahost.exe • IE 10 • window.alert(…), window.open(…) • sandbox • izolace • řízený přístup k citlivým zařízením (kamera, mikrofon) • přístup do souborové systému (určuje manifest) • lokální kontext vs. web kontext • přístup k WinRTAPI, přístup ke vzdáleným skriptům 2012 © Skype. Commercially confidential.
  • 13. Životní cyklus Windows Store aplikace • výdrž baterie, bandwidth • focus → běží • nemá focus → uspí se (suspended) a posléze ukončí (terminated) • o uspání dostaneme zprávu, máme 5 s na uložení stavu (crash pokud to nestihneme) • o ukončení zprávu nedostaneme, může nastat kdykoli, mimo naši kontrolu • podpora pro “always connected” • push notifikace • toast, tile, badge 2012 © Skype. Commercially confidential.
  • 14. Javascript, HTML a CSS 2012 © Skype. Commercially confidential.
  • 15. Javascript • tak, jak ho všichni známe • IE 10 • podpora ECMAScript 5 strict mode (“use strict”) • existující knihovny • JQuery • Windows Library for Javascript 1.0 (WinJS) • TypeScript 2012 © Skype. Commercially confidential.
  • 16. WinJS • sdílená knihovna, automaticky distribuovaná přes Windows Store (manifest) • „JQuery“ pro Windows Store aplikace • Namespace, Class konstrukce • derive, mix • podpora pro práci s asynchronními voláními • WinJS.Promise • základní ovládací prvky Window Store aplikací (navíc k standardním HTML5) • listview, rating, … • data-binding – one-time, one-way 2012 © Skype. Commercially confidential.
  • 17. HTML • HTML5 • Windows 8 specifické atributy • data-win-control, data-win-bind, data-win-res, data-win-options • standardní ovládací prvky • navigace přidáváním elementů do DOMu spíše než přes <a href=“”> 2012 © Skype. Commercially confidential.
  • 18. HTML markup - příklad <!-- sablona pro polozku listview --> <div id="myTemplate" data-win-control="WinJS.Binding.Template"> <div style="width: 150px; height: 100px;"> <h2 data-win-bind="innerText: venueName"></h2> <div data-win-res="{textContent: 'address_title'}"></div> <div data-win-bind="innerText: venueAddress"></div> </div> </div> 2012 © Skype. Commercially confidential.
  • 19. CSS • CSS3 na steroidech • proprietární -ms property, -ms hodnoty, -ms pseudoelementy • display: -ms-grid; display: -ms-flexbox; • -ms-grid-columns: 1fr 300px; • input::-ms-clear • media query • -ms-view-state: fullscreen | snapped | fill 2012 © Skype. Commercially confidential.
  • 20. Demo 2012 © Skype. Commercially confidential.
  • 21. Otázky? jindraparus @jparus jindrich.parus@skype.net Kam dál? • “graduates hiring” program • jobs.skype.com 2012 © Skype. Commercially confidential.

Hinweis der Redaktion

  1. puvodne Modern aplikace - to budeznitblbeza par let, protožeuž to nebude Modernposleze Metro, ale pak se ukazaloze to je jen codename a veskutecnostinemeckasamoobluha - co muzemeocekavat pro prazske metro se zatim nevioficialninazev Windows Store apps
  2. Windows 8 je nova verze OS od MS. RP public. GA 26. rijna.Windows 8 prinaseji krome klasickeho desktopu zalozeneho na Win32 i novy druh aplikaci bezicich na WinRT API. WinRT je nova sada API pro Windows Store aplikace.Oproti Win32 je WinRT modernejsi a jednodussi (OOP, zadne HDC, WndProc a LPARAM)* Knihach.Petzolda o win32 stale plati, temer 20 letRada volani asynchronni kvuli touch – nemuzeme si dovolit blokovat.Promise v javascriptu, await v C#Aplikace zalozene na WinRT bezi v sanboxu – izolace od ostatnich aplikaci, rizeny pristup k zarizenim jako napr. Kamera a mikrofon, pristup do souboroveho systemu.Existujiprojekce pro Javascript, C#, C++ a VBProcjsemsivybralJavascript + HTML + CSS nawebexpo?publikumtechnologiejizzna, akoratpouziva v jinemkontextuMS melpodobnyduvod
  3. win8 (RP public, 26. rijna GA)visual studio 2012 expressale pokudnedelame native komponenty, kterevyzadujikompilaci, takstaci notepad, Win8 applikace je pouzezazipovanybalicekblenddom explorerkniha “Programming Windows 8 Apps with HTML, CSS and Javascript” od KraigaBrockschmidta (preview http://blogs.msdn.com/b/microsoft_press/archive/2012/06/04/free-ebook-programming-windows-8-apps-with-html-css-and-javascript-first-preview.aspx)
  4. .NET (proprietarnitechnologie MS) ma velkoupenetraci, ale ne zdalekatakovoujako JS a HTML5Jednoduchostexistujiciaplikace, knihovnykazdy se to snadnonauci a muzesirikat app developernebude to pomale?js engine IE 10muzemepsati native (hybridniaplikace)C++potrebujemeruznekomponenty pro ruznearchitektury - x86, x64, arm.NET.NET framework 4.5odpadajicrossbrowserproblemy, aplikacepobezijen v IE10
  5. kod - html, js, csspristup v markupu&lt;imgsrc=”/images/logo.png”&gt;v koduopenFile(“ms-appx:///images/logo.png”)nativnikoddllskypeano, low level socket komunikaci, kodovani, dekodovanivideazatim v jsnedelame ;-)zdrojeobrazky (rastr, svg), zvuky, jazykoveretezcems-resource://manifest.xmlco je aplikacezac (zakladniidentifikace, store)capabilities - deklarujemepristup k sys. zdrojumkamera, micinternetexplicitnipovoleniuzivatelem, muzekdykolivypnoutjazykypodpis - zabranujezneuzitikoducele v jednombalicku - appx, vlastne zip, ale ma vychytavky pro distribuci a zabezpecenijskod je videt, yay!azbudeskype, tak se podivejteinstalaceprespowershell scriptvlastnejenzapisasinamilion mist v registrechnekonzistencepriselhani deploy/unistall, vim o sys. registru vice nezbychchtel
  6. wwahost - IE 10 bez UI, renderuje HTML a provadi JShosted environmentexistujiodlisnostiwindow.alert(...), window.open(...) nefungujisandboxizolace od systemu a ostatnichaplikacibroked access kezdrojum (kamera, mic, …)kamaplikacemuzepsat, odkudmuze cist (manifest!)lokalnikontextma pristup k WinRT APIbezi v nemhlavnistranka (deklarovana v manifestu)web kontextnemapristup k WinRT APIma pristupkevzdalenymskriptumiframems-appx-web:/// nebo http[s]://localdata, locallsettings, roaming folder, temp folderroaming, opravdu??