Building Bespoke Mobile Software

As mobile apps have taken off in consumer applications, it’s become more difficult to build an application for a customer to use in-house. Many new platforms have launched without an easy way for an in-house developer to release bespoke software to their customer, and tracking the start of the art can take time. Here’s an overview of the current options:

iPhone / iPad

The devices are certainly popular. iOS is what everybody wants, and Apple now offer two methods for an in-house app: enterprise distribution, and the Volume Purchase Program. As the Volume Purchase Program is only available in the US, I’ll skip over it.

The iOS Enterprise program requires our customer to join the developer program, and then sign the app with their own key. This puts extra workload on to the customer, though it can at least be outsourced to a corporate app store such as Appaloosa. There’s no requirement to submit the app to Apple, so bug fixes can at least be pushed out quickly.

Popularity: 5/5 Waterproofing: 0/5 Developer Ease: 4/5 Customer Ease: 3/5


Apart from a few locked down devices, Android is the closest to the freedom of desktop operating systems. No bureaucracy required, good development tools, and a wide range of hardware. Some of the hardware is even waterproof. If you’re deploying to a large enough number of devices, then a corporate app store may help, but there’s nothing stopping you from simply placing the file on an internal web server.

Popularity: 4/5 Waterproofing: 4/5 Developer Ease: 5/5 Customer Ease: 5/5

Windows Embedded Handheld 6.5

Windows Embedded Handheld allows us to develop applications using .NET, and an administrator can place them on the device with no requirement for approvals. A few years ago, this was the default, with good tools and rugged, waterproof devices available. Unfortunately, the OS and the available hardware are showing their age, and Microsoft don’t give much confidence about the roadmap.

To add insult to injury, the development tools require Visual Studio 2005 or 2008 Professional, and Visual Studio 2010 Professional does not come with downgrade rights. This makes the entry fee for development very high.

Popularity: 0/5 Waterproofing: 5/5 Developer Ease: 3/5 Customer Ease: 4/5

Windows Phone 7

The initial release of Windows Phone 7 required all applications to be distributed through the public Marketplace, but Microsoft now support Targeted Application Distribution. Apps distributed through this method still require certification, but do not appear in public searches. The app is available to anyone with the private URL. Provided that the app connects to an authenticated service, this is a minor problem.

This leaves us to jump through the certification hoop and may delay release of bug-fixes, but it puts little workload on our customer.

Popularity: 2/5 Waterproofing: 1/5 Developer Ease: 4/5 Customer Ease: 5/5

Windows 8 Tablet

This isn’t here yet, and signs are mixed. For Metro apps on PCs, administrators should be able to manage app installation:

In addition, enterprises can choose to deploy Metro style apps directly to PCs, without going through the Store infrastructure. For Windows 8 Beta, IT administrators can use group policy to permit Metro style app installations, as long as the apps are signed by trusted publishers and the machines are joined to the domain

For Windows 8 tablets, we don’t know yet. We know the consumer position:

Consumers obtain all software, including device drivers, through the Windows Store and Microsoft Update or Windows Update.

Steven Sinofsky’s use of the word consumer may be significant.


While Blackberry is neither trendy nor waterproof, it is a straightforward platform for deployment of corporate software.

Popularity: 3/5 Waterproofing: 1/5 Developer Ease: 4/5 Customer Ease: 4/5

Mobile Proxy Servers

Many mobile data services implement a forced cache on access to port 80. These caches often have the unfortunate assumption that the access comes from a web browser, and that a human being will look at the page. Vodafone completely reformats page content, while T-Mobile simply recompresses images at a lower quality. For a human user, this can be a nuisance. For an embedded application, content transformation can be far more serious.

There are several workarounds possible:

  • Use SSL. This completely avoids the problem, at the cost of extra data transfer and a longer setup time.
  • Arrange with your mobile data provider to turn off content transformation for your SIMs, or for accesses to your server. It can take a long time to find the right person to arrange this, and the process has to be repeated for every network you use in every country.
  • Add a Cache-Control header to your http requests, and set a meaningful User-Agent header.

Read more

SSL Handshake Overhead for Mobile Devices

If you’re designing an application where devices communicate with a server over a mobile network, there are trade-offs between implementation effort and data transfer. This may not apply to a consumer application, where the application developer doesn’t have to pay the data charges. But if the application is M2M these trade-offs matter.

Read more