The offline client is called “Mops”, it is a demo project for the german railways.
Some problems with the normally used paper maps:
They’re quickly not up-to-date anymore.
The big size is a problem when walking around outside.
The information density is low.
Regarding apps: there are no generic solutions for offline map apps.
What they tried was an individual custom solution. Some of the features:
Dynamic selection via the current location.
Usability/look-and-feel should be good.
To build the app, you need to select the area you want to use from your database, select extra layers, you need to style it and then the app needs to be deployed.
Technically, they used GeoPackage as the exchange/container format.
You can use it offline.
Spatial queries are possible.
Raster data is pre-rendered as tiles. (“mbtiles”)
And… it has very good compatibility.
There are still more possibilities. Reading QR codes. Using the compass. Using other sensors. Entering/adjusting data.
A note on leaflet: it works better on mobile phones than openlayers does. Especially when rendering features.
My name is Reinout van Rees and I work a lot with Python (programming language) and Django (website framework). I live in The Netherlands and I'm happily married to Annie van Rees-Kooiman.
Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):