This page provides details about enhancements in the 200.1 release of ArcGIS Maps SDK for Kotlin. It also lists deprecations, resolved issues, known issues, and more.
Enhancements
Geometry
Feature tiling enhancements
Version 200.1 introduces a new feature tiling mode, Feature . This provides an opt-in experience for developers to request high resolution geometries from a service. To opt-in, developers can set the feature tiling mode using the LoadSettings property on the GeoModel or on the individual layer.
This mode requires the service to support edit quantization mode (supports), which returns all vertices of the source geometry in a high resolution. Use this mode for workflows that benefit from precise geometry editing, such as snapping feature geometries without loading the feature.
New GeometryEditor class
A new GeometryEditor class provides a simple way to create or edit geometries interactively in a map view. It supports a wide array of use cases, from creating quick notes on a map to allowing feature geometry editing workflows. The interactive use of GeometryEditor is complemented by its support for programmatic creation and editing methods, providing a powerful way to guide and supplement the built-in UX workflows. The appearance of the edited geometry can be customized using the range of symbology available in the API. It is the foundation for additional geometry editing capabilities that will roll out in future releases.
The GeometryEditor is built from the ground up as the successor to Sketch in the ArcGIS Runtime SDK for Android. It introduces a new vertex and edge selection methodology, along with finer-grained control over editing. It is the foundation for additional geometry editing capabilities that will roll out in future releases.
Scenes (3D)
Edge rendering
With this release, visualization of edges on 3D Object Scene Layers is available for iOS and Mac Catalyst apps built with ArcGIS Maps SDK for .NET or ArcGIS Maps SDK for Swift. Support for visualization of edges was first introduced in the Native Maps SDKs at version 200.0 but was only available for apps deployed to Android, Linux, macOS, and Windows operating systems.
Performance improvements
The performance of the scene view control when there is no user interaction has been improved by approximately 20 percent. This results in lower CPU consumption when the scene view is inactive and a corresponding reduction in battery usage for mobile devices.
The scene layer data loading pattern for desktop platforms has been optimized to prioritize loading content in the foreground while continuing to load coarser levels of detail (LoDs) in the background. This results in a significant reduction in the initial time it takes to render a scene layer.
Utility network
Expanded support for offline traces
This release includes expanded support for tracing while disconnected from a utility network service. Water and gas utility networks can now use the isolation trace type and subnetwork-based traces (subnetwork, upstream, and downstream traces) on hierarchical networks. Aggregated geometry results are also supported while tracing offline, providing a more efficient way to visualize trace results in a map view or scene view.
Nearest neighbor filter
When tracing while connected to a feature service, the results of a nearest neighbor filter can also be accessed, allowing an app to determine if all of the requested neighbors were found.
More trace configuration options
Three new trace configuration options are supported when tracing in either connected or disconnected environments:
- 
UtilityTraceConfiguration.allowIndeterminateFlow
- 
UtilityTraceConfiguration.includeUpToFirstSpatialContainer
- 
UtilityTraceConfiguration.validateLocatability
Add trace conditions using categories
A new constructor for the Utility class makes it even easier to add trace conditions using utility network categories.
Examine network rules
Version 200.1 supports querying and inspecting utility network rules using the new UtilityNetworkDefinition.getRules() method. Rules define what combinations of Utilitys and Utilitys can connect to, attach to, or contain other asset types and terminals, increasing the data integrity within the utility network.
Improved support for offline utility networks
The 200.1 release of the ArcGIS Maps SDKs for Native Apps now supports tracing of utility networks taken offline from an ArcGIS Enterprise 11.1 feature service when the recommended patches are installed to the Enterprise server. For more information, see the offline utility networks in ArcGIS Maps SDKs for Native Apps blog article.
Indoors
Floor awareness map support
According to the ArcGIS Indoors Information Model, floor-aware maps and scenes require a LEVEL for floor information. With this release of ArcGIS Maps SDKs for Native Apps, an IndoorsLocationDataSource outputs a LEVEL value in addition to VERTICAL, allowing developers to directly use the Indoor output as an input to floor aware maps and scenes. To take advantage of this enhancement, the URL of the LEVEL table needs to be provided to the Indoors, without which only VERTICAL will be output.
See ArcGIS Indoors Information Model in the ArcGIS Pro documentation for more information.
Enhanced path snapping
The path snapping algorithm in the Indoor is improved in this release. The snapped position is now more accurate and more consistent with less jumping between adjacent pathways.
Labels
Labeling properties manual
A new guide topic helps map authors understand how ArcGIS Pro labeling properties are translated into ArcGIS Maps SDKs for Native Apps labeling properties.
Line orientation property for label definitions
A LabelDefinition.lineOrientation property has been added to allow users to modify the placement of line labels to the Left or Right of the digitized line feature, rather than Above or Below the line feature.
Breaking API changes
- Some API names, default arguments, and nullability have been modified to follow Kotlin guidelines
- Use of kotlinx.datetime.in the API is replaced withInstant java.time.Instant 
- Some immutable list properties are modified to be Statein order to observe changes to the property (for example,Flow <List > Preplanned)Map Area.package Items 
- The Oconstructor parameter types have changed:Auth User Configuration - cultureis now of type- Locale
- refreshis now of type- Token - Expiration - Interval - Refreshand has a default value of- Token - Expiration - Interval - Refresh- Token - Expiration - Interval. - Default 
- refreshis now of type- Token - Exchange - Interval - Refreshand has a default value of- Token - Exchange - Interval - Refresh- Token - Exchange - Interval. - Never 
- federatedis now- Token - Expiration - Interval - nullableand has a default value of- null(meaning the default interval will be used)
 
