310 likes | 469 Views
Building Windows Phone Applications with Silverlight. Jaime Rodriguez http://blogs.msdn.com/jaimer @ jaimerodriguez. Agenda. Introduction App model Navigation Events Phone Controls Panorama Pivot Web Browser Bing Maps Control DeepZoom Templates and Styles
E N D
Building Windows Phone Applications with Silverlight Jaime Rodriguez http://blogs.msdn.com/jaimer@jaimerodriguez
Agenda • Introduction • App model • Navigation • Events • Phone Controls • Panorama • Pivot • Web Browser • Bing Maps Control • DeepZoom • Templates and Styles • OS and in-box App Integration
UI Navigation: Example Pictures Take a look at recent photos People Look up the status for a contact Pictures Continue looking at recent photos
Navigation • PhoneApplicationFrame • PhoneApplicationPage
PhoneApplicationPage • More than the container for units of navigation • OnChooserReturn • OnOrientationChanged • OnNavigatedFrom • OnNavigatedTo • OnBackKeyPress
Back key • Lets the user to return to previously-viewed screens • Can go back across applications • Not used for application-specific behaviour
Application events • Obscuring • Activation
a world of constant interruptions phone calls low battery lock screen reminders App switch txt msgs :-)
basic application lifetime • Splash screen • App constructor • Startup event • Exit event • Obscured • Paused
Not in the Mix build obscured: popup ui from shell • Phone call • Reminder • Battery low Games could auto-pause Game could auto-resume What if they answer the phone?
Not in the Mix build paused: jump to another app • Start Button • Accept call • Open toast Load state to continue where you left off User never knows what happened :-) Assume your process is killed Save state for later use
ApplicationBar & SystemTray • SystemTray • No integration, but does affect Layout • Show:Hide using SystemTray.IsVisible • ApplicationBar • Buttons (up to 4) • Menu Items ( recommend 6) • Toggle: • <mypage>.ApplicationBar.IsVisible
Web Browser Control • Displays network and local content • Supports pan, double tap and pinch to zoom • Supports transforms & projections • No Input on transform • Application can interact with javascript • Optimized for privacy • Script is disabled by default • Cookies and cache are isolated
Silverlight to Script Silverlight string out = wb.InvokeScript("runScriptStuff", arg1, arg2); javascript function runScriptStuff(arg1, arg2) { return “awesome”; }
Script to Silverlight Silverlight void wb_ScriptNotify(object s, NotifyEventArgs e) { string return = e.Value; } javascript window.external.Notify(string);
MultiScaleImage ( aka deepzoom) • Included in core run-time • Optimized to take advantage of GPU • Consumes same content as SL on desktop • Supported for Online content • not isolated storage or embedded content • No oob gesture support • Manipulation APIs make this easy though
Integrating with the OS • Hub integration • Enhance the built in hubs with your application • Launchers let you fire and forget to an OS app • SMS, email, web browser, maps, dialer, search, etc • Choosers are like an open file dialog • Launches an OS experience for letting the user choose data for the app • Picture, contact, camera, etc
Launchers & Choosers Choosers Launchers • CameraCaptureTask • MarketplaceLauncher • MediaPlayerLauncher • PhoneCallTask • SaveEmailAddressTask • SavePhoneNumberTask • SearchTask • EmailComposeTask • SMSComposeTask • WebBrowserTask • PhoneNumberChooserTask • PhotoChooserTask • EmailAddressChooserTask
Isolated Storage • Compatible APIs with Silverlight on desktop • No quota limits • Not shared (ever) • No write access to Media Library, use XNA for that • Use for your application settings
Thanks!! Questions?