IOS ArCGIS Runtime 100.0.0 Doubts on Map Pinch Event and Regarding Universal App Size

1205
1
08-02-2017 12:09 AM
sumitjha2
New Contributor

Hi,

We are  developing an ios universal app using Arcgis Run time for IOS 100.0.0. We are facing a bug in  viewpointChangedHandler delegate function in API.

We have  functionality that whenever map view extent changes we have to query map and display results as soon as as map view stops navigating.For that we are using apps isNavigating function.But Sometimes during Pinch-in and pinch-out this method is not called by  viewpointChangedHandler otherwise getting calledduring pan movements and zoom-in and zoom out is getting called.So we are facing consistency issues on Pinch-in and pinch-out .

Please specify any workaround for that.

Since,we are developing an ios universal app(single app that supports both iphone and ipad) using Arcgis  runtime for ios 100.0, the ipa size which we are getting is too much around 250 mb for universal IPA .

This size is too much as compared to earlier Arcgis runtimes for ios. Please specify what possible measures we can take to reduce app size , Also same behaviour is observed as per size with arcgis 100 samples for ios ver 100.0.

We have done r&d and found out i-tunes does app-thining i.e reduces app size as per device which tries to download app from i-tunes,so will Arcgis 100 for ios  will also support same when app is distributed through i-tunes.

Please specify reasons for below queries and specify any improvement steps we can take .

1.IOS  Arcgis Runtime viewpointChangedHandler delegate not calling isNavigating method in case of map pinch-in and pinch-out, otherwise getting called in pan and zoom in and zoom out.Any Workaround for that.

2.Reducing IOS Universal App size of .IPA file and why size is so much when project source code is just under 10mb.

3.Steps need to perform IPA app-thining process if ipa is not distributed through i-tunes.

4.How much size we will get for different ipa files as per device type if app is placed on i-tunes.

5. Arcgis Runtime 100 for IOS ,how much it supports for IOS version in between 9.0 to 10.0.

Please let us know solutions for below queries.

Regards, 

Sumit

1 Reply
MarkDostal
Esri Contributor

Thank you for your questions!  Regarding the viewpointChangedHandler, the best way to be notified when map navigation starts and stops is through KVO on the "navigating" property of AGSMapView.  You can use the viewpointChangedHandler, but that will get called multiple times during a map navigation animation.  To know when the navigation stops, use KVO:

// create a private context for KVO (outside he class implementation)

private var myContext = 0

// add an observer for the mapView.navigating property:

mapView.addObserver(self, forKeyPath: "navigating", options: .new, context: &myContext)

...

// "observe" the navigation value.  This will get called whenever the map starts/stops navigating

    override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {

        if context == &myContext {

            if keyPath == "navigating" {

                print("navigation: \(mapView.isNavigating ? "Started" : "Stopped")")

            }

        } else {

            super.observeValue(forKeyPath: keyPath, of: object, change: change, context: context)

        }

    }

As for your app size question, there are a few reasons why the SDK is much bigger at v100.0 than at 10.2.5.  Part of the reason is that there is just more code, which results in a larger SDK.  The main reason, however, is that we've enabled "bitcode" when compiling/building the SDK.  This results in a 3-4x larger size for the SDK.  That size increase will eventually get trimmed out when downloading from the App Store.

You can take a look at this Apple Documentation, which contains information on how to get files sizes for thinned apps.

Exporting Your App for Testing (iOS, tvOS, watchOS) 

And finally, we fully support iOS versions 9.x and 10.x.

Mark