1 / 93

Programowanie urządzeń mobilnych

Programowanie urządzeń mobilnych. Bartłomiej Zass Microsoft. Plan prezentacji. Aplikacje mobilne w HTML i JavaScript Aplikacje natywne Windows 8, Windows Phone 7 – krótkie przypomnienie Windows Phone 8 dla programistów Techniki współdzielenia kodu dla aplikacji natywnych

anevay
Download Presentation

Programowanie urządzeń mobilnych

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programowanie urządzeń mobilnych Bartłomiej Zass Microsoft

  2. Plan prezentacji • Aplikacje mobilne w HTML i JavaScript • Aplikacje natywne • Windows 8, Windows Phone 7 – krótkie przypomnienie • Windows Phone 8 dla programistów • Techniki współdzielenia kodu dla aplikacji natywnych • Windows Phone 8, Windows 8 – podobieństwa i różnice • Architektura aplikacji - MVVM i Portable Class Libraries

  3. Źródło: Gartner

  4. Dlaczego HTML i Javascript? • Jedyny wspólny mianownik między platformami • Przeglądarki internetowe w urządzeniach mobilnych • Osadzone kontrolki przeglądarki w natywnych aplikacjach • A może C++? • Windows Phone 8 obsługuje C++ • Objective-C to NIE C++ “79% of mobile developers report that they will integrate some HTML5 in their apps in 2012” Appcelerator/IDC – Q1-2012 – Mobile Developer Report

  5. Javascript dzisiaj • Natywne aplikacje dla Windows 8 • Gry – np. Cut The Rope, Angry Birds • Office 2013, Sharepoint • Node.js • Cała masa bibliotek – nie tylko jQuery! • „Model-View-Whatever” w Javascript • np. Knockout, Angular, Backbone, Mustache • Ciekawostki • http://jscriptlinq.codeplex.com/ - LINQ w JS • http://bellard.org/jslinux/ - implementacja Linux w JS

  6. TypeScript • Nowy język autorstwa Andersa Hejlsberga (twórca C#) • Nadzbiór Javascript • Nie trzeba uczyć się nowej składni • Silnie typowany Javascript • Klasy, interfejsy, dziedziczenie, modyfikatory dostępu, ... • Częściowa zgodność z propozycją ECMAScript 6 • Refactoring, wsparcie Visual Studio • Kompilowany do Javascript!

  7. Demo TypeScript

  8. Strategie - HTML 5 i aplikacje mobilne JQueryMobile SenchaTouch Jo Propulsion … Frameworki Javascript Cross-kompilacja Rozwiązania hybrydowe Mobilna strona Apache Cordova (PhoneGap) AppMobi … Titanium (Appcelerator) … Natywna platforma aplikacyjna Przeglądarka obsługująca HTML 5 OS platform

  9. Demo jQuery Mobile

  10. Apache Cordova • Dostęp do natywnych funkcji z poziomu JavaScript • Inaczej niż w Windows 8 – opakowana kontrolka przeglądarki • PhoneGap – popularna dystrybucja Apache Cordova • Obecnie własnością Adobe • PhoneGap Build Service • Aplikacje mogą być zgłaszane do sklepów • Windows Phone, Android, iOS, Symbian, BlackBerry, ... • Windows 8 póki co nie – może nie mieć sensu • Windows Phone 8 – nadal ma zastosowanie, pełne wsparcie

  11. PhoneGap i Windows Phone

  12. Demo PhoneGap i Windows Phone

  13. Aplikacje natywne Windows 8 – krótkie przypomnienie Windows Phone

  14. Platforma Windows 8 Windows Store Apps Desktop Apps HTML JavaScript HTML / CSS XAML View JavaScript (Chakra) C C++ C# VB Model Controller C# VB C C++ WinRT APIs Devices & Printing Communication & Data Graphics & Media System Services .NET / SL Internet Explorer Win32 Application Model Windows Core OS Services Core

  15. Demo Windows 8 i Windows Phone 7

  16. Windows Phone 8

  17. Nowe telefony, nowe rozdzielczości, … • wiele rdzeni procesora, • nowy procesor graficzny, • nowoczesna architektura, • karty MicroSD, • NFC, • … 720p 1280 x 720 16:9 WXGA 1280 x 768 15:9 WVGA 800 x 480 15:9

  18. WVGA 480x800 1.0 Scale WXGA 768x1280 1.6 Scale 720p 720x1280 1.5 Scale 400 Logical 640 Physical 400 Logical 600 Physical 400 Logical 400 Physical 2 Logical 3 Physical (Rounded) 2 Logical 3 Physical 2 Logical 2 Physical 30 Logical 48 Physical 30 Logical 45 Physical 30 Logical 30 Physical Myśl o layoutach wpikselach WVGA Myśl o grafice / filmach wWXGA

  19. Windows Phone 8 i Windows 8 • Wspólne jądro systemu – Windows NT • Te same komponenty systemowe • Sieć, kernel, grafika, system plików, multimedia • Wspólny model sterowników • Obsługa wielu rdzeni w Windows Phone • Solidna, nowoczesna platforma do przyszłej rozbudowy • Ten sam CLR • Nie oznacza to dokładnie tego samego API • Obecnie - wiele podobieństw • W przyszłości - na pewno bardzo dużo wspólnego kodu

  20. Windows Phone 8 API Aplikacje managed wykorzystujące WP 7.1, WP 8.0 .NET oraz WinPRT API Natywne aplikacje wykorzystujące WinPRT i Win32 Gry wykorzystujące WP 7.1 XNA Framework Gry wykorzystujące Direct3D lub DirectX WP8.0 Games DirectX/Direct 3D & C++ WP8.0 XAML & C++ WP8.0 XAML & C#/VB with Direct3D Graphics WP8.0 XAML & C#/VB WP7.1 XNA & C#/VB WP7.1 XAML & C#/VB .NET API for Windows Phone Windows Phone Runtime Win32 & COM Managed & Native Managed Native

  21. .NET API for Windows Phone • Zarządzany kod • Wszystkie API z Windows Phone 7.1 • Przestrzenie nazw System oraz Microsoft.Phone • Wiele nowych klas dodanych w WP 8, np.: • Microsoft.Phone.Wallet • Microsoft.Phone.Tasks.ShareMediaTask • Microsoft.Phone.Tasks.MapsTask • Microsoft.Phone.Storage.ExternalStorage • Microsoft.Phone.Networking.Voip • …

  22. Windows Phone Runtime API • Podzbiór pełnego WinRT + dodatki specyficzne dla telefonu • Windows (Phone) Runtime zaimplementowane w C++ • Projekcje do C#, VB.NET, C++ • Obecnie brak projekcji do HTML5/JavaScript Pełny WinRT(ok. 11,000 obiektów) • Specyficzne dla Windows Phone (wybrane): • Synteza i rozpoznawanie mowy • VOIP • Windows.Phone.PersonalInformation • LockScreen,LockScreenManager • Wszystkie i dodatki Podzbiór przeniesiony do Windows Phone Runtime (ok. 2,800 obiektów) Nowe dla Windows Phone Runtime (ok. 600 obiektów)

  23. Win32 i COM API • Oprócz .NET i WinPRT API, dostęp do niektórych Win32 API, np.: • Winsock do niskopoziomowego oprogramowania połączeń • Camera APIs dla aplikacji natywnych • COM APIs takie jak CoInitializeEx, CoTaskMemAlloc, CoTaskMemFree, CreateFile2, ReadFile, WriteFile, HeapAlloc, CreateMutexExW, WaitForSingleObjectW,… • Głównie dla programistów piszących w kodzie natywnym • Możliwość dodania referencji w projekcie managed (rzadko potrzebne)

  24. Co z aplikacjami na Windows Phone 7.x?

  25. Aplikacje WP 7.x na systemie WP 8.0 bez rekompilacji • Aplikacje stworzone na WP 7.x będą działały na telefonach z systemem WP 8.0 WP OS 8.0 app WP OS 7.1 app WP OS 8.0 app WP OS 7.1 app +Quirks WP 8.0 Runtime/Libraries

  26. Skąd wziąć narzędzia do programowania?

  27. Twoje centrum dowodzenia aplikacjami http://dev.windowsphone.com

  28. Konto deweloperskie • Nie jest wymagane do tworzenia aplikacji • Jest wymagane do testowania aplikacji na urządzeniu i publikacji jej w Windows Phone Store • Jak je otrzymać?: • znajduje się w MSDN, • studenci bezpłatnie poprzez Dreamspark, • płacąc 99$ rocznie per programista.

  29. Wymagania sprzętowe dla WP SDK 8.0 • System operacyjny: • Windows 8 x64 • Hardware: • zalecane 4GB RAM, • 8GB wolnej przestrzeni dyskowej • WP Emulator wymaga Second Level AddressTranslation(SLAT)

  30. Lock the Screen na emulatorze • Z klawiatury: • Dwa razy F12 • Simulation Dashboard

  31. Symulacja sieci • Dostępne w simulationdashboard • Testowanie dla różnych warunków sieci

  32. Zrzuty ekranu • Na emulatorze • Na urządzeniu • Przyciski Win + power

  33. Co nowego w Windows Phone 8?

  34. Wydajność aplikacji • Czas startu bardzo ważny z punktu widzenia użytkownika • Facebook • WP 7 – 12 sekund • WP 8 – 4 sekundy • Dlaczego? • Zmiany w środowisku uruchomieniowym • Usprawnienia CoreCLR • Kompilowanie w chmurze • Dual core > 1 ghz

  35. Kompilowanie w chmurze • CoreCLR dodaje wsparcie dla NGEN • Czasochłonne na urządzeniu • Po zgłoszeniu aplikacji do Windows Store automatyczny NGEN • Nowe aplikacje • Zgłaszamy XAP • XAP aktualizowany – kod natywny • Co z istniejącymi aplikacjami? • Aplikacje WP 7.5 kompilowane przez NGEN dla WP 8 • Oryginalny XAP pozostaje dla WP 7.x

  36. Model aplikacji • Użytkownicy oceniają aplikację na podstawie własnych doświadczeń • 4 sekundy to wciąż długo, jeśli często uruchamiamy aplikację • Za każdym razem wchodzenie do określonej sekcji aplikacji • Fast Application Swithing – WP 7.x • Przycisk wstecz • Taskswitcher– wielu użytkowników nie wie o nim

  37. Fast Application Resume • Aplikacja może być wskrzeszana niezależnie od tego jak została uruchomiona • Lista aplikacji • Live Tile • Toast • Deep link • Jeśli jest na stosie – przywracanie • Jeśli nie ma jej na stosie – nowa instancja • Podobnie jak w Windows 8

  38. Włączanie Fast Application Resume • Domyślnie wyłączone • Ochrona interfejsu użytkownika • Pewność, ze aplikacje będą działały prawidłowo • Bardzo proste do włączenia • Nowy atrybut ActivationPolicyw DefaultTask <DefaultTaskName="_default"NavigationPage="MainPage.xaml" ActivationPolicy="Resume"/>

  39. Kontrolki • ProgressBar animuje się poza wątkiem UI • Panorama, Pivot i LongListSelector przeniesione do ROM • Mniejsze zużycie pamięci przez kontrolkę Panorama • Poprawiony „firsttouchexperience” • Toolkit – http://phone.codeplex.com

  40. LongListSelector JumpList Grid View StickyHeaders

  41. Nowa kontrolka do wyświetlania map • Nowa kontrolka korzysta z technologii i zasobów Nokia • Zawiera m.in.: • Bazuje na wektorach • cztery modele kartograficzne • tryb jasny i ciemny • informacje o ruchu, trasach itp.

  42. Nowe API służące do lokalizacji • Bliźniacze do API w Windows 8 • Windows Phone OS 7.1 .NET Location API nadal jest wspierane • Backgroundtask pobierający lokalizację urządzenia • Tylko 1 agent • Tylko kiedy aktywnie śledzi położenie

  43. Jak włączyć? <DefaultTaskName="_default"NavigationPage="Views/Home.xaml"> <BackgroundExecution> <ExecutionTypeName="LocationTracking" /> </BackgroundExecution> </DefaultTask>

  44. Nowe wielkości i szablony kafelków • W Windows Phone 8 możemy korzystać z trzech typów Tile: • Flip – dwa „rotujące” obrazki (tożsame z WP 7.1 Tile) • Iconic – sama pojedyncza ikona • Cycle – „rotacja” do dziewięciu różnych obrazków

  45. Dostęp do Lockscreen • Użytkownik może dodać powiadomienia z naszej aplikacji (LockScreen Notification) • Nasza aplikacja może zmienić tło zablokowanego ekranu (LockScreenBackground) • New Shell APIs • ShellSetWallpaper to use a new image • ShellWallpaperSchedule to download a single image from the internet on a specific interval (e.g., 30 mins, 1 hour, etc.) • ShellWallpaperFolderSchedule to cycle through a set of image in app’s isolated storage (e.g., a photo slideshow) based on number of views of the lock screen

  46. Zestaw nowych launcherów • SaveAppointmentTask • ShareMediaTask • MapDownloaderTask • MapsTask • MapsDirectionsTask

  47. Komendy głosowe i rozpoznawanie mowy • Voice Commands umożliwia uruchomienie aplikacji, lub jej konkretnej funkcji, za pomocą głosu, po przytrzymaniu przycisku Start • Speech Recognition + Text-to-Speech APIwspiera przekształcenie mowy w tekst i czytanie już zapisanego teksu

  48. Portfel • Możliwość zarządzania kartami i „kuponami” z poziomu własnej aplikacji • Obsługa kart: • kredytowych i debetowych, • lojalnościowych, • specjalnych ofert, • Wsparcie dla „tap to pay”

  49. Nowe możliwości aparatu fotograficznego i przetwarzania zdjęć • Lenses = rozszerzenia do kamery oferujące nowe opcje, możemy tworzyć je sami i udostępniać użytkownikom • Picture.GetPreviewImage()= miniaturka obrazka • Integracja aplikacji z Photo Edit Picker lub rejestracja jako własny edytor • Upload zdjęć w tledo zewnętrznych serwisów • Zaawansowana kontrola (klasy PhotoCaptureDevicei AudioVideoCaptureDevice)

More Related