Packaging app content using Locomote.sh

One of the major benefits of using Locomote.sh to manage app assets is that files can be packaged with the app and then remotely updated later, after the app has been published. Locomote also allows an app to be published with just a subset of its assets and have the remaining assets downloaded after the app is installed. For some apps, this can greatly reduce the size of the app installable, and means that app maintenance releases (i.e. bug fixes) can be performed without imposing large and unnecessary download sizes on users who already have the app installed.

Download tool

Locomote.sh provides an asset download tool that an be used to connect to a Locomote content repository and download a copy of the file database and associated asset files. These can then be bundled with the app executable and distributed to users. Once the app is installed, the Locomote SDK will check with the Locomote server for updates to the content repository and automatically download and updates.

The download tool can be instructed to only download a subset of visible files by passing it a list of file names or patterns specifying the files to include in the download. This can be useful when the content repository is particularly large, and including all contents in the app bundle would result in a very large app download size. Instead, the app can be packaged with just a small set of files which are needed for the app's opening screens. Once the app is installed, it will connect to the server and download the remaining asset files not packaged with the app. The main benefit of this approach is seen when releasing subsequent app versions. Because existing app users have already downloaded the full asset bundle, they are not forced to do so again by installing the new release - they only download asset files packaged with the new release.

Display sizes

Because all asset downloads take into account the display characteristics of the device the client app is running on, the app will only download image assets at sizes appropriate to the device.