In this post, you will learn how to:
- Use pop-up to provide additional information
- Add legend
- Trigger actions when a graphic is clicked
Did you know you can create a new feature service in ArcGIS Online, without needing to create it in ArcGIS for Desktop first? This blog lists the main ways to create a new feature service that is hosted in your … Continue reading
Imagine you are 1 of 2 people running an entire department, and your boss says:
“Get those interactive maps out there to our public. You have 2 days to make it happen. Oh, and put them in that app store thingy my family keeps talkin’ about.”
You’ve never had a computer science course in your life. This is the 11th hat you need to start wearing. Continue reading
ArcGIS Runtime 10.2.4 will start rolling out at the end of this month and will include some great new SDKs (.NET!), APIs, and developer workflows. But this release is a little different than previous ones. Playing fair—For the past few years, … Continue reading
In the first post of this series, I mentioned a good way to determine which way to visualize your data is to ask questions about the purpose of the map. In addition to “where things are,” which we already examined in that post, you may also want answer questions like:
- What chain does each restaurant belong to in my city?
- What is the most predominant crop of each county in the US?
- What level of crime risk does each census tract have?
Unique value renderer is good for answering your what questions.
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.
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.
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?
Update: Due to a overwhelming feedback in favor of supporting Xamarin, our position has changed. The ArcGIS Runtime will support Xamarin in the near future. Please read Part 2 of this blog post for more information.
CTO, ArcGIS Runtime & APIs
In July several Esri employees and developers were at OSCON – short for Open Source Conference – in Portland, Oregon. It’s a great conference for anyone interested in open source technology, and we’ve been going since at least 2011.
So, what did Esri do at OSCON this year? Continue reading
In part 1 of this series we discussed how to integrate the ArcGIS Runtime SDK for Android with Android Studio. The post stepped through the process of manually setting up a single project in Android Studio. Today, the ArcGIS Android developer team is proud to announce an Early Access Preview (EAP) release of ArcGIS Android Gradle samples. The samples are open source and can be forked from Github. Android Studio development environment is now in Beta and will be the official Android IDE once it’s ready. We encourage you to collaborate with us working with the new Gradle based Android project structure. Be aware that this is an EAP and if you are not comfortable using an unfinished product, you may want to use ArcGIS Android Samples in the Eclipse Plugin bundled with the ArcGIS Android SDK.
In all the excitement of the 2014 Esri UC, you may not have heard about GeoNet. Maybe you heard the name from Jack’s announcement during the plenary, maybe you got an email or saw it from your social media connections, maybe you’ve logged in but were not sure where to go. In any case, I wanted to help you understand more about GeoNet, how it applies to you and how you can get started.
Purpose of GeoNet
GeoNet is here to extend the user conference experience to 365 days a year. Take all of the networking, collaboration, knowledge sharing, and product support from the conference and combine them into a single community that spans the globe. From that, you have GeoNet. Continue reading