910 likes | 1.13k Views
Platforma aplikacyjna Windows 8. Tomasz Kopacz. Agenda. Windows 8 Dlaczego Windows 8 Metro i filozofia (krótko) Sklep WinRT - jak to działa pod spodem (ABI ) Drobiazgi. Nowe szanse dla twórców aplikacji. Szybkie i Płynne ( Fast and fluid ) aplikacje pełnoekranowe
E N D
Platforma aplikacyjna Windows 8 Tomasz Kopacz
Agenda Windows 8 Dlaczego Windows 8 Metro i filozofia (krótko) Sklep WinRT - jak to działa pod spodem (ABI) Drobiazgi
Nowe szanse dla twórców aplikacji • Szybkie i Płynne (Fast and fluid) aplikacje pełnoekranowe • OS zaprojektowany najpierw z myślą o ekranach dotykowych (Touch-first OS), jednocześnie bez poświęcenia klasycznej funkcjonalności PC • Unikalna i wyróżniająca się platforma aplikacyjna User Experience • Sklep zintegrowany z każdym Windows 8 PC • Elastyczny proces i modele zarobkowe • Mechanizmy odkrywania aplikacji skupione na konsumencie Windows Store • Umożliwia wykorzystanie istniejących umiejętności i zasobów • Bazuje na najlepszych narzędziach, szablonach i dokumentacji, do której MS przyzwyczaił programistów • Integracja aplikacji z usługami w chmurze – personalizacja, przeniesienie ustawień w zawsze dostępne miejsce Platform & Tools • Nowe partnerstwa wokół ARM oraz kontynuowane wsparcie dla x86/64 • Usprawnienia w fundamentalnych obszarach związanych z pracą mobilną • Wsparcie dla wielu urządzeń: w wielu kształtach, rozmiarach;Plus urządzenia peryferyjne Devices Cloud Services
Microsoft Confidential Dlaczego warto tworzyć aplikacje W8? Live Tiles • Wasza aplikacja/zawartość na wierzchu w centrum ekranu startowego • Bogaty zestaw informacji dostępny natychmiast dla użytkowników • Powiadomienia Push dla zdarzeń i czasowych uaktualnień Search Contracts • Możliwość dodania własnego brandu i aplikacji w jednym, spójnym mechanizmie wyszukiwania • Wyszukiwanie kontekstowe powiązane z własną aplikacją • Mechanizm spójny dla całego systemu i wszystkich aplikacji Share Contracts • Łatwa możliwość wspóldzielenia zawartości bezpośrednio z poziomu aplikacji • Łatwa możliwość przyjmowania zawartości od innych aplikacji • Więcej aplikacji, bogatsze i bardziej osobiste doświadczenia z użytkowania System Contracts • Podłączenie aplikacji do wszystkiego do czego podłącza się system (PC) • Podłaczenie zawartości aplikacji do innej aplikacji, pliku, urządzanie czy usługi – oraz vice-versa Hardware • Aplikacje zawsze podłączone • Automatyczna adaptacja do nowych sposobów interakcji (pen, ekran dotykowy, klawiatura, myszka) • Łatwy dostęp do sprzętu (sensory, kamera, itd)
Świat i aplikacje (też biznesowe) Konsument, Konsument, Konsument Użytkownik jest również biznesmenem i konsumentem. Jeżeli parametry biznesowe są porównywalne, wybiera konsument. Konsumenci lubią piękne rzeczy Argumenty emocjonalne Racjonalne spełniamy Czyli – piękne bo JA TAK CHCĘ Nie ma innego powodu! W sklepie kupuje się oczami!
Elementy: Prostota … (dużo ich)
Elementy: Typografia Segoe Light (Segoe WP Light) Segoe Regular (Segoe WP) Segoe Semi-Bold (Segoe WP Semi-Bold) Segoe Bold (Segoe WP; Bolded) Segoe Black (Segoe WP Black)
Windows StoreApps – DesignPrinciples Pride in craftsmanship Be fast and fluid Authentically digital Do more with less Win as one
Jak wydawać polecenia? AppBar Panel (charm) Powierzchnia aplikacji • Do tego: skróty klawiszowe, mysz, menu kontekstowe (po tapnięciu) itp.
Interakcja i czytanie (tu) Interakcja Czytanie
Zasoby • Blend – niedoceniane narzędzie! • Designing UX for apps - tutaj • Planowanie • Design Guidance • Case studies z migracji Web, iOS -> Windows 8 • Wart ściągnięcia PDF z całością (lokalnie tutaj) • Szablony PSD • Przegląd animacji • Szkolenia z budowy nowoczesnego interfejsu • Z programisty projektant…; Jak myśleć i planować • (nie jest to szkolenie techniczne!)
Windows Store Podział zysków 70:30 lub 80:20 30 do 25000 USD Free + reklamy – dowolnie Trial / Paid | Paid In-apppurchase Rejestracja 49 lub 99 USD / rok Dreamspark, MSDN, Bizspark – bezpłatnie 1 rok! Od strony dewelopera Pełne dane na temat licencji; Recipes (przypomnienie) Symulator
Lektura obowiązkowa: App Developer Agreement Windows 8 app certification requirements Windows Store Terms of Use Reporting Infringement to Microsoft (znaki towarowe) (przepraszam, ale to NALEŻY przeczytać ze zrozumieniem)
Rating Dobrowolne: Japan – CERO Canada – ESRB New Zealand - OFLC-NZ Germany – USK Australia - COB-AU PEGI - http://www.pegi.info Morocco, Netherlands, Malaysia, Malta, Norway, Peru, Philippines, Oman, Pakistan, Kazakhstan, Kuwait, Italy, Jordan, Latvia, Israel, Lithuania, Lebanon, Libya, Poland, Turkey, Ukraine, Trinidad and Tobago, Tunisia, United Arab Emirates, Vietnam, Iraq, Uruguay, Venezuela, Romania, Saudi Arabia, Portugal, Qatar, Serbia, Sri Lanka, Thailand, Slovakia, Slovenia, Russia, Singapore, Luxembourg, Mexico, Switzerland, United Kingdom, Spain, Sweden, Ireland, India, France, Puerto Rico, China, Hong Kong SAR, Austria, Belgium, Denmark, Egypt, Cyprus, Czech Republic, Estonia, Hungary, Indonesia, Finland, Greece, Bulgaria, Algeria, Argentina, Bahrain, Chile, Croatia, Costa Rica, Colombia, Rest of World Obowiązkowe: Korea – GRB South Africa – FPB Brazil – DJCTQ Taiwan – CSRR
Microsoft Account kupującego Dostępność aplikacji zależy od: Region – Location Kraju pochodzenia w profilu konta: Microsoft Wallet, Microsoft Passport, .NET Passport, Microsoft Passport Network, Windows Live ID, Microsoft Account (Dotyczy głównie DRM – filmów, muzyki) • Uwaga! To specyfika polska – fakt, że część „starszych” kont była zakładana w czasie gdy np. XBox w Polsce był niedostępny itp..
Konwersja z Trial privateasyncvoidConvertTrial() { varlicenseInformation = CurrentApp.LicenseInformation; licenseInformation.LicenseChanged+= licenseInformation_LicenseChanged; if (licenseInformation.IsTrial) awaitCurrentApp.RequestAppPurchaseAsync(); } voidlicenseInformation_LicenseChanged() { if (CurrentApp.LicenseInformation.IsActive) { //Enable features.. } }
varlicenseInformation = CurrentApp.LicenseInformation; varproductLicense = licenseInformation.ProductLicenses["product1"]; if (!productLicense.IsActive && licenseInformation.IsActive ) { try { awaitCurrentAppSimulator.RequestProductPurchaseAsync("product1“, false); // No exception: enable product1 } catch (Exception) { //product 1 was not purchased } } In-app purchase
Symulator CurrentAppSimulator.ReloadSimulatorAsync(file);
Główne „tematy” API Aplikacja jest odizolowana od innych - Sandboxing Izolacja owszem, ale kontrakty do współdzielenia Broker kontrolujący dostęp do wrażliwych API / danych Windows Store Ekrany dotykowe Zapewnienie Fast & Fluid Przechowywanie lokalnie i w chmurze Ustawienia w chmurze Rozrywka i komunikacja: zawsze podłączony Powiadamianie Sensory Bogata grafika (DX 11.1) Aplikacja ma pełną kontrolę nad całym ekranem
Platforma Windows 8 Aplikacje w stylu METRO Klasyczny desktop Aplikacje LOB, .NET, Silverlight, „Stare aplikacje Windows” HTML JavaScript WinRT(Windows Runtime), Konsument XAML HTML / CSS View JavaScript (Chakra) C C++ C# VB Model Controller C C++ C# VB WinRT APIs Devices & Printing Communication & Data Graphics & Media System Services .NET / SL Internet Explorer Win32 Application Model Windows Core OS Services Core
Windows 8 API a Win32 Metro style app WinRT Win32 (Desktop Subset) Win32 (Metro style Subset) Windows Core OS Services
Języki Założenie: programista używa tej wiedzy, którą już posiada HTML + JavaScript, GOTOWE układy stron XAML + C# / VB.NET – też do migracji rozwiązań z Windows Phone C++ - gry, specjalistyczne algorytmy, GOTOWE fragmenty kodu Ale Windows 8 pozwala ŁĄCZYĆ te technologie UI w HTML Logika w C# Obliczenia w C++ (choć – w JavaScript będą też szybkie )
Jak to działa? Aplikacja C++ Obiekt Windows Runtime (lub komponent)ABI – AbstractBinary Interface) Napisany w C++, C#, VB Projekcja Aplikacja C#/VB Projekcja CLR Aplikacja HTMLi JavaScript Chakra Projekcja Metadane Windows(WinMD)
Demo – pierwsza aplikacja Jak to się robi…
Demo – druga pierwsza aplikacja W C#, JS, HTML5, C++ itp..
Jak? – ważne, proszę przeczytać tu JavaScript .then .done (tzw. Promise) C# async await CancellationToken, TPL, Task<T>, … C++ Różne biblioteki Klasa task, metoda .then
Jeżeli coś zajmuje >50 ms, musi być asynchroniczne Po co? Fast & Fluid
Demo 02 – async / await W C#, długa operacja z postępem
Demo 02 – promise W JS
Jeszcze raz, To nie tak że albo C#/VB.NET i XAML albo HTML5/JS To jest raczej „I”, „ORAZ”, „TAKŻE” A – jest jeszcze C++
App manifest i zdolności Jawnie definiuje mechanizmy integracyjne Pliki / zasoby (music/pictures/videos/documents libraries, podłączane zasoby) Urządzenia (webcam, microphone, location, sms, proximity); rozszerzalne na nowe klasy urządzeń Sieć i tożsamość (internet, private network, credentials) Powiązanie z typami plików Kontrakty (search, share, FileOpenPickeritp) De facto określa na co broker pozwala; gdzie będzie pytał użytkownika