User Contributions have Improved the World Topographic Map

BoulderCO_Featured

The ArcGIS Content Team has improved the Community Basemaps by incorporating both new and updated content to the ArcGIS Living Atlas of the World. Thanks to the user community, the World Topographic Map was refreshed with 4 new contributors and 7 updates for cities and counties throughout the … Continue reading

Posted in ArcGIS Online, Community Maps, Mapping | Tagged , , , , , , | Leave a comment

Make your organization home discoverable

resilience-org

If you have a publicly accessible organization home, you can make it easy to discover via ArcGIS Online by registering it as an item. While anyone can share an organization’s home page, this is a good task for the organization … Continue reading

Posted in ArcGIS Online | Tagged , , | Leave a comment

Esri Supports S-63 ENC Cells

Did you know that Esri supports S-63 ENC cells? S-63 is an International Hydrographic Organization (IHO) standard that details how electronic navigational charts, or ENCs, are encrypted, secured, and compressed. The IHO granted Esri Original Equipment Manufacturers (OEM) status in 2014 to support the decryption of S-63 ENC cells with Esri technology.  This status allows users to display the rich, authoritative data stored within the ENC cells throughout the ArcGIS platform. Continue reading

Posted in Mapping, Oceans & Maritime | Tagged , , , , | Leave a comment

Data Visualization with ArcGIS API for JavaScript

In the past year, we added some powerful, innovative, easy-to-use graphic drawing functionality in the ArcGIS API for JavaScript. Along with existing capabilities of the API, now you can easily create effective data visualizations on the map with a few lines of code. In this blog series, we will walk through various visualization capabilities in the API, and learn how you can utilize them to visualize your data.
Continue reading

Posted in App Developers, Developer, Mapping | Tagged , , | Leave a comment

Ready-to-Use Content Included with Your Online Subscription

elev_thumb

One of the many useful features of your ArcGIS Online subscription is that it includes a rich and valuable set of ready-to-use content. This content includes maps, layers, and other geoservices, such as geocoding and routing, that are built into … Continue reading

Posted in ArcGIS Online, Community Maps, Imagery | Tagged , , , , , , , , , | Leave a comment

ArcGIS for Telecommunications August 2014 Updates

Last week the ArcGIS for Telecommunications site was updated.  This August release included an enhancement to the Antenna Structures Information Model as well as two NEW solution templates.  ArcGIS for Telecommunications is a series of free and easy to deploy solution templates, web maps, and apps for adding telecom specific configurations to the ArcGIS platform.  Listed below is the update to the Antenna Structures Information Model and information on the two new solution templates, Serviceability Lookup App and Service Request GeoForm.

Continue reading

Posted in Apps, Telecommunications, Uncategorized | Tagged , , , | Leave a comment

ArcGIS for Server Security Patch (10.1 SP1 QIP, 10.2.1, 10.2.2)

secpatch

Esri has released a security patch to address vulnerabilities found in ArcGIS for Server. Esri recommends that this patch be applied immediately. Service packs must be applied first before the patch Vulnerability Details:   NIM102197 – ArcGIS for Server allows unauthorized access to some resources from secured services - (CWE-285) Some resources … Continue reading

Posted in Security | Tagged , , | 11 Comments

ArcGIS Web Adaptor for IIS Security Patch (10.1 SP1, 10.2.1, 10.2.2)

secpatch

Esri has released a security patch to address serious vulnerabilities in the web adaptor for IIS and the patch should be applied immediately. The Web Adaptor for the Java platform is unaffected by these vulnerabilities. Vulnerability Details:  NIM102891 – ArcGIS Web Adaptor on IIS does not enforce authorization on … Continue reading

Posted in Security | Tagged , , | 1 Comment

Creating a Presentation with Live Feeds

LiveFeedsCreatePresentation

In this blog post we want to cover two new features of ArcGIS Online that go great together, presentation mode and live feeds.  With the July release, you can now create presentations with your web maps.  This is great way … Continue reading

Posted in ArcGIS Online, Public Safety | Tagged , , , , , , | Leave a comment

ArcGIS Runtime and Xamarin

Over the last year there have been a number of requests from developers for information regarding Xamarin technology in relation to the ArcGIS Runtime.

