Windows phone 8 overview


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Windows phone 8 overview

  1. 1. Whats new in WP8Andrea Boschin – Most Valuable Professional (XAML)Windows Phone 8 overview
  2. 2.  meet new aspects of Windows Phone8 be in touch with changes from 7.x explore new featuresTalk goals
  3. 3.  what about old apps? the 120000 apps in the store still works! "quirks mode" ensure 100% compatibility do i need to recompile? existing apps works without any action conversion requires to re-compile after conversion "quirk mode" is not available anymore be careful of breaking changes pay attention to multi-core environments when movingfrom 7 to 8 wp7 does not requires attention but wp8 does.legacy apps compatibility
  4. 4.  business apps means: publish to a private set of users full control over deployment protect intellectual property Windows Phone 7.x business scenario is almost impossible Windows Phone 8.0 business scenario is fully supported!business scenario
  5. 5.  how to? register a Microsoft account (company-only) buy a Symantec certificate (299$ approx) generate an Application Token (.aetx) distribute token to devices sign the apps with the token then only token-enabled devices run the signed apps side-loading is enabled without MS Company Store also create your own company-hub to manage content and apps from a single scenario
  6. 6.  windows phone 7.x based on windows ce kernel completely distinct platform from desktopo.s. windows phone 8 based on common windows 8 architecture shares a common kernel with pcs andtabletsarchitecture
  7. 7.  whats does it mean? low level functions & driver model shared between win8 and wp8 shared api about 2800 member over 11000 in w8 600 additional members for wp8shared kernel
  8. 8.  whats the problem? precompilation takes long time on mobile these waiting are awful recap: wp7 application startup is really slow JIT: how do it works? members are compiled before the use when application is closed precompilation is discarted how can we do? NGEN assemblies before download? precompilation when download happens, is too slow what wp8 does? compile in the cloud! assemblies are pre-compiled before the download a mdil file is prepared MDIL = machine dependent intermediale language it is something like a template with holes to fill after download, mdil is converted to ngen holes are filled. now it runs natively!compilation model
  9. 9.  why coding native? reusability use of existing code you dont want to write again portability use code in different platforms skills use existing skills in C++ performances the last of the problems... often not a good reasonnative C++ code
  10. 10.  how-to create a WinRT component All your code is wrapped into the component write code using specific conventions classes must be "ref" and "sealed" use compatible WinRT types reference component by a C# project fully native apps does not exists! use the classes in the component from C# all the magic is made by the WinRT projection layernative C++ code
  11. 11.  Windows Phone 7.x only 480 x 800 resolution allowed Windows Phone 8.0 supports different sizes and resolutions virtually you work always with 480x800 (or 853)multiple screen resolutionsWVGA 720p WXGAtrue resolution 480x800 720x1280 768x1280virtual resolution 480x800 480x853 480x800aspect ratio 15:9 16:9 15:9platform WindowsPhone 7.x/8.0Windows Phone8.0Windows Phone8.0scale 100 150 160var width = Application.Current.Host.Content.ActualWidth;var height = Application.Current.Host.Content.ActualHeight;
  12. 12. multiple screen resolutions multiple sizes = much more attention always pretend screen = 480 x 800 draw apps without size constraints avoid absolute positioning prefer "vector" to "raster" provide large images or different scales large images are scaled gracefully with different scales: choose the better size you can also: disable specific resolution in manifest this means to forget a particular segment of the market
  13. 13.  Windows Phone 7.x G&L is made by tricks Windows Phone 8.0 easy & effective project automatically prepared for G&L localization works by Binding to resx support for multiple languages problems ApplicationBar still doesnt support Binding  AppTitle localization requires Win32 resourcesglobalization & localization
  14. 14.  new concept of Contact Store every app has its own store can add and remove contacts silently can prevent deletion from the its store when uninstalled, contact store goes away Notes a contact store is an isolated sandbox similar contacts in different stores are merged Security guaranteed by Windows Store Certification if check fails, you can simply delete the stores
  15. 15.  tiles 3 formats available to developers small: 159x159 medium: 336x336 wide: 691x336 small & medium are required! new Templates TemplateFlip front & rear predefined content TemplateCycle up to 9 rolling tiles TemplateIconic automatically reflects WP design guidelines also supported in 7.8 manually via reflection with Mangopollo project on codeplex & lock screen
  16. 16.  Iconic template: 110x110 & 220x220tiles & lock screen
  17. 17.  lock screen when enabled reflects content fromtile User must enable app to lock screen settings can be launched with aprotocol LockScreenManager allow request authorization directlytiles & lock screenprivate async void OpenLockScreenSettings(object sender, RoutedEventArgs e){await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings-lock:"));}
  18. 18.  protocol association a protocol is registered (ex: myapp://) if someone launch the protocol the app in called the app receives the full uri parameters are passed in the uri file type association a file extension is registered (ex: *.myapp) when a file type is opened the app is called the app receives a reference to the file modification the original file require a copy. other info system protocol and types cannot be overriden (es: mp3, etc...) multiple association are allowed. the choice is up to the user. a file type supports an icon (3 sizes) to launch an association LaunchUriAsync  Protocols LaunchFileAsync  File Typesprotocol & file association
  19. 19.  near field communication limited to short range (3-5 cm) supports custom string or binary messages via publish-subscribe use of known protocols launch apps by id or protocol association launch an url in the browser initiator for launching sockets bluetooh or wi-fi (developer choice) read or write tags write is limited api allows to set capability and requirements for app check if NFC is supported/enabledbluetooth & NFC
  20. 20.  bluetooth Windows Phone 7.x bluetooth is supported no developer APIs Windows Phone 8.0 bluetooth is extended (no HID profile) developer APIs are provided scenarios Phone to Device socket based pick one of paired devices your app is client to the device Phone to Phone socket based search for another instance of your app to pair your app is client & server Windows 8 to Windows Phone 8 is allowedbluetooth & NFC
  21. 21.  text to speech supports different language inflections supports SSML (Speech Synth MarkupLanguage) speech to text supported two modes SpeechRecognizerUI uses default UI SpeechRecognizer allow speech recognition without UI allowed to use preloaded grammar to improverecognition resultspeechSpeechSynthesizer tts = new SpeechSynthesizer();await tts.SpeakTextAsync("Please hold on!");
  22. 22.  predefined sequences that matches anactionstart music player and play latin songsand play latin songs result app music player is started app get "PlaySongs" command with latin argumentvoice commandsstarts the appoptionalcommand commanddynamicdiscarted argument
  23. 23. voice commands<VoiceCommands xmlns=""><CommandSet xml:lang="en-US" Name="DefaultCommandSetEnglish"><CommandPrefix>Music Player</CommandPrefix><Example>play some songs</Example><Command Name="PlaySongs"><Example>play random songs</Example><ListenFor>[and] play {genre} songs</ListenFor><ListenFor>[and] play [some] songs</ListenFor><ListenFor>[and] play {mode} songs</ListenFor><Feedback>Playing music...</Feedback><Navigate Target="MusicPlayer.xaml" /></Command><PhraseList Label="genre"><Item>rock</Item><Item>latin</Item><Item>classic</Item><Item>funky</Item><Item>jazz</Item></PhraseList><PhraseList Label="mode"><Item>all</Item><Item>random</Item><Item>favorite</Item></PhraseList></CommandSet></VoiceCommands>
  24. 24. feedback10o feedback su:•• codice feedback:• email:• twitter: @aboschin• facebook:• gamertag: codeblock68feedback