Microsoft tells how to make fast launching Windows 8 Metro apps

When Windows 8 is released later in 2012, users will expect to be able to launch a Windows 8 Metro app quickly and with little to no lag time once it is clicked on by a mouse or touched by a finger. In the newest post on the Windows 8 app developer blog site, Microsoft gives Metro app creators some tips on how to code their apps to launch quickly for users.

The highly technical blog post talks about the splash screen for Metro apps: Microsoft says:

When users launch an app, they are immediately greeted by the splash screen. Every Metro style app has a splash screen, which consists of a 620x300 image and solid background color. Windows presents the splash screen on your behalf in order to welcome users while your app is activated. The activated event is received by all apps on launch, and gives your app the ability to perform any initialization work needed to present its initial UI. This might include reading basic settings, determining what page to navigate to, and/or identifying whether the app was activated for one of the various contracts.

Once the splash screen goes away, a Metro app must then show off its first window. While developers who work with JavaScript-based apps won't have anything to worry, apps based on C# apps must bring up the first window via a call to Window.Current.Activate. The blog adds:

Be careful not to delay this operation, as your app will be terminated if a window is not displayed within a reasonable amount of time (~15 seconds). In addition, you’ll want to present a window as fast as possible because unnecessarily keeping the splash screen up can quickly deteriorate the user experience. We recommend that you present a window within 2-3 seconds to ensure that your app will always launch as expected, even on low-end hardware.

The blog goes over over four different ways a Windows 8 Metro app can be launched from start to completion, along with example code for each type of app launch. One is the default app launch, which is shown above with Internet Explorer 10 in Metro. Microsoft says, "In this flow, Windows handles the display and removal of each app’s splash screen. The splash screen is displayed until activation completes and a window is presented, triggering an animated crossfade to the app’s landing page."

The second way is the skeleton app launch, which may be needed for apps that need to load content before they are ready to be used. You can see an example in the Windows 8 Music Metro app above.

The third app launch example on Windows 8 is the extended app launch. This time, the example is the Windows 8 Weather app which may need some additional help, such as connecting to the Internet, to retrieve its information. In that case, Microsoft says an extended launch splash screen may be needed. The blog states:

The extended splash screen is owned entirely by the app and is formatted using the splash screen API. The API provides positioning information that ensures the look and feel of the extended splash screen is visually identical to the splash screen (with the exception of a progress ring or loading details), which unifies the seemingly independent loading operations. While the extended splash screen is up, the app can continue executing tasks needed to paint the landing page. Then, after loading is complete, you can transition from the extended splash screen to the landing page.

Finally, there is the deferred app launch. Microsoft uses the Photo app in Windows 8 as the example for this type of Metro app. The blog states that instead of an extended splash screen, " ... the app defers dismissal of the regular splash screen until asynchronous tasks have been executed. Because apps have limited time to complete this deferral, the deferral pattern should be used sparingly, and mainly to complete simple asynchronous operations like reading app settings before the app is displayed."

Images via Microsoft

Report a problem with article
Previous Story

Facebook stock down almost 11 percent in second day

Next Story

Windows Phone Xbox Live avatar promo gets abused

43 Comments

Commenting is disabled on this article.

Why is there a need for a splash screen at all? That sucks, i've always hated splash screen in any software.

Look at office 2010. It starts up fast despite a splash screen. However, the splash screen has left a perceived slowness in many people's minds; many of my friends think office 2010 starts up slow, although it's only a few seconds even for the largest of documents.

I don't know why anyone hasn't complained about this till now, but launching Metro apps in Windows 8 is frickin slow, as they take 2-3 seconds loading 'till become operative.

2-3 secs for a fu**ing calendar app? Give me a break.
Some people make comparations with Photoshop here saying it displays a splash too. That's right, Photoshop loads slowly, but man.. c'mon.. are you comparing a huge app like Photoshop with a tiny sh*t that displays the current date, aside with two widgets?

