Xamarin.Forms is a compelling framework for developing native enterprise cross-platform line of business applications. We have used Xamarin.Forms for rapid cross-platform enterprise mobile development for iOS and Android platforms using C#. In this blog, we will explore one of the apps that we conceptualized and developed for our client from inception to production, in just 4 months. Moreover, we achieved 96% code sharing on the client side (iOS, Android code) and the backend server side (Web API) code.
Field Service LOB App with over 1200 Data points
One of our existing customers approached us to develop a field service app to support field technicians to collect data with over 1200 data points. The features in the app necessitated us to take advantage of the device capabilities uniquely in iOS and Andriod. In the initial discussion we realized that there are several challenges we had to address:
- Multi-platform support, e.g., iOS and Android.
- A Large set of 1200 data elements had to be captured.
- Support for async communication / offline mode.
- Time to market.
Multi-platform support, e.g., iOS and Android.
We had to support both platforms from the get-go. The nature of the application gravitated us to consider using Xamarin.Forms. In addition, we were mandated to use the architecture patterns which would keep the UI and Business Logic layers separate and make the application testable from the first viable build. After considering the various architectural pattern, we settled on MVVM architectural pattern and Xamarin as our enterprise cross-platform development environment.
Over 1200 data elements had to be captured with ease, leveraging device capabilities
Field technicians requested to have simple UI that would help them capture a large amount of data natively on the device, using the device capabilities or via third-party instrumentation. This data capture mechanism presented hidden challenges of validation, data binding on the fly, etc. It also introduced a vertical and lateral hierarchy to data collected.
Async communication and offline mode
As the field technicians had to work in confined space and dead zones or remote places in many situations, they would not have internet connectivity during their visits. This use case mandated that we support a mechanism to capture the data offline and sync it whenever data connection becomes ava available.
Time to market
Our client had to have the product available on both platforms simultaneously and fast i.e. on IOS and Android. I feel proud to see our team go from inception to production in less than 4 months.