Creating high rated and reliable Windows 8 application

Preview:

DESCRIPTION

Creating high rated and reliable Windows 8 application

Citation preview

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

Recommended