Come on, people!

Metro apps .. as dead simple as they are (at least for now), should open instantly. That's it. Anything else but instant opening denotes only poor engineering.

PS: I'm a software developer

Their own apps are far too slow in the CP. I don't even want the splash screen. E.g. desktop Solitaire launches faster than Metro one. Photo Gallery launches faster than the Photos app. Any desktop PDF reader launches instantly than their Reader app.

Enron said,
They should just have them launch like Windows Phone 7 apps. They start fast with no fuss.

I disagree. I think the big, beautiful splash screens add to the user experience in a positive way. I'd like them to display even if they weren't required. They've only ever displayed for a few seconds for me.

Enron said,
They should just have them launch like Windows Phone 7 apps. They start fast with no fuss.

WP7 apps also load with a splash screen.

jakem1 said,

WP7 apps also load with a splash screen.

Not all. I understand if it's necessary, but I don't need a splash screen for a notepad or a clock.

jakem1 said,

WP7 apps also load with a splash screen.


By default, yes. But if you delete the splash screen image in Visual Studio, then it doesn't display a splash screen. But then you just get a black screen for a second or two.

This is their idea of fast? From my experience, it seems apps like Xbox Live and Music don't cache anything at all. Waiting several minutes just to see the content is not my idea of fast. Not surprising since the Xbox 360 also doesn't cache anything either.

xiphi said,
Not surprising since the Xbox 360 also doesn't cache anything either.
How are the Xbox hardware/software in any way related to your computer/Windows 8 launching the Xbox LIVE app?

Mulsivaas said,
How are the Xbox hardware/software in any way related to your computer/Windows 8 launching the Xbox LIVE app?

They're made by the same company?

xiphi said,

They're made by the same company?

Under different people.
The programmers for Windows 8 and XBox may work for Microsoft, but they are two different divisions of Microsoft altogether. Therefore, they would program it whatever way they feel more efficient. Also, a computer has better processing power than an XBox, so it could load applications faster than an XBox. Don't hate what you can't try next time.

Ingrion said,
Don't hate what you can't try next time.

Huh? What the hell are you talking about?

I don't care what divisions these products are in. The fact is, they both are designed by the same company and made to deliver "fast and fluid experiences" while neither deliver that experience!

xiphi said,
This is their idea of fast? From my experience, it seems apps like Xbox Live and Music don't cache anything at all. Waiting several minutes just to see the content is not my idea of fast. Not surprising since the Xbox 360 also doesn't cache anything either.

If you have to wait for several minutes for apps to load in the Consumer Preview, I suspect something may be wrong with your hardware. I haven't ever had to wait for more than a few seconds and I only use an i5 processor,

Calum said,

If you have to wait for several minutes for apps to load in the Consumer Preview, I suspect something may be wrong with your hardware. I haven't ever had to wait for more than a few seconds and I only use an i5 processor,

Nothing wrong with my hardware, buddy. Desktop apps load just fine and much quicker than Metro apps. Hell, I can go straight to xbox.com and get faster results than the Xbox Live app.

xiphi said,

Nothing wrong with my hardware, buddy. Desktop apps load just fine and much quicker than Metro apps. Hell, I can go straight to xbox.com and get faster results than the Xbox Live app.

Why does it take several minutes for apps to load in the Consumer Preview, for you, then, when it takes only a few seconds for me? I'm not stating that you're doing anything wrong; I'm just wondering and trying to think of reasons

Calum said,

Why does it take several minutes for apps to load in the Consumer Preview, for you, then, when it takes only a few seconds for me? I'm not stating that you're doing anything wrong; I'm just wondering and trying to think of reasons

First thing that springs to my mind is BETA software issues!

duddit2 said,

First thing that springs to my mind is BETA software issues!


That could well be the reason I'm just curious as to why I don't ever have to wait several minutes for a WinRT app to load, when this person apparently does sometimes.

