Windows 8 DevUnleashed - Session 3


Published on

Published in: Technology, Business
1 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 8 DevUnleashed - Session 3

  1. 1. Session III – Lifecycle and More Daryl Rudolph
  2. 2. Agenda Application Lifecycle Live Tiles, Background Process and Lock Screen Implementing the Search Contract
  3. 3. Application Lifecycle Show the flow Feel Connected and Alive
  4. 4. Memory Management User selects app for foreground System manages app lifetime User launches many apps User manages app lifetime
  5. 5. App process lifetime
  6. 6. Application States Running SuspendedNot Running Resuming Activated Suspending
  7. 7. Process lifetime walkthrough
  8. 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. 9. Process state transitions 5seconds not User Launche s App Splash screen
  10. 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. 11. Interacting with your users
  12. 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. 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. 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. 15. Demo Suspend Demo
  16. 16. Search Contract Finding your application Use the Right Contracts
  17. 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. 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. 19. Demo Search Contract Demo
  20. 20. Live tiles Keep the action going Invest in a Great Tile
  21. 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. 22. Notification Queuing • By default only last notification shown • Opt-in to automatically cycle tile through last five notifications
  23. 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. 24. Demo Live Tiles
  25. 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. 26. Demo Secondary Tiles
  27. 27. RTC – Real Time Communication apps Keep the action going Invest in a Great Tile
  28. 28. Review app process lifetime
  29. 29. …with RTC appsThe app lifecycle
  30. 30. Network Trigger RTC trigger APIs System Trigger Time Trigger Background Task Infrastructure VoIP IM Your App App OS
  31. 31. Network Trigger System Trigger Time Trigger Background Task Infrastructure VoIP IM Mail Changing Live Tile Time Trigger Setting up a Time Trigger
  32. 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. 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: X-WNS-Type: wns/badge Authorization: Bearer <authentication token> Content-Length: 58 <?xml version="1.0" encoding="utf-8"?> <badge value="11"/>
  34. 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. 35. public sealed class UpdateLiveTileTask : IBackgroundTask { public void Run(IBackgroundTaskInstance taskInstance) { // Your app code to update email } } } using Windows.ApplicationModel.Background; Time Trigger
  36. 36. Demo Live Tiles /Lock Screen/Background
  37. 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. 38. Agenda Application Lifecycle Live Tiles, Background Process and Lock Screen Implementing the Search Contract
  39. 39. Hands-On Lab 3 OR Create your own app Running in the background
  40. 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. 41. Contact/References • Magenic – • Daryl Rudolph – • • • API Sites • • •