One area we’ve been trying to improve upon with the MapBox for iPad app is the app’s size. While we currently have the benefit of shipping an entire offline-capable world map in the app itself, we are weighing in at over 160MB, which is rather large for a mobile app.
Given that our TileStream Hosting service is MBTiles-driven, and that you can use TileStream’s tiles in MapBox for iPad over the network, the next logical step is to allow you to download MBTiles documents from TileStream — or any place else, for that matter — and put them right onto your iPad for offline use. This will allow us to ship a smaller app — one that has online-only access to map tiles initially but allows you to download tiles for offline use whenever you like. So I’m working on just that.
With the download feature, you will be able to pause, resume, view progress on, and cancel downloads, which continue in the background while you are working on other things, at any time. They will still work when the app is not frontmost, as well as when you restart your iPad and have partial downloads that have not yet completed. I’m hoping to make this fast and light, while impacting the rest of the iOS experience as little as possible.
But how do you begin a download? We’ve been thinking about this too, and have landed on the idea of custom URL schemes. For example, if you had a regular web link to an MBTiles file:
You could use our new custom URL scheme to pass the link directly to the iPad app:
When this link is followed from anywhere on the iPad, MapBox for iPad will launch, figure out the original URL, and begin downloading immediately. This will allow for tight integration with TileStream, open data sites (like Afghanistan Election Data), and other applications on the system.
Reducing the initial app download size in this way, combined with the upcoming iOS 5’s PC-free iPads, will allow users worldwide to take an iPad, set it up, get our app, and deploy it, all quickly and with just a minimum amount of upfront time and energy. Downloads will then allow users of the app to customize it exactly as they need, never needing to sync to — or even own — a paired computer.
Stay tuned, we’re hard at work on this new feature and will post more updates as it progresses.