WP8 Critical Developer Practices for Delivering Outstanding Apps
description
Transcript of WP8 Critical Developer Practices for Delivering Outstanding Apps
![Page 1: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/1.jpg)
WP8 Critical Developer Practices for Delivering Outstanding AppsStefan WickPrincipal Test ManagerWindows Phone Developer Platform
![Page 2: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/2.jpg)
Crash AnalysisUnit TestingMemory & PerformanceWorld ReadyWP7 WP8 Upgrade
Agenda
![Page 3: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/3.jpg)
App Crash Analysis
![Page 4: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/4.jpg)
Ways to track your crashes:Dev Center crash reports3rd party analytics productsRoll your own “Little Watson”
Common reasons for crashes:WebExceptionOutOfMemoryExceptionFormatException
App Crash Analysis
![Page 5: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/5.jpg)
DevCenter Crash ReportsDemo
![Page 6: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/6.jpg)
Unit Testing
![Page 7: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/7.jpg)
Test Framework now in the ToolkitAvailable for WP7 and WP8Why automated tests?Structured quality controlPrevent regressionsTest more configurations in less time
Build a “suite of pain” for your app
Unit Test Framework
![Page 8: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/8.jpg)
Unit TestingFocus on:• Overview of the framework• Write a new regression test
Demo
![Page 9: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/9.jpg)
Memory & Performance
![Page 10: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/10.jpg)
Make your good app GREATProfile for memory and executionLeverage Store Test Kit
Attend Oren Nachman’s perf talk (WPH312)
Profiling Tools
Memory & Performance
![Page 11: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/11.jpg)
Monitor your apps mem usageMemory caps are enforced!Test with real world dataMonitor your heavy objects
A single UI control leak can cause the entire visual tree to be leaked !
Design with memory in mind!
Memory Considerations
![Page 12: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/12.jpg)
Memory ProfilerFocus on:• Finding and fixing memory
leaks
Demo
![Page 13: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/13.jpg)
Building World Ready Apps
![Page 14: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/14.jpg)
Test for common coding mistakesRun tests on various localesTest with international input
Consider localizing your app contentWP8 & VS 2012 Tools make this easier
Increase reach and rating for your app!
World Ready Apps
![Page 15: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/15.jpg)
World ReadyFocus on:• Globalization testing• Localization development
Demo
![Page 16: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/16.jpg)
Upgrading from WP7 to WP8
![Page 17: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/17.jpg)
WP7 apps run on WP8 as is“quirks mode” shim is enabled
Feature light-upLate-bind to enable WP8 light-up scenarios
Upgrade app version to 8.0Take full advantage of all new features and improvements
Find the upgrade path that is right for your app
Moving from WP7 to WP8
![Page 18: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/18.jpg)
Upgrade guidance on MSDNBreaking changesDifferent screen sizesNew visuals for controls
Retest all code after upgradeInvestment in Unit Tests will pay off
Upgrading the source project to 8.0 disables the app compat shim
Binary vs. Source compat
![Page 19: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/19.jpg)
Different approachesone app project with two configurationstwo app projects with shared librariestwo branches of the same app project
Maintain both 7.1 and 8.0 versions of your app, from shared code
Code Sharing
![Page 20: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/20.jpg)
Upgrading to WP8Focus on:• Upgrade process & breaking
changes• Code sharing
Demo
![Page 21: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/21.jpg)
Crashes are fixedUnit tests for regression controlMemory/performance improvedApp ready for the worldApp ready for Windows Phone 8
Recap
![Page 22: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/22.jpg)
Ratings & Reviews after this talk
Recap
“Works great as advertised. Smooth and reliable. Only thing missing is feature xyz ….”
“Thanks for localizing to my native language”
“It’s even better now on my new Lumia 920”
![Page 23: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/23.jpg)
ResourcesWP8 Performance & OptimizationThu 10:15 – 11:15| 92 Magellan
Windows Phone Toolkithttp://silverlight.codeplex.com
![Page 24: WP8 Critical Developer Practices for Delivering Outstanding Apps](https://reader036.fdocuments.us/reader036/viewer/2022070423/56816697550346895dda7ffc/html5/thumbnails/24.jpg)
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.