Tile templates • Flip – flips from front to back (similar to the WP 7.1 Tile template) • Iconic – clean iconic layout designed to reflect Windows Phone design principles • Cycle – cycles through up to nine images 16
provider, which enables: • User can select your app to show detailed status on the lock screen • Can select your app as one of the five apps to show quick status (icon and count) • Can select your app as the lock screen background image provider 4/10/2013 17 Lock Screen on Windows Phone 8
tasks • Invoke part of the phones’ built-in capabilities to perform tasks such as • Take a photo • Add a contact • Send an email or SMS message • Etc… • New Launchers in Windows Phone 8: • SaveAppointmentTask • ShareMediaTask • MapDownloaderTask • MapUpdaterTask • MapsTask • MapsDirectionsTask New Launchers 4/10/2013 Microsoft confidential 18
Maps control from Windows Phone OS 7.1 is still supported, but deprecated • The new Maps controls use technology supplied by Nokia • New features: • Vector-based for faster rendering • Four cartographic map modes • Light and dark color modes • Display landmark and pedestrian features Maps 4/10/2013 Microsoft confidential 19
set • Similar to Windows 8 Location API • Windows Phone OS 7.1 .NET Location API still supported • Background location-tracking apps • Run continuously in the background when the user navigates away from the app • Enables scenarios such as Run Trackers, turn-by-turn navigation Location and Location Tracking 4/10/2013 Microsoft confidential 20
robustly interact with your app using their voice • Two types of voice interaction are new: • Voice Commands - Allows users to deep-link into your app by holding down the Start button and speaking a prefix you specify for your app, followed by a command that you define. • Speech Recognition and Text-to-Speech APIs - While in the context of your app, allow users to provide input using their voice, and readout text to users via text-to- speech Speech 4/10/2013 Microsoft confidential 21
headers • Jump List • Formerly in the Silverlight Toolkit • Pivot and Panorama now in ROM • WebBrowser control now based on Internet Explorer 10 UI Controls New Controls in Windows Phone 8 SDK
technology • Bluetooth API enables the following scenarios for Windows Phone 8: • App-to-app communication • App-to-device communication • Proximity API enables: • App-to-app connection using Bluetooth technology • Establish a Wi-Fi, Bluetooth, or Wi-Fi Direct connection between your app and an instance of your app on a proximate device • Send data between devices using NFC. • Use a phone to interact with NFC tags Bluetooth and NFC 4/10/2013 Microsoft confidential 28
from an SD card • User can also use SD card to extend device storage for their personal files and media • Store photos, music, videos • Can install apps from a MicroSD store Storage – Read from SD Card 4/10/2013 Microsoft confidential 31 MicroSD Support
app, though visible through the phones built-in Contacts app • APIs are provided to create, update, delete, and query the app’s contacts • Sync the app’s contact list with a remote list maintained by the app’s cloud service Custom Contact Store 4/10/2013 Microsoft confidential 32
your app when a file of the registered type is received as an email attachment or opened in the browser, or through Sharepoint • One app can launch another by sending it a file of the registered type • App can register a protocol • Allows your app to automatically launch when another app ‘opens’ a special URI • Protocol is the first part of a URI, e.g. myprotocol:/ShowProducts?CategoryID=aea6ae1f • App launches another and passes it data in the remainder of the launch URI File and Protocol Associations Enables App to App Communication 4/10/2013 Microsoft confidential 33
in the Windows Phone Store in Windows Phone 8, so typically start and run faster • When you build your app in Visual Studio, the code is not compiled into a native image, but into a machine-independent Common Intermediate Language (CIL) binary file (formerly known as Microsoft Intermediate Language, or MSIL) • When you submit your app to the Windows Phone Store, you submit the CIL file • On submission, CIL file is converted to optimized Machine Dependent Intermediate Language, or MDIL • When a user downloads your app to a device, it is pre-jitted to a native image • Windows Phone 8 Apps Run Faster 4/10/2013 Microsoft confidential 35
that target Windows Phone OS 7.1 to run without modification or recompilation on Windows Phone 8 • Same APIs may exhibit slightly different behaviour in WP 8.0 compared to WP 7.1 • Feature improvements or behaviour changes Windows Phone OS 7.1 Apps on Windows Phone 8 4/10/2013 Microsoft confidential 36 WP OS 7.1 app WP 8.0 Runtime/ Libraries No recompilation WP OS 7.1 app
WP 8.0 runtime, quirks mode is applied to retain WP 7.1 behaviour • Apps that are upgraded to WP 8.0 and recompiled run on the phone without quirks mode being applied Windows Phone OS 7.1 Apps on Windows Phone 8 4/10/2013 Microsoft confidential 37 WP OS 7.1 app WP 8.0 Runtime/ Libraries No recompilation WP OS 7.1 app +Quirks WP OS 8.0 app WP OS 8.0 app
int int int int DllImport "avicap32.dll" static extern bool int MarshalAs UnmanagedType ref string int MarshalAs UnmanagedType ref string int // more and more of the same
public void CommonMethodA() { // code that is common } public int CommonMethodB() { int result = 0; // code that is common return result; } } public partial class MyClass { public void PlatformSpecificMethod() { // specific code for platform Á } } } public partial class MyClass { public void PlatformSpecificMethod() { // specific code for platform B } }
in a Portable Class Library • simple way to share code • Complexity! public class MyClass { public void CommonMethodA() { // code that is common to Windows Phone 8 and Windows 8 } public int CommonMethodB() { int result = 0; // code that is common to Windows Phone 8 and Windows 8 return result; } public void PlatformSpecificMethod() { #if NETFX_CORE // code for Windows 8 #else // code for Windows Phone 8 #endif } }
{ // Implement this method specific to Win 8 } } } Patterns: Abstract Base Class public abstract class MyBaseClass { public void CommonMethodA() { // code that is common } public int CommonMethodB() { int result = 0; // code that is common return result; } public abstract void PlatformSpecificMethod(); } Add as Link Portable Class Library public class MyWP8Class : MyBaseClass { public override void PlatformSpecificMethod() { // Implement this method specific to WP8 } }
{ _platformImpl = platformImpl; } public void CommonMethodA() { ... } public int CommonMethodB() { ... } public void PlatformSpecificMethod() { _platformImpl.PlatformSpecificMethodImpl(); } } public interface IPlatformSpecificCode { void PlatformSpecificMethodImpl(); } // Windows 8 app project public class MyWin8Implementation : IPlatformSpecificCode { public void PlatformSpecificMethod() { // Implemented for Windows 8 } } Patterns: Interfaces // Windows Phone app project public class MyWinPhone 8Implementation : IPlatformSpecificCode { public void PlatformSpecificMethod() { // Implemented for Windows Phone 8 } }