It just gets worse and worse, so I have to look at a splash screen for three seconds even on high end hardware that can open apps in Windows 7 almost instantly to pander for those with lower spec systems?

Mind you, this seems to be Windows 8 all over, why can't they just release a "enthusiast" edition for people who are going to be annoyed with all of this bloat/fluff?

08993 said,
It just gets worse and worse, so I have to look at a splash screen for three seconds even on high end hardware that can open apps in Windows 7 almost instantly to pander for those with lower spec systems?

I don't follow? The splash screen doesn't make anything slower. Quite the opposite, it makes the system feel faster as your tap/click results in an immediate reaction, and you know that the app is loading.

Brandon Live said,

I don't follow? The splash screen doesn't make anything slower. Quite the opposite, it makes the system feel faster as your tap/click results in an immediate reaction, and you know that the app is loading.


I disagree that splash screens make the system feel faster. I understand the need for one, but if it's there for more than a second or two, which is the case most of the time in my experience on both my desktop and laptop, then it doesn't feel "fast and fluid" as you guys at MS keep saying. It doesn't help Metro's case when desktop apps that do more than the Metro apps start up faster.

Brandon Live said,

I don't follow? The splash screen doesn't make anything slower. Quite the opposite, it makes the system feel faster as your tap/click results in an immediate reaction, and you know that the app is loading.

On my current system, apps load pretty much instantaneously (SSD, i7-3960x). Upon reading the article further I see that the splash fades away once the program has loaded but I'm still going to have to wait for the splash and the fade, that's not instantaneous.

You, just like MS, seem to assume I have a slow system, I don't, I don't see why I should be penalised because of it.

08993 said,
It just gets worse and worse, so I have to look at a splash screen for three seconds even on high end hardware that can open apps in Windows 7 almost instantly to pander for those with lower spec systems?

Mind you, this seems to be Windows 8 all over, why can't they just release a "enthusiast" edition for people who are going to be annoyed with all of this bloat/fluff?


I love the splash screens, and how they cover the entire screen with one beautiful colour. Even if the apps didn't need them, I'd want them in there.

Calum said,

I love the splash screens, and how they cover the entire screen with one beautiful colour. Even if the apps didn't need them, I'd want them in there.

*facepalm*

xiphi said,

*facepalm*

That's ridiculous, You're facepalming merely because I like the look and user experience of something that you don't. Way to go. Maybe you should accept that different people like different things to you. Do you facepalm when someone likes different music to you or different food? If so, you must be a great person to be around

Calum said,

I love the splash screens, and how they cover the entire screen with one beautiful colour. Even if the apps didn't need them, I'd want them in there.

I want a practical system, not something where eye candy takes precedence over function!

Axel said,

I want a practical system, not something where eye candy takes precedence over function!


I don't believe that a splash screen being displayed for 1-3 seconds impedes on the function. It still feels as if the apps load pretty much instantly to me, and it doesn't appear as if the splash screen being displayed would harm my productivity.

Calum said,

That's ridiculous, You're facepalming merely because I like the look and user experience of something that you don't. Way to go. Maybe you should accept that different people like different things to you. Do you facepalm when someone likes different music to you or different food? If so, you must be a great person to be around

Now, you're attacking me personally? I expect better from a moderator. Beyond that, I won't dignify the rest of your post with a responce since you've shown just exactly what kind of a person you are. This is absurd.

08993 said,
It just gets worse and worse, so I have to look at a splash screen for three seconds even on high end hardware that can open apps in Windows 7 almost instantly to pander for those with lower spec systems?

Mind you, this seems to be Windows 8 all over, why can't they just release a "enthusiast" edition for people who are going to be annoyed with all of this bloat/fluff?

Nah, even on my SSD based laptop I wait 1-2 seconds for an app to launch, longer for some apps (outlook, Photoshop etc.) - while waiting some desktop apps do display a splash screen of their own, sure its not full screen and doesn't demand focus, but its there.

