ArcGIS Runtime is a family of native SDKs for developing geo-apps for all popular mobile and desktop platforms. With all ArcGIS Runtime SDKs, apps can be created that allow access to maps and data and their further use even with limited or no network connection. Additionally, vector data can be downloaded to the device, edited offline, and later easily synchronized with the database once an internet connection is available.
For offline provisioning of different data types, there are several options and workflows that can be easily combined in ArcGIS Runtime. It should be noted that the SDKs for desktops (.NET/WPF, Java, Qt) can handle some data with the Local Server technology that is not possible in the other SDKs.
Basically, we can distinguish three options:
- Processing data in ArcGIS Desktop in the form of ArcGIS Runtime Content or various types of Packages and subsequent deployment via side-loading or file download.
- Integrating "original data" as it is, e.g., GeoTiffs, KML, Shapes, etc.
- Exporting data from services with ArcGIS Runtime itself, at app runtime, for example in Collector for ArcGIS (based on ArcGIS Runtime technology)
Of course, developers can piece together maps client-side layer by layer. This means some extra effort. To actually take a complete map with all data offline at once and use it, until version 100.0 of ArcGIS Runtime there were only two options – as preprocessed Mobile Map Package (.mmpk) and as Map Package (.mpk) in combination with the Local Server. Both count as option 1 in the list above. With ArcGIS Runtime version 100.1, there is now the new OfflineMapTask, which allows exporting a complete map within the app at runtime (option 3).
The new OfflineMapTask in ArcGIS Runtime v100.1
The prerequisite for the OfflineMapTask is a WebMap, which has been configured for offline use. A WebMap is a description of the map in text format (JSON) with information about data sources, symbology, and things like initial extent, design of pop-ups, etc. All ArcGIS apps and developer tools can read WebMaps and build the map accordingly. They are thus the whole secret why maps look consistently identical regardless of which ArcGIS clients are used. WebMaps are stored as portal items in ArcGIS Online or ArcGIS Enterprise, and they have an ID. Exactly this ID is also needed for the OfflineMapTask to take the map offline in ArcGIS Runtime.

The step-by-step implementation of an OfflineMapTask is described in the respective documentation of the various ArcGIS Runtime SDKs, here for example for .NET. Additionally, there are samples on GitHub to try it out, here e.g., also for .NET. Therefore, it is not necessary to break down the procedure again in this blog.
What is interesting again is the format in which the map is stored on the device by the OfflineMapTask:
The documentation states that the data is stored locally as a Mobile Map Package. A Mobile Map Package as we know it so far is a packed file with the extension .mmpk. I actually expected this after the first test.
However, a folder with .mmpk (Mobile Map Package) in its name is created, see image. The structure underneath strongly resembles that of an unpacked MMPK (all packages are zipped). Under this folder there is the description/configuration of the map (mobile_map.mmap), a SQLite database (.geodatabase) with vector data and also tile packages (.tpk) of basemaps. As a reminder, tile packages have not been allowed so far in existing packed MMPK format.
Furthermore, the resulting Mobile Map Package folder can only be used in ArcGIS Runtime (via MobileMapPackage-class) and not like zipped MMPKs also in ArcGIS Desktop.
I personally suspect that we are already dealing here with a further development that was also mentioned on various roadmaps at the Developer Summit in Palm Springs: Mobile Map Packages should ultimately be managed locally in ArcGIS Runtime, contain all content of ArcGIS Runtime Contents, allow editing of vector data within the package and be usable as an exchange format between ArcGIS Runtime and ArcGIS Desktop. Exactly the right way I would say.