Mobile Application Development for APPCAN
APPCAN is a software-as-a-service company working in the utility construction industry. The APPCAN platform is a web and mobile data collection and documentation distribution platform for field workers. Specifically, for businesses that require their field-force teams to either collate and submit relevant job-related data or to receive/access documentation pertinent to their field activities.
The original application was a success but only available on iOS and was complex to maintain and extend. Having already worked with Transparity on the development, support and administration of their multitenant cloud-based Software as a Service (SaaS) system (see the phase one case study) we were the natural choice for phase two of the project: creating a cross-platform mobile application with a high degree of shared code that is easy to extend and maintain.
From the Client
Our previous mobile app only supported Apple iOS and had been in use for several years. Stage two – APPCAN XP is a cross-platform mobile app, supporting both Apple and Android operating systems.
It was always our ambition to make our mobile app cross-platform, and Transparity made that possible. As they are our partner for all software developments, hosting and support, we approached them to discuss the requirements to build the new APPCAN mobile app from the ground up.
From the onset of this project, Transparity led us through all the available development options, discussing the pros and cons of each one. As part of the decision-making process, not only was it extremely important to get the right development solution, it was essential that the technologies used weren’t just the right fit for today, but also for the future.
Following meetings and conference calls with the CTO and Senior Developers at Transparity and taking in to account all our requirements for the new mobile app, a final recommendation was made.
A very detailed proposal document was sent to us for review, which included the specification, technologies to be used and timescales for delivery. We particularly welcomed the approach to the development, which proposed a three-phase development, allowing us to review each stage of the development to make sure the project met our requirements and expectations before the commencement of the next stage.
From the Developers
The original APPCAN system was based on websites and APIs built using .NET and SQL Server deployed on Microsoft Azure together with a Mobile app developed in Objective-C for iOS devices.
The Mobile app had several limitations:
- It worked on IOS devices only
- It was developed a few years ago and was 100% Objective-C code and did not take advantage of some of Apple’s later developments such as Swift and Storyboards
- It was developed using a general-purpose forms framework created by the development company that originally wrote it. The framework was used by multiple apps, one of which was APPCAN, and all app-specific code was in subclass files. This had doubled the number of source code files making the app unnecessarily complex to maintain and extend
The app needed to be redeveloped to work cross-platform with as much shared code as possible.
The targeted platforms were:
iOS: Phone and iPad.
Android: Phone and tablet.
The new app needed to:
- Use the same API as the existing iOS app used so that it could be introduced without change to the Azure API and web sites
- Have the same functionality as the current version of the iOS app.
Proof of Concept
The modernisation of the APPCAN mobile app began with a Proof of Concept in Xamarin. Xamarin was chosen as it creates native apps for each device, is developed in C# using the .NET framework which is the same as the rest of the APPCAN system and is perfect for large organisations to create cross-platform apps.
As the app is primarily form based, with no significant graphic manipulation, Xamarin.Forms was chosen rather than Xamarin.IOS and Xamarin.Android. The background/non-UI code such as: login, storing documents and forms, calling the API, working off-line and syncing was all possible using C# within Xamarin. So, it was just the UI aspects that needed to be proven and the POC concentrated solely on this.
The POC was UI only and had no business logic, data store, syncing or API calls. In order to demonstrate the functionality, the system had a mocked form definition that contained one of each field type and presented the user the ability view two mocked documents.
Production of the Xamarin Mobile Application
Following the success of the POC, development was undertaken on a production-ready version available on selected iOS and Android smartphones and tablets.
The Xamarin app was designed to coexist with the existing IOS mobile app. Most of the existing APIs and data formats were preserved but a new version of some APIs was deployed in addition to the existing APIs, so as to allow some additional data changes simplifying the data-sync process.
The technology behind the mobile application is:
- Xamarin Forms supporting both iOS and Android platforms
- SQLite Database tables for Data Collector App definitions and submissions, system settings and details of pictures, sketches and document distributor app definitions.
- App Local Storage for actual images and documents.
Support: The support hours began on go-live of the system with hours purchased on account and called off as they are used. The support is flexible and uncomplicated, being used for fixes, as well as updates, routine maintenance and system health checks.
DevOps: The development involved DevOps through automated unit tests and integration tests developed using Specflow and Selenium, and fully automated systems deployment using Azure Resource Manager (ARM) templates and deployment pipelines. Once the system was live and operational DevOps continued as our DevOps engineers made fixes and enhancements to the live system using a very short test and release cycle.
Once the new application proved itself with real users in production, APPCAN encouraged all users to switch away from the old IOS app. Once all users were no longer using the current IOS system, the code was moth balled, allowing more radical, performance-related changes to be made to the APIs, the mobile apps and the web site.
The Xamarin mobile app was a success. Users now have no need to complete paper forms on-site and send them back to the office for manual data entry. All of this can be done electronically using a handheld mobile device. There is no reason to even have network connectivity while on-site, as the device will automatically synchronise with the central servers when it is online. The system can also be used to broadcast critical alerts to the mobile devices of selected users.