When apps have a delay (sometimes chrome takes 2-3 seconds) I would have liked to see an instant recognition that I clicked a button and something was happening, then see the app appear - this would make things feel more instant due to the breaking up of the waiting time (click, see splash, see app - opposed to click...............… see app).

Now on this same laptop I've just been playing around with a few metro apps to see how long I'm waiting, then did the same with some desktop apps - guess what? the same average time waiting, but the metro apps feel better due to the splash screen.

I'm going to test this later as well on my standard old hard drive based desktop computer, but for now I have to disagree with you 100% on the assumption that the addition of a splash screen (present on a lot of desktop apps anyway but not full screen) is detrimental to the overall user experience.

Calum said,

I don't believe that a splash screen being displayed for 1-3 seconds impedes on the function. It still feels as if the apps load pretty much instantly to me, and it doesn't appear as if the splash screen being displayed would harm my productivity.

When you're in a rush, 1 - 3 seconds is an eternity! But maybe you're right, I just loaded the mail up in less than a second and the full screen splash on the apps echo's consistency across the UI.

I just can't wait for Release Preview to see where they've taken it all!

Axel said,

When you're in a rush, 1 - 3 seconds is an eternity! But maybe you're right, I just loaded the mail up in less than a second and the full screen splash on the apps echo's consistency across the UI.

I just can't wait for Release Preview to see where they've taken it all!

Yeah I think some people think that because metro apps get a splash screen they're going to take longer to start than normal desktop apps without one. I honestly don't think that's the case at all unless the app itself is writen wrong, which is more a problem with the developer than anything to do with a splash screen.

The idea here is simple, the splash screen is just a visual sign that the program is starting, apps on the desktop that take time to load often have a splash screen of some type. Who's used any version of Photoshop for example? You know about it, and how it actually lists what it's loading etc. If metro apps start just as quick as desktop apps even with the splash screen then there's really no issue here.

This just seems like another case of knee jerk reactions or nitpicking what's really a non-issue.

xiphi said,

Now, you're attacking me personally? I expect better from a moderator. Beyond that, I won't dignify the rest of your post with a responce since you've shown just exactly what kind of a person you are. This is absurd.


I am not personally attacking you. Personal attacks are against our rules, and none of us are above the rules. I was very careful with my words. Your post was very rude and ignorant, which warranted the response you received from me. I am a very nice and courteous person, but if someone speaks to me in an indecent way, like you did, they will receive the kind of response I gave you. Otherwise, people don't learn to start being polite and courteous.

Axel said,

When you're in a rush, 1 - 3 seconds is an eternity! But maybe you're right, I just loaded the mail up in less than a second and the full screen splash on the apps echo's consistency across the UI.

I just can't wait for Release Preview to see where they've taken it all!


That's a good point. I didn't think about those times when one is in a rush, which can happen with me. I agree with the point about the consistency, too. I don't think I've ever been as excited for a Windows release as I currently am for the Release Preview

Calum said,

I am not personally attacking you. Personal attacks are against our rules, and none of us are above the rules. I was very careful with my words. Your post was very rude and ignorant, which warranted the response you received from me. I am a very nice and courteous person, but if someone speaks to me in an indecent way, like you did, they will receive the kind of response I gave you. Otherwise, people don't learn to start being polite and courteous.

You are quite delusional. My post pales in comparison to the rudeness and ignorance of yours. All I did was make a simple comment regarding the matter of an OS while you decided to dig deeper and attack my personality of which you know nothing about. That's low.

xiphi said,

You are quite delusional. My post pales in comparison to the rudeness and ignorance of yours. All I did was make a simple comment regarding the matter of an OS while you decided to dig deeper and attack my personality of which you know nothing about. That's low.


