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
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
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
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
23. 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
24. Notification Queuing
• By default only last notification shown
• Opt-in to automatically cycle tile through last five
notifications
25. 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
27. 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
34. 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
35. 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"/>
36. 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
37. public sealed class UpdateLiveTileTask : IBackgroundTask {
public void Run(IBackgroundTaskInstance
taskInstance)
{
// Your app code to update email
}
}
}
using Windows.ApplicationModel.Background;
Time
Trigger
39. 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!
41. Hands-On Lab 3 OR Create your own app
Running in the background
42. 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.