Here’s the situation: You’re in a place with no bandwidth or limited bandwidth. It’s just the place that you need to download an app, because the good apps, at least, can do more things locally and not make as much use of the network. But you can’t get to the app store. The archetype of this situation is being on a plane with wifi and video offerings over the wifi. You get on board and you connect and it says you needed to download the app before you took off and got disconnected.
There’s an obvious answer. The app stores should allow segments of themselves to be cached offline. This means that the app market app (such as iTunes or Google Play) should allow you to use a cached version of the store, as long as everything is signed and not too old. Then the plane’s server could keep copies of things like the airline app or video playing app in the cache, along with games and entertainment they want to make available to you. Mostly free stuff, though you could also allow payment with cached transactions (with a bit of trust) if need be.
Same experience for the user. They could go to the app store, search for and find the airline app, and download and install it, all without a network connection. Only if they tried to get a non-cached app would they get told they were offline.
As I wander the world, I get reminded all the time how we get a bit spoiled in our land of fast wifi and LTE phone data. You even get to understand why Google started de-ranking pages that don’t support mobile well in their mobile search results. Even as we move to having internet from drones, balloons or satellites everywhere we go, until we have gigabits everywhere, we need to design for lower connectivity environments.
Of course, the airlines could, on Android, offer you an APK file that you can manually install, but you have to check boxes and take security risks to do so, because the certification systems are centralized.