Xamarin is attractive to many of our developers because it allows them to leverage their existing Microsoft .NET development skills when building Android, iOS, Mac, Windows and Windows Phone apps.

What is Xamarin?

Xamarin is an evolution of the Mono project, which is a cross platform open source .NET development framework.

When Microsoft created the .NET technology they did two things; they defined a specification and then implemented that specification for the Windows Operating System. The specification they defined and subsequently published was in fact composed of several specifications. Microsoft implemented these and released them to the world as the Microsoft .NET Framework. Microsoft, Intel and Hewlett Packard then worked to standardize the specifications.   This was achieved in 2003.

Xamarin Implementation

The situation with User Interface components is more complex.   Xamarin Forms, released in May 2014, is a technology similar to Microsoft’s XAML to allow developers to capture a form layout within a visual designer.  Xamarin will bind these UI components of the layout to native UI widgets appropriate for the platform the UI is executing on.   Since the various platforms that Xamarin supports have very different UI capabilities, only a subset of UI controls are supported by Xamarin Forms. Xamarin Forms can coexist with native UI controls which are also accessible through Xamarin, although when using the native controls the UI code is not portable between platforms.

3rd party components that extend the capabilities of the operating system, for example the ArcGIS Runtime, can expose their capabilities to Xamarin by creating Xamarin bindings.  These bindings allow the Xamarin runtime to be extended so that developers can work with the capabilities of the 3rd party library using C# as if they were coding against the 3rd party library using the native language.

Using Xamarin binding technology it is possible (through the effort of generating the bindings) to access 3rd party libraries and OS APIs not exposed by default through Xamarin.   While possible it does mean that any code written will not be portable to other platforms.

ArcGIS Runtime and Xamarin in Practice

In order to expose the capabilities of the ArcGIS Runtime to the Xamarin developer Xamarin bindings would need to be created.   These Xamarin bindings must be created for each platform by binding onto the appropriate ArcGIS Runtime API for the respective platform.   The diagram below illustrates this architecture.

Xamarin ArcGIS Runtime

While this architecture allows Xamarin developers to access the ArcGIS Runtime, it does not present the developer with a way to easily write cross platform code since the differences in the ArcGIS Runtime APIs are exposed directly to the developer.   The developer must learn the specific ArcGIS Runtime API and then with that knowledge they can code against that API using C#.

We have prototyped a set of Xamarin bindings to confirm that the theory actually works.   The results of these tests are that this architecture does work.  However, we also learned that the creation of these bindings is a non-trivial task.   In addition, since the bindings map very closely to the underlying API, as the API evolves the bindings must be maintained, which is a process that can result in a brittle API.

Current ArcGIS Runtime and Xamarin Status

At this point, we have no plans to release Xamarin bindings for our native APIs.    There are a number of factors that have gone into this decision.

  • Sub-standard developer experience when coding against more than one ArcGIS Runtime API due their differences
  • Does not easily support cross platform code development, due to the binding requirements
  • Xamarin technology evolving rapidly

ArcGIS Runtime Cross Platform Development

We do support cross platform development with the ArcGIS Runtime.  Currently the JavaSE and Qt APIs support cross platform development, but only for Windows and Linux desktop systems.  The Qt API is currently being extended to support QML.

The Qt QML API will support cross platform development for all the runtime platforms.   Code written against the Qt QML API must still be compiled targeting the native platform, but code written for one platform just works when compiled for a second platform.   There are no differences in the Qt QML API between platforms, making cross platform App development with a single code-base possible.

To achieve this there are some compromises, for example, the UI controls available must exist on all platforms, meaning specific UI components that only exist on one platform cannot be used when building cross platform code.   However, for a large percentage of use cases the Qt QML API will be a good choice.

So while we do offer cross platform development options with the ArcGIS Runtime today, we would like to hear from you regarding you development needs with respect to Xamarin.  If Xamarin was provided as an option, would you use it?  How are you managing your cross platform development needs currently?   Do you use Xamarin today, and if so, how?


Euan Cameron

CTO, ArcGIS Runtime & APIs 

Posted in App Developers, Developer | Tagged , , | 23 Comments