Mykhail Galushko co-founder DevRain Solutions Microsoft MVP Creating high rated and reliable Windows 8 application
Oct 20, 2014
Mykhail Galushkoco-founder DevRain SolutionsMicrosoft MVP
Creating high rated and reliable Windows 8 application
Application
1. Why bad rating?2. Problem areas in WinStore apps3. Windows Store tools4. Windows 8.1 features5. Third-party logging services
Reasons of bad rating
Application
Free
zes
Crash
es
Slow
resp
onsiv
enes
s
Heavy
bat
tery
usa
ge
Too
man
y ad
s0
10
20
30
40
50
60
70
80
10 problem areas in Windows Store app
Application1) Suspend/Resume2) Terminate/Restart3) App version updates4) Network connectivity5) Asynchronous operations
10 problem areas in Windows Store app
Application6) Resolutions and orientations7) Device testing8) Localizability9) Accessibility10) User experience guidelines
Suspend/Resume – Terminate/Restart
ApplicationRunning
Not Running
Suspended
Activated Suspending
Resuming
Terminating
Suspend/Resume – Terminate/Restart
ApplicationValidate app state on resume: user sessions, sensors state, service connections
Use VS tools to simulate events:
App version updates
ApplicationTest every app update before release
Make data storage migrations if needed
If using API – check min server version to communicate
Network connectivity
ApplicationTest no connectionTest slow connection (with Fiddler)
Do not use NetworkInformation.GetInternetConnectionProfile(): can be null when using mobile internet
Asynchronous operations
ApplicationCheck async operations:
- several starts problem – block UI after start
- invalid call order- think twice about “async void”
methods- add delays for testing
Resolutions and orientations
ApplicationUse simulator to check all resolutionsCheck from 1024x768 to …Check Snapped / Filled viewsWindows 8.1: + 500px width sizeCheck popups & settings pane for small resolutions
Application
Device testing
Applicationx86 x64ARM
Especially for C++
Localizability
ApplicationUse Multilingual App Toolkit to generate pseudo translations
Accessibility
ApplicationVisual: high/contrast, text contrast
Keyboard accessibility: onscreen and physical
User experience guidelines
ApplicationApp barsFlyouts (popups)NavigationLayoutAnimation
Windows Store features
ApplicationJavaScript exception rateCrash rateApp unresponsive rateError reports
Windows 8.1 features – Logging API
ApplicationLogging Channel
Logging Channel
Logging Channel
Logging Session
Storage file
My backend service
Windows 8.1 features – Logging API
ApplicationLogging Channel
Logging Session
Storage file
My backend service
var channel = new LoggingChannel (“MyChannel");channel.LoggingEnabled += (sender, args) => { _isLoggingEnabled = sender.Enabled; _channelLoggingLevel = sender.Level; }
var level = LoggingLevel.Error;if (_isLoggingEnabled && level >= _channelLoggingLevel) { channel.LogMessage(“message", level); channel.LogValuePair(“custom parameter", 42, level); }
Windows 8.1 features – Logging API
ApplicationLogging Channel
Logging Session
Storage file
My backend service
var session = new LoggingSession(“MySession");session.AddLoggingChannel(channel, LoggingLevel.Warning);
//on errorStorageFile logFile = await session.SaveToFileAsync(logFolder, name) //upload in background to my backend service
Windows 8.1 features – Logging API
ApplicationLogging Channel
Logging Session
Storage file
My backend service
var session = new FileLoggingSession(“MySession");session.AddLoggingChannel(channel, LoggingLevel.Warning);
session.LogFileGenerated += (senders, args) => { await args.File.MoveAsync(logFolder); //upload in background to my backend service}
var file = await session.CloseAndSaveToFileAsync();
Third-party logging services
ApplicationBugsense
• Limited Free• User analytics• WinJS support• Integration: JIRA, Pivotal Tracker, Github, Hipchat
http://www.bugsense.com
Third-party logging services
ApplicationLocalytics
• User analytics• Error logging as events• WinJS support• Full free plan
http://www.localytics.com
Third-party logging services
ApplicationMarkedUp
• User analytics• WinJS support• Full free plan
http://www.markedup.com
Third-party logging services
ApplicationWensus
• User analytics• Free plan for 1 app• Paid plan: + reviews + performance reports
http://www.wensus.com
Q&A