Today's IT landscape is very heterogeneous. We are dealing with different platforms, device types, form factors, operating systems, and programming languages. A very interesting overview of this is given by the State of the Developer Nation Q1 2016 Report<\/A> on visionmobile.com. The complete availability of a dedicated app for all users is actually no longer feasible in this landscape. The higher the availability should be, the more expensive it becomes or more compromises have to be made.<\/P>To achieve optimal availability for a mobile Native-App, it would have to be developed at least three times! for the currently dominant mobile platforms iOS, Android, and Windows Phone. That is expensive. To save development costs, the developer could choose fewer platforms, but this also means reaching fewer users.<\/P>This example already makes it clear that concepts should be developed in the planning phase of an app to achieve the highest possible availability of apps on different platforms with low development effort – and thus lower costs. This brings us to the topic of Cross-platform development, one of the most important challenges developers have to deal with nowadays.<\/P>Cross-platform development means developing the code for an app only once and deploying it on multiple, usually incompatible platforms. Cross-platform development also always means finding a compromise between the target audience aimed for, development effort, user experience (UI\/UX), and functionality.<\/P> <\/P><\/A><\/P> <\/P>As can be seen in the graphic, there are different approaches with respective advantages and disadvantages for cross-platform programming. A good option is certainly providing as a Web-App. The code is written only once and hosted on a web server. The Web-App then runs in the browser on almost all current devices. With JavaScript\/HTML5, very powerful and performant applications can now be created. Besides the permanent online requirement, the technical limit is the browser itself, which does not allow access to many sensors of the devices, address books, entire local storage, etc. For example, apps for field service with offline use of larger data volumes cannot be realized this way.<\/P>In contrast, Native-Apps are specifically tailored to the respective platform and can therefore access the full power of hardware, UI components, memory, and functionality of the devices. This would be the right approach for a mobile app with offline functionality for field service. Because of this "specialization," cross-platform development of Native-Apps is only possible with special tools such as Qt\/QML<\/A>, Microsoft UWP<\/A>, or Xamarin<\/A>. Code from apps developed with platform-native SDKs cannot subsequently be made cross-platform capable anymore. So this should be well considered beforehand.<\/P>Hybrid apps are a middle ground between both options. With frameworks like PhoneGap<\/A> or Titanium Appcelerator<\/A> etc., JavaScript code can be compiled into Native-Apps for various platforms, thus overcoming browser limitations. Hybrid apps look and feel like Web-Apps but can access more device resources.<\/P>Developing Geo-Apps with Esri technology is naturally not exempt from this issue. In Part 2<\/A><\/SPAN> of this blog, solutions and tools for ArcGIS developers for cross-platform development are explained.<\/P><\/BODY><\/HTML>
To achieve optimal availability for a mobile Native-App, it would have to be developed at least three times! for the currently dominant mobile platforms iOS, Android, and Windows Phone. That is expensive. To save development costs, the developer could choose fewer platforms, but this also means reaching fewer users.<\/P>
This example already makes it clear that concepts should be developed in the planning phase of an app to achieve the highest possible availability of apps on different platforms with low development effort – and thus lower costs. This brings us to the topic of Cross-platform development, one of the most important challenges developers have to deal with nowadays.<\/P>
Cross-platform development means developing the code for an app only once and deploying it on multiple, usually incompatible platforms. Cross-platform development also always means finding a compromise between the target audience aimed for, development effort, user experience (UI\/UX), and functionality.<\/P>
<\/P>
As can be seen in the graphic, there are different approaches with respective advantages and disadvantages for cross-platform programming. A good option is certainly providing as a Web-App. The code is written only once and hosted on a web server. The Web-App then runs in the browser on almost all current devices. With JavaScript\/HTML5, very powerful and performant applications can now be created. Besides the permanent online requirement, the technical limit is the browser itself, which does not allow access to many sensors of the devices, address books, entire local storage, etc. For example, apps for field service with offline use of larger data volumes cannot be realized this way.<\/P>
In contrast, Native-Apps are specifically tailored to the respective platform and can therefore access the full power of hardware, UI components, memory, and functionality of the devices. This would be the right approach for a mobile app with offline functionality for field service. Because of this "specialization," cross-platform development of Native-Apps is only possible with special tools such as
Hybrid apps are a middle ground between both options. With frameworks like
Developing Geo-Apps with Esri technology is naturally not exempt from this issue. In
Signed in members can post, follow updates, and more. New here? Register a free account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.