730 likes | 905 Views
Windows Phone 7 - wstęp. Andrzej Chybicki. Windows Phone 7 - początki. Microsoft o Windows Phone 7: In golf, it’s known as a “mulligan”; in schoolyard sports, it’s called a “do-over”; and in the computer industry, we say it’s a “reboot.” Dwie ścieżki programowania : - XNA
E N D
Windows Phone 7 - wstęp Andrzej Chybicki
Windows Phone 7 - początki Microsoft o Windows Phone 7: In golf, it’s known as a “mulligan”; in schoolyard sports, it’s called a “do-over”; and in the computer industry, we say it’s a “reboot.” Dwie ścieżki programowania :- XNA -Silverlight Silverlight – platforma developerska łącząca wygodę tworzenia interfejsu, automatycznym łączeniem zdarzeń z możliwością zaawansowanego przetwarzaniem danych XNA – platforma developerska do tworzenia gier (2D i 3D), -game-loop -XBOX, PC, Zune (mobile)
Środowisko pracy aplikacji • Kod w pełni zarządzalny przez .NET Framework • Języki programowania • Sugerowane rozwiązanie – C# • XNA i Silverlight współdzieli niektóre biblioteki, ale nie można tworzyć projektów „mieszanych”
Silverlightvs. XNA • Dla aplikacji użytecznych (RIA) • XAML (ExtensibleApplicationMarkupLanguage) • Interfejs użytkownika • Przekazywanie zdarzeń • Niektóre elementy logiczne oraz animacyjne • WP7 Silverlight = Silverlight 3 – niektóre rzeczy, których nie można zrobić na telefonie + niektóre rzeczy które można zrobić tylko na telefonie
XNA vs. Silverlight • Gry, aplikacje medialne, animacje z interakcją z użytkownikiem wymagające zaawansowanego renderowania grafiki • Wewnętrzna synchronizacja wątków odświeżania i użytkownika • 2D (sprites) i 3D (models) • Silverlight (vectorgraphics) vs. XNA (bitmap graphics) • Time-steeredvs. user(event) steeredapps
Two Flavors of Applications • Modern XAML/event-driven application UI framework • Rapid creation of visually stunning apps • Metro-themed UI controls • HTML/JavaScript • 500,000 developers spanning Windows and web • High performance game framework • Rapid creation of multi-screen 2D and 3D games • Rich content pipeline • Mature, robust, widely adopted technology spanning Xbox 360, Windows, and Zune
Windows Phone 7 jest w chmurze! • Mapy Bing (LBS) • Xbox Live • Windows PhoneMarketplace
Cloud and Integration Services General Concept App Model UI Model Software Architecture Hardware Foundation
New Concept DESIGN: END USER COMES FIRST PLATFORM: RICHER, DEEPER, EASIER APPS HARDWARE: FASTER TO MARKET, LESS HEAVY LIFTING
Hardware Foundation (in 7.0) Capacitive touch 4 or more contact points 800 Sensors A-GPS, Accelerometer, Compass, Light, Proximity, Camera 5 mega pixels or more Multimedia Common detailed specs, Codec acceleration Memory 256MB RAM or more, 8GB Flash or more GPU DirectX 9 acceleration CPU Qualcomm MSM8x55 800Mhz or higher Hardware buttons | Back, Start, Search 480
Sprzęt, wymagania i usługi • Wielodotykowy ekran OLED (“organic light emitting diode”) • Przyciski: • Rozmiar ekranu: 480 x 800 (480 x 320) (160 px) • Modem 3G, Wi-fi, Camera, Akcelerometr • Vibration • FM Radio • PushNotification
Windows Phone Developer Tools Tools Phone Emulator Windows Phone Emulator Samples Documentation Packaging & Verification Tools Guides Community Windows Phone device Packaging and Verification Tools myapp.xap
Deployment Process Develop & Debug Submit& Validate Certify & Sign Windows Phone Application Deployment Service Marketplace
Certyfikacja aplikacji – główne filary • Applications are reliable. • Applications make efficient use of resources. • Applications do not interfere with the phone functionality. • Applications are free of malicious software.
Obszary procesu certyfikacji • Application Policies • Content Policies • Application Submission Requirements • Technical Certification Requirements • Additional Requirements for Specific Application Types • Patrz materiały do wykładu
ApplicationPolicies – Aplikacja… • …musi być w pełni funkcjonalna i nie może żądać dodatkowej opłaty za udostępnienie swojej funkcjonalności, chyba że… • … nie może promować planów taryfowych połączeń • … nie może stanowić zagrożenia dla bezpieczeństwa telefonu oraz Marketplace • … jeśli aplikacja pobiera lub zajmuje ponad 50 MB danych musi poinformować o tym użytkownika • … jeśli wymaga uwierzytelniania w komunikacji peer2peer należy się upewnić że użytkownik ma ponad 13 lat
ApplicationPolicies (2)– Aplikacja… • … może określać pozycję tylko na podstawie API • ... może udostępniać lokalizację tylko za zgodą użytkownika • … musi spełniać jeszcze inne wymagania : • patrz materiały do wykładu
ContentPolicies • Logo i znaki towarowe • aplikacja może (powinna) posiadać swoje logo • Może korzystać z innych znaków towarowych pod warunkiem akceptacji właściciela • Nie może zawierać treści niezgodnych z prawem, w szczególności • Promowanie przemocy, rasizmu, alkoholu, broni palnej i innych • Treści, które ogólnie nie są obraźliwe ale mogą być uznane za takie w niektórych krajach ->treść powinna uwzględniać aspekt prawny każdego kraju w jakim MarketPlace oferuje swoje aplikacje
ApplicationSubmissionRequirement • Maksymalny rozmiar pliku XAP – 225 MB • Używanie tylko API Windows Phone • Zabronione jest korzystanie z metod wywołania typu Pinvoke oraz obiektów COM • Nie może zawierać konfiguracji DEBUG • Nie jest możliwe łączenie technologii XNA i Silverlight • Microsoft.Xna.Framework.Game • System.Windows.Controls • PhoneCapabilites czyli prawidłowy Manifest
TechnicalCertificationRequirements • Kompatybilność z różnymi telefonami WP 7 (2) • Unexpectedclosure • Responsywność aplikacji • Operacji trwające dłużej niż 3 sekundy muszą być obsługiwane przez ProgressBar lub BusyIndicator • W momencie przekazania aplikacji do MarketPlace wszystkie zdalne serwisy i zasoby aplikacji muszą być dostępne i wpływają na proces certyfikacji! • Czas startu i responsywności po starcie – 5 s. i 20 s.
TechnicalCertification (2) • Elementy obsługi przycisków telefonu…. • Zajętość pamięci • Max 90 MB RAM, dla urządzeń do 256 MB RAMU całkowitego • Zaleca się użycie obiektów • DeviceExtendedProperties • DeviceStatus • Aplikacja nie może blokować , opóźniać, przerywać odbioru połączeń telefonicznych, wiadomości SMS oraz innych zdarzeń wywoływanych z poziomu OS
AdditionalRequirements • Lokalizacja • Jeśli użytkownik nie życzy sobie … • Aplikacje działające w tle a oszczędność baterii • Aplikacje działające w tle do pobierania danych • Muszą umożliwiać podgląd stanu zaawansowania pobierania oraz anulowania
Cloud and Integration Services Software Architecture App Model UI Model Software Architecture Hardware Foundation
Silverlight Capabilities • Inputs • Keyboard, Mouse, Touch, Ink • XAML UI Core • Common Controls, Text, Images, Data Binding, Page Navigation, Vector Graphics, Animation, Transformation, Styles and Templates • Media • Capture and Playback, VC1, WMA, MP3 • Data • LINQ to Objects, LINQ to XML, Isolated Storage, XML • Base Class Library • Generics, Collections, Cryptography, Threading • Communication • REST, RSS/ATOM, SOAP
Multitouch • OOB Controls support touch • Translate touch events to mouse events • ScrollViewer has built-in support for pan and flick • Manipulation for all UIElements • Scale • Translate
Keyboard • Silverlight TextBox integrates with the SIP (on screen keyboard) • Password has a delay • SIP supports input scoping • Key InputScopes: Text, Url, Number, Time, TelephoneNumber, EmailNameOrAddress
Media • Media support • H/W decode • MediaStreamSource • PlayReady DRM • MediaElement Limitations • One MediaElement only • XNA sound effect API • Supports polyphonic, looping wav data
Isolated Storage • Compatible APIs with Silverlight on desktop • No quota limits • Not shared • No write access to Media Library, use XNA for that • Use for your application settings
Cloud and Integration Services ApplicationModel App Model UI Model Software Architecture Hardware Foundation
Activation and Navigation • Activation Events • Handled by the Application instance • Launching, Activated, Deactivated and Closing • Navigation Events • Handled by each PhoneApplicationPage class • OnNavigatedTo, OnNavigatedFrom, OnBackKeyPressed, OnChooserReturn, OnOrientationChanged • Controlled by • Hardware using Back and Home keys • Software using Navigation Service
Application Lifecycle Save State! Load State! • Phone removed from memory • Some state saved to storage
Application Bar and System Tray • System Tray • No integration, but does affect Layout • Show:Hide using SystemTray.IsVisible • Application Bar • Up to 4 Buttons • Menu Items (Recommended 6) • Toggle Visibility • <mypage>.ApplicationBar.IsVisible
Panorama • Part of the native Windows Phone look and feel • Panorama is a long horizontal canvas • PanoramaItemserves as a container that hosts other content and controls
Pivot • Provides a quick way to manage views or pages • Pivot is a container of pivot items • PivotItem contain individual page content such as controls, grids, or links
Many more… • Standard Controls • Buttons, Image, Layout, ListBox, TextBox, Slider, Other… • Bing Maps • Bing Map Control, Integration with Bing Maps Services • Deep Zoom • Included in core run-time , Optimized to take advantage of GPU, Consumes same content as SL on desktop, Supported for Online content • Web Browser • Displays network and local content, Supports pan, double tap and pinch to zoom, Supports transforms & projections, Application can interact with javascript
Cloud and Integration Services IntegrationServices App Model UI Model Software Architecture Hardware Foundation
Launchers & Choosers • Enable applications to provide a set of common phone tasks to their users • Launchers let you fire and forget • SMS, Email, Web Browser, Dialer, Search, etc. • Choosers let you fire and pick the results back • Picture, Camera, Contact, etc.
Types of Push Notifications • Tile notifications • Update tile count, title and background image • Toast notifications • Display a on-top-like message • Raw notifications • Can be used in application logic
Location and Services • The service obtains location data from multiple sources such as GPS, Wi-Fi, and cellular • Applications can access location information • Allows you to create location-aware applications
Register Your Device Test on a physical device Register your device Install, run, and debug unsigned applications Use Zune to register your device
Programowanie • Windows 7!! • Visual Studio 2010 • Zune software (zamiast ActiveSync) • Oczywiście będą problemy z deployowaniem aplikacji na Windows Mobile (dlaczego ma być zbyt prosto?) • Co trzeba zrobić aby zsynchronizować kalendarz Windows XP z Windows Phone 7? UŻYĆ GOOGLA!!
Pierwsza aplikacja Silverlight • Windows PhoneApplication • WMAppManifest.xml • Title="SilverlightHelloPhone„ • Deployowanie na emulator albo prosto do urządzenia • Rozdzielczość ekranu emulatora jest taka sama jak w urządzeniu • Możliwość zmiany orientacji emulatora
Układ plików projektu Silverlight • Cztery główne pliki każdego projektu: • App.xaml • MainPage.xaml • App.xaml.cs • MainPage.xaml.cs • Postulat „code-behind”
MainPage.cs.xaml - > MainPage.g.cs • Element w Silverlight i XML • Hierarchia obiektów:
/bin/Debug • Plik XAP – spakowany, przekompilowany projekt
A teraz „HelloWorld” w XNA • Brak wbudowanych czcionek • Czcionka jest bitmapą! Wszystko jest bitmapą! • Czcionka musi być osobno zaimportowana do projektu (problemy licencyjne)