- Some classes that cannot be extended are marked as sealed. Constructors for these classes are replaced by factory methods to create them (for example: Display)Filter.create With Name And Where Clause(name : String, where Clause : String) 
- Constructors that take Bitmapparameters are now non-suspending factory functions (for example:Drawable Picture)Fill Symbol.create With Image(image : Bitmap Drawable) 
- Synchronous methods that throw exceptions are annotated with throwsannotation in the API reference documentation (for example:Feature)Table.create Feature() 
- Synchronous methods that return nullin lieu of an exception have been renamed accordingly (for example:Geometry)Engine.project Or Null( Geometry, Spatial Reference) 
Behavior changes
- GeometryEngine.nearestCoordinateGeodetic()does not support curve geometries. This method may produce incorrect results in previous releases when using geometry with true curves. This behavior is corrected in this release and the method now throws an- ArcGISif the geometry parameter contains true curves. This behavior matches other- Runtime - Exception - Geometrymethods that do not support true curves. Support for using true curves with this method may be added in a future release.- Engine 
- Read-only feature layers now have feature tiling enabled by default when the service supports it.
- Navigating a route using the route tracker when working with ArcGIS location services is now available with a Lite License. It also requires that you set the API Key with an access token that has the Routingprivilege,
Deprecations
API deprecations
- Support for rendering 3D scenes on Android with OpenGL ES 3.0 and 3.1 is deprecated. The last release to support these versions is version 200.1. A minimum of OpenGL ES 3.2 will be required at the next release for rendering 3D scenes on Android.
OS and framework deprecations
- Support for macOS Big Sur 11 is deprecated. The last release to support macOS Big Sur 11 is version 200.1. A minimum of macOS Monterey 12 will be required at the next release.
Issues resolved
Issues addressed in this release are listed below.
- The 3rd-party Libtiff library has been upgraded to 4.5.0.
- BUG-000153386 Fixed an issue where Subtypes weren't honoring a map's reference scale.Feature Layer 
- BUG-000153429: Label fails to display correctly in a Union multipart feature.
- BUG-000154742: Landscape image service fails to load with parsing error.
- BUG-000154811: Feature link annotation with a vertical display of labels stored in a mobile geodatabase is showing inconsistent behavior in ArcGIS Maps SDK for .NET.
- BUG-000155484 Fixed an issue loading Subtypes when a feature service has label definitions.Feature Layer 
- ENH-000099317/ENH-000099318: WMTS layers with dimensional data are now supported. The default dimension value is used if provided by the service. Otherwise, the first value listed is used.
- Question on Esri Community Offline packages with non-ASCII characters in the path cannot be opened and read.
Known issues
- 
BUG-000171919: Creating offline replica with a full utility network incorrectly requires that all layers from the feature service are included. 
- 
BUG-000171920: The OfflineMapTaskcan fail to create an offline replica when including a utility network.
Known issues or limitations for this release are listed below.
- Streamed Data (Dynamic Entities API) is not supported
- SDK view components such as Callout, andMagnifierare not supported
- Single pointer double-tap followed by vertical drag on 3D scenes is not supported
- Defaultis not supported- Authentication - Challenge - Handler 
- Augmented Reality and other open source toolkit UI components are not supported
- A utility network that is configured with the "only include simple features" option cannot be loaded from an ahead-of-time offline map. To create a map with a loadable utility network use one of the other two offline utility network options.
Obfuscate and optimize your app
To obfuscate and optimize your app, set minify to true in the build.gradle of your app module. If you are using Android Gradle Plugin v8.0.0 and above, you must also add the following details to your app's proguard rules:
# JSR 305 annotations are for embedding nullability information.
-dontwarn javax.annotation.**
# A resource is loaded with a relative path so the package of this class must be preserved.
-adaptresourcefilenames okhttp3/internal/publicsuffix/PublicSuffixDatabase.gz
# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java.
-dontwarn org.codehaus.mojo.animal_sniffer.*
# OkHttp platform used only on JVM and when Conscrypt and other security providers are available.
-dontwarn okhttp3.internal.platform.**
-dontwarn org.conscrypt.**
-dontwarn org.bouncycastle.**
-dontwarn org.openjsse.**Add these lines to the proguard-rules.pro file at the module level of your app project. In our tutorials, for example, that file would be proguard-rules.pro in the app directory.
Changes in samples
New samples
Maps and Scenes
- Display Composable MapView
- Display scene
- Set max extent
- Set up location-driven geotriggers
- Show device location using indoor positioning
- Show location history
- Sketch on map
Edit and Manage Data
- Add features with contingent values
- Create mobile geodatabase
- Edit feature attachments
- Generate geodatabase replica from feature service
- Generate offline map using Android Jetpack WorkManager
- Project geometry
Visualizations
Layers
Analysis
MapViews, SceneViews, and UI
Routing and Logistics
Search and Query
Utility Networks
Cloud and Portal
Enhancements
- Added reset button to Clip geometry and Cut Geometry.
- Updated Logtag to use the local class name.
- Added support for dark/light mode for all Kotlin samples.
Related topics
- System requirements for 200.1
- Install and set up
- Display a map (tutorial)
- Product Life Cycle (Esri Support Site)