Re-targeting Windows 8 apps to Windows 8.1

October 21, 2013

Windows 8.1 is latest version of Microsoft’s operating system which brings many improvements over Windows 8 released year ago. Windows 8.1 brings updates to the end user experience, support for new types of devices, improves performance and new features which were not available before.

Why re-target?

While Windows 8 apps works on Windows 8.1, the upgraded apps will enjoy better performance even without code changes. In most cases recompiled app will see improvements in startup time (5-30% percent when app uses ListView on the main view), faster panning (up to two times for long lists), lower memory usage (10-20% lower memory consumed by XAML) and HTML editing improvements (15-35% while editing ListView in WinJS-based app). In addition, upgraded apps can take advantage of new features and improved APIs.

So what are the new features which makes the upgrade process worth the time? First, and most “visible” to end-user feature is new tile sizes. Windows 8.1 adds two additional tile sizes (Large Square and Small Square) and enables app to surface more information through new tile templates added to support new tile sizes.

clip_image002

Next big improvement is related to the search experience. New search is powered by Bing and gives you results from your PC, your apps, and the web. Results shown in a clean, graphic view that lets you do things and launch apps right away.

clip_image008

Additional big step toward productivity is multiple apps support. Depending on the screen resolution, end user can have up to four apps on a screen at a time. Windows 8.1 enables the scenarios such as scheduling meetings on calendar while responding to email and take notes in the desktop.

clip_image010

Lastly, Windows 8.1 introduces new XAML controls which helps with AppBar standardization, providing Date/Time picker controls and in-app search experience through SearchBox control.

clip_image011

By now hope you convinced that it worth spending time in re-target the app and support new Windows 8.1 features.

How to re-target?

First let’s define what a Windows 8 app upgrading process is. Upgrading Windows 8 app to Windows 8.1 is about taking advantage of new Windows 8.1 features to build a better app.

clip_image013

Retarget the App

Visual Studio 2013 provides a wizard which helps retarget solution by fixing references and compilation targets to Windows 8.1.

clip_image015

The process is one-way road, so make sure to make a copy of Windows 8 app. Once re-target complete compile new Windows 8.1 app and note all breaking changes and deprecation API warnings.

clip_image017

Some breaking changes might be related to 3rd party SDKs used in original Windows 8 app. It is up to developer to check for updated version of 3rd party SDKs or replacement SDKs.

Deprecated APIs

The deprecation warnings will not break the compilation (and in most cases will work in upgraded Windows 8.1 app) but developer should consider of changing them with new APIs.

clip_image019

Some APIs which must be considered are:

· Tiles

· AppBar

· ApplicationView

· Flyouts

Some of those features were usually implemented in Windows 8 either as app-specific code or using 3rd party components which might not be available for Windows 8.1. In other cases (such as ApplicationView warnings) the Windows 8.1 introduced features which helps to improved end-user productivity and should be fixed.

Once app compiles without deprecation warnings and runs on Windows 8.1, develop must check the app functionality as some APIs were changed in terms of behavior. This called “quirks” mode – in some cases, while the API signature remain the same the behavior changed and might introduce functional or UI bugs under Windows 8.1.

New Features

Next, it is a time to take advantage of new Windows 8.1. Short list of new features which usually makes sense for many updated apps is:

· New tile sizes – improves the app “visibility” on the Windows main screen and helps surface information to the end user even the app is not actively executed.

· AppBar controls and CommandBar – standardizes the AppBar experience across Windows 8.1 apps, simplifies developer work and enables using standard icons which user is familiar from another apps.

· Flyouts – standardizes the end user experience and reduces development time by reusing exiting controls instead of creating own (often no-standard) UI and behavior.

· “Text” improvements – many “small” additions to XAML controls which helps developer to show header above some (usually input) controls, placeholder text for input controls which helps the end user to understand what is expected in specific field, etc.

· SearchBox – new UI feature which greatly improves the end user experience by adding search into the app (instead of having search experience presented on charm).

· Hub – new navigation pattern which highlights key-item while still presenting groups of items in the app.

· Speech synthesis, People and Appointments, etc. – many features which helps to improve the end user experience and create more integrated apps with Windows 8.1 services.

Once the app is ready, it could be submitted to the Store as Windows 8.1 version of existing app.

clip_image021

It is supported by the Store dashboard automatically and two platform-specific packages will be submitted to the certification as one app. Once certified, Windows 8.1 app version will be available to users running Windows 8.1 and Windows 8 app will be surfaced to users running Windows 8.

Conclusion

Updating the Windows 8.1 app is manual process which makes existing app better. It helps improving app performance by using updated Windows 8.1 APIs and is required step to take advantage of new Windows 8.1 features.

For more info about new Windows 8.1 features refer to the documentation: http://bit.ly/1cqwtCU

For more info about new retargeting Windows 8 app to Windows 8.1 refer to the documentation: http://bit.ly/15hTp7A

 

Enjoy,

Alex

Add comment
facebook linkedin twitter email

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*