Mykhail Galushko
co-founder DevRain Solutions
Microsoft MVP
Creating high rated and reliable
Windows 8 application
Application
1. Why bad rating?
2. Problem areas in WinStore apps
3. Windows Store tools
4. Windows 8.1 features
5. Third-p...
Reasons of bad rating
Application
0
10
20
30
40
50
60
70
80
Freezes Crashes Slow
responsiveness
Heavy battery
usage
Too ma...
10 problem areas in Windows Store app
Application
1) Suspend/Resume
2) Terminate/Restart
3) App version updates
4) Network...
10 problem areas in Windows Store app
Application
6) Resolutions and orientations
7) Device testing
8) Localizability
9) A...
Suspend/Resume – Terminate/Restart
ApplicationRunning
Not Running Suspended
Activated Suspending
Resuming
Terminating
Suspend/Resume – Terminate/Restart
Application
Validate app state on resume: user
sessions, sensors state, service connect...
App version updates
Application
Test every app update before release
Make data storage migrations if needed
If using API –...
Network connectivity
Application
Test no connection
Test slow connection (with Fiddler)
Do not use
NetworkInformation.GetI...
Asynchronous operations
Application
Check async operations:
- several starts problem – block UI after start
- invalid call...
Resolutions and orientations
Application
Use simulator to check all resolutions
Check from 1024x768 to …
Check Snapped / F...
Application
Device testing
Application
x86
x64
ARM
Especially for C++
Localizability
Application
Use Multilingual App Toolkit to generate pseudo
translations
Accessibility
Application
Visual: high/contrast, text contrast
Keyboard accessibility: onscreen and physical
User experience guidelines
Application
App bars
Flyouts (popups)
Navigation
Layout
Animation
Windows Store features
Application
JavaScript exception rate
Crash rate
App unresponsive rate
Error reports
Windows 8.1 features – Logging API
ApplicationLogging Channel
Logging Channel
Logging Channel
Logging Session
Storage file...
Windows 8.1 features – Logging API
ApplicationLogging Channel
Logging Session
Storage file
My backend service
var channel ...
Windows 8.1 features – Logging API
ApplicationLogging Channel
Logging Session
Storage file
My backend service
var session ...
Windows 8.1 features – Logging API
ApplicationLogging Channel
Logging Session
Storage file
My backend service
var session ...
Third-party logging services
Application
Bugsense
• Limited Free
• User analytics
• WinJS support
• Integration: JIRA, Piv...
Third-party logging services
Application
Localytics
• User analytics
• Error logging as events
• WinJS support
• Full free...
Third-party logging services
Application
MarkedUp
• User analytics
• WinJS support
• Full free plan
http://www.markedup.com
Third-party logging services
Application
Wensus
• User analytics
• Free plan for 1 app
• Paid plan: + reviews + performanc...
Q&A
Upcoming SlideShare
Loading in …5
×

Creating high rated and reliable Windows 8 application

585 views
434 views

Published on

Creating high rated and reliable Windows 8 application

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
585
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Creating high rated and reliable Windows 8 application

  1. 1. Mykhail Galushko co-founder DevRain Solutions Microsoft MVP Creating high rated and reliable Windows 8 application
  2. 2. Application 1. Why bad rating? 2. Problem areas in WinStore apps 3. Windows Store tools 4. Windows 8.1 features 5. Third-party logging services
  3. 3. Reasons of bad rating Application 0 10 20 30 40 50 60 70 80 Freezes Crashes Slow responsiveness Heavy battery usage Too many ads
  4. 4. 10 problem areas in Windows Store app Application 1) Suspend/Resume 2) Terminate/Restart 3) App version updates 4) Network connectivity 5) Asynchronous operations
  5. 5. 10 problem areas in Windows Store app Application 6) Resolutions and orientations 7) Device testing 8) Localizability 9) Accessibility 10) User experience guidelines
  6. 6. Suspend/Resume – Terminate/Restart ApplicationRunning Not Running Suspended Activated Suspending Resuming Terminating
  7. 7. Suspend/Resume – Terminate/Restart Application Validate app state on resume: user sessions, sensors state, service connections Use VS tools to simulate events:
  8. 8. App version updates Application Test every app update before release Make data storage migrations if needed If using API – check min server version to communicate
  9. 9. Network connectivity Application Test no connection Test slow connection (with Fiddler) Do not use NetworkInformation.GetInternetConnectionProfi le(): can be null when using mobile internet
  10. 10. Asynchronous operations Application Check async operations: - several starts problem – block UI after start - invalid call order - think twice about “async void” methods - add delays for testing
  11. 11. Resolutions and orientations Application Use simulator to check all resolutions Check from 1024x768 to … Check Snapped / Filled views Windows 8.1: + 500px width size Check popups & settings pane for small resolutions
  12. 12. Application
  13. 13. Device testing Application x86 x64 ARM Especially for C++
  14. 14. Localizability Application Use Multilingual App Toolkit to generate pseudo translations
  15. 15. Accessibility Application Visual: high/contrast, text contrast Keyboard accessibility: onscreen and physical
  16. 16. User experience guidelines Application App bars Flyouts (popups) Navigation Layout Animation
  17. 17. Windows Store features Application JavaScript exception rate Crash rate App unresponsive rate Error reports
  18. 18. Windows 8.1 features – Logging API ApplicationLogging Channel Logging Channel Logging Channel Logging Session Storage file My backend service
  19. 19. 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); }
  20. 20. 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 error StorageFile logFile = await session.SaveToFileAsync(logFolder, name) //upload in background to my backend service
  21. 21. 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();
  22. 22. Third-party logging services Application Bugsense • Limited Free • User analytics • WinJS support • Integration: JIRA, Pivotal Tracker, Github, Hipchat http://www.bugsense.com
  23. 23. Third-party logging services Application Localytics • User analytics • Error logging as events • WinJS support • Full free plan http://www.localytics.com
  24. 24. Third-party logging services Application MarkedUp • User analytics • WinJS support • Full free plan http://www.markedup.com
  25. 25. Third-party logging services Application Wensus • User analytics • Free plan for 1 app • Paid plan: + reviews + performance reports http://www.wensus.com
  26. 26. Q&A

×