I always ensure my post is slightly worse than the rudeness I'm replying to, in the hope that the effect of that will influence the original commenter to consider how hurtful or indecent his or her comment was; however, I always ensure I stick within the rules when doing so. That isn't low at all. It would be low if the original commenter hadn't been rude. If someone is rude, they should be held to account, called out on that, and taught how to be courteous and polite.

Your comment does not pale in comparison to mine because you maliciously attempted to humiliate me (the only purpose of a "*facepalm*" comment is to humiliate the victim).

I clearly do know a bit about your personality because you were very rude to me and attempted to humiliate me. You're either the type of person who sees no problem in being like that or you haven't considered the effect of a "*facepalm*" comment, otherwise you wouldn't continue trying to defend that comment. Your online presence is a reflection of parts of your personality, whether you realise that or not.

It's important you understand our rules. My comment was not a personal attack because I didn't insult you (if you read it, I chose my words carefully); however, you have actually broken our rules by directly insulting me. You called me delusional. Per our rules, you're allowed to attack the post, but not the poster (you could have called my post or my views delusional, but not me). Please remember that for future reference. Having said all of that, I am not delusional, as I explain earlier in this post.

No decent person would attempt to defend a comment that just states "*facepalm*" in reply to someone expressing their enjoyment of a user experience.

Now, I've explained to you how you are in the wrong. A decent person would realise and accept that (we all make mistakes sometimes). But this thread is starting to trail off-topic, so please send me a personal message if you'd like to continue discussing this. I don't believe any further discussion is required, though. Unless you'd like to apologise (of course).

Edited by Calum, May 22 2012, 10:44am :

You know nothing of my personality. Not. A. Thing. You need to think twice before you start putting that foot in your mouth and start assuming things about people. If there's anyone who deserves an apology it's me, not some elitist mod who goes around the rules to antagonize a user. I got better things to do than to argue with someone on the internet about stupid ****.

To be fair, Metro apps do in general take longer to start up than traditional apps. It may be because it's taking extra time to set up the sandboxed instance of the framework and get everything ready, but it's still slower a lot slower. I can have desktop apps like Word, Evernote, Photo Gallery, etc -open up nearly instantaneously (and they're much more complex than Metro apps), whilst still having to wait 2-4 seconds for a Metro app to open - and still be loading it's content.

xiphi said,
You know nothing of my personality. Not. A. Thing. You need to think twice before you start putting that foot in your mouth and start assuming things about people. If there's anyone who deserves an apology it's me, not some elitist mod who goes around the rules to antagonize a user. I got better things to do than to argue with someone on the internet about stupid ****.

As I mention, your online presence is a reflection of parts of your personality; thus, I know some things about your personality. That is a fact, not an assumption.

I must defend myself here, but we cannot continue this on this thread because it is off-topic. I am not elitist and I don't go around the rules. It is sad that people sometimes deem me elitist merely because I don't accept individuals unjustifiably being rude to me.

Oh well, like you, I have better things to do than continue an off-topic debate.

~Johnny said,
To be fair, Metro apps do in general take longer to start up than traditional apps. It may be because it's taking extra time to set up the sandboxed instance of the framework and get everything ready, but it's still slower a lot slower. I can have desktop apps like Word, Evernote, Photo Gallery, etc -open up nearly instantaneously (and they're much more complex than Metro apps), whilst still having to wait 2-4 seconds for a Metro app to open - and still be loading it's content.

That's interesting to me because it's something I haven't particularly noticed (and it thus probably doesn't bother me). I'm curious: Would you say this negatively affects your user experience, and do you deem it a problem?

xiphi said,

Now, you're attacking me personally? I expect better from a moderator. Beyond that, I won't dignify the rest of your post with a responce since you've shown just exactly what kind of a person you are. This is absurd.

You were rude and he didn't attack you. Stop being so childish.

_Heracles said,
I hope they fixed the slow app launches in the Customer Preview

I haven't witnessed any apps launch slowly in the Consumer Preview.