Windows Phone 8.1 for Developers–App packaging with appx

This blog post is part of a series about how Windows Phone 8.1 affects developers. This blog post talks about how phone uses the new package model and is written by Andreas Hammar at Jayway and was originally posted here.

App packaging with appx

When it comes to packaging and distribution of apps - Xap is out, Appx is in. Appx is the package model used by the Windows Store and offers some additional features over xap.

 

Appx generation

To generate an appx package for your app, you invoke the Store menu, and choose to create application package.

image

You then get to choose what platform and configuration you want to build – and also whether to create an app bundle or not, more on that later.

image

This process generates one binary appxupload file per configuration, and a folder postfixed Test that contains the appx and other files, for deployment testing before upload to the Store.

image

And looking inside one of the Test folders, we find the actual appx file, together with a binary appxsym file:

image

 

Appx overview

An appx contains the entire app, it is actually just a zip file with a different extension. Looking inside the actual appx file, and the Assets folder, we find all the files for the app:

imageimage

Noteworthy here is:

App.xbf                 With the XAML stack from Windows comes the Xaml Binary Format, pre-compiled Xaml – a big performance win, especially on app startup

.scale-240.png     Apparently the app ships with scaling level 240 – on Windows we have 100, 140 and 180.

 

Bundles

App bundles allow the resources of an app to be partitioned based on three parameters:

  • Localization
  • Scaling
  • DirectX feature level

When creating a bundle, you enable the Windows Phone Store to only download the resources needed for that specific device.

To demonstrate this I’ve added some resource files to the project, both a different scaling level and two more languages (en-us Is the default).

image

You choose to create a bundle on the package creation page:

image

And the resulting package files are instead just one big bundle.

image

image

Looking inside the appx for the bundle we find one appx per non-default resource-partition.

image

 

BUILD 2014: App Packaging and Deployment for Windows Devices

Packaging, deployment, and query of Windows Store apps

App packaging

Games with resource packages sample

Package your Windows Store DirectX game