Windows 8 DevUnleashed - Session 3
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Windows 8 DevUnleashed - Session 3

on

  • 304 views

 

Statistics

Views

Total Views
304
Views on SlideShare
304
Embed Views
0

Actions

Likes
0
Downloads
6
Comments
1

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Windows 8 DevUnleashed - Session 3 Presentation Transcript

  • 1. Session III – Lifecycle and More Daryl Rudolph
  • 2. Agenda Application Lifecycle Live Tiles, Background Process and Lock Screen Implementing the Search Contract
  • 3. Application Lifecycle Show the flow Feel Connected and Alive
  • 4. Memory Management User selects app for foreground System manages app lifetime User launches many apps User manages app lifetime
  • 5. App process lifetime
  • 6. Application States Running SuspendedNot Running Resuming Activated Suspending
  • 7. Process lifetime walkthrough
  • 8. When do apps get terminated • System needs more memory • User switch occurs • System shutdown • Apps crash Apps do not get notified when they are getting terminated
  • 9. Process state transitions 5seconds not User Launche s App Splash screen
  • 10. Suspend under the hood • Suspended apps are not scheduled by the NT Kernel • No CPU, Disk or Network consumed • All threads are suspended • Apps remain in memory • Kernel ensures apps are not suspended in critical sections that could cause system wide deadlocks • Apps instantly resumed from suspend when brought to foreground
  • 11. Interacting with your users
  • 12. App Activation Through Contracts • Apps are activated through contracts • Launch, search, ShareTarget, etc. • Apps need to initialize contract specific actions • Context is provided Running App launch shareTarget activated kind search
  • 13. App crash? Start over • Apps that are stuck are no fun • Your app can be terminated abruptly in any of these cases • Too long to load • Too long to suspend • Stopped handling input messages (Blocking I/O on UI thread) • Task manager • Bring the user back home, and ignore saved user session state • previousExecutionState is provided in activation event args
  • 14. Best practices for saving and restoring state Scenario You should…. User is using your App • Save user data incrementally App switched away from (Suspending) • Save where the user is – what screen they are on, for example Not running App launched by user (Activated) • Bring the user back and restore their session as if they never left Suspended App launched by user (Resuming) • Do nothing
  • 15. Demo Suspend Demo
  • 16. Search Contract Finding your application Use the Right Contracts
  • 17. Search 1 2 3 1. Search box is scoped to the main app on screen 2. Query suggestions provided by the main app on screen • Autocompletes to terms for which the app has search results 3. List of installed Windows 8 style apps that have implemented the search contract
  • 18. Query submitted User Show Search results view Show previous search results view Search Pane Submit query to App Search App Query Submitted Event
  • 19. Demo Search Contract Demo
  • 20. Live tiles Keep the action going Invest in a Great Tile
  • 21. Badges • Overlays status on top of tile • Supports square and wide tiles • Number up to 99 or pre-defined glyph: • Always legible on top of images BadgeBadge
  • 22. Notification Queuing • By default only last notification shown • Opt-in to automatically cycle tile through last five notifications
  • 23. Live Tiles things to remember • Tiles updated using pre-defined templates • Text-only, image-only or combination • JPEG or PNG only, max size 150 KB • Local, cloud or background updates Invest in a Great Tile
  • 24. Demo Live Tiles
  • 25. Secondary Tiles • Tiles created by “pinning” content from app • Pin initiated by app via simple runtime call • User confirms pin operation via system UI • Exposes a personalized surface for app • Same capabilities as app tiles • Launch leads to relevant content
  • 26. Demo Secondary Tiles
  • 27. RTC – Real Time Communication apps Keep the action going Invest in a Great Tile
  • 28. Review app process lifetime
  • 29. …with RTC appsThe app lifecycle
  • 30. Network Trigger RTC trigger APIs System Trigger Time Trigger Background Task Infrastructure VoIP IM Your App App OS
  • 31. Network Trigger System Trigger Time Trigger Background Task Infrastructure VoIP IM Mail Changing Live Tile Time Trigger Setting up a Time Trigger
  • 32. Live tiles with push notifications • Tiles can be updated even if your app is not running! • Push notifications can be used to remotely update a tile on the Start screen • Great for showing the newest content available to your users App Cloud Service Windows Push Notification Service (WNS) HTTP POST Notification Delivered
  • 33. Push Notification Overview Notificatio n Client Platform App Service Windows Push Notification Service POST <channel URI> HTTP/1.1 Content-Type: text/xml Host: db3.notify.windows.com X-WNS-Type: wns/badge Authorization: Bearer <authentication token> Content-Length: 58 <?xml version="1.0" encoding="utf-8"?> <badge value="11"/>
  • 34. Time Trigger using Windows.ApplicationModel.Background; // Specify the trigger TimeTrigger trigger = new TimeTrigger(UpdateInterval, Periodic); Create time trigger // Associate app code with the trigger BackgroundTaskBuilder taskBuilder = new BackgroundTaskBuilder(); taskBuilder.TaskEntryPoint = “MyApp.Background.UpdateEmailTask"; taskBuilder.SetTrigger(trigger); taskBuilder.Name = “TimerExpiry"; Associate trigger with app code // Register the task for background execution IBackgroundTaskRegistration taskRegistration = taskBuilder.Register(); Register trigger
  • 35. public sealed class UpdateLiveTileTask : IBackgroundTask { public void Run(IBackgroundTaskInstance taskInstance) { // Your app code to update email } } } using Windows.ApplicationModel.Background; Time Trigger
  • 36. Demo Live Tiles /Lock Screen/Background
  • 37. Best Practices for Tiles • Display new, tailored and engaging content to the user • Keep tile fresh by updating as your app content changes • Reference content that lives on your app’s home page so the user can find it easily. • Keep content safely ignorable and glanceable - for short messages only • Use square size if tile is not live • No display ads! 
  • 38. Agenda Application Lifecycle Live Tiles, Background Process and Lock Screen Implementing the Search Contract
  • 39. Hands-On Lab 3 OR Create your own app Running in the background
  • 40. Create your own app • You can work on Hands-on Lab 3 OR Create your own app • You have until 4:20 PM • Don’t have to decide if you are entering until 4:20 PM • Presentation can be PowerPoint and/or demonstration • Must let me know beforehand if you don’t have VGA connection • Each contestant will have exactly 3 minutes to present! • Be creative. Keep in mind the traits of a great Windows 8 app! • Note: Anyone who attended today can enter to win the app contest sponsored by Component Art for a $10,000 grand prize, even if you don’t enter today’s contest.
  • 41. Contact/References • Magenic – http://www.magenic.com • Daryl Rudolph – darylr@magenic.com • http://dev.windows.com • http://design.windows.com • API Sites • http://www.restfulwebservices.net • http://developer.mashery.com/apis • http://www.programmableweb.com