“We are extremely lucky to have Ballard Chalmers as our partners, their delivery of all projects we have undertaken with them has been first class, and they are a perfect fit for our business.”
Managing Director, AppCan
AppCan is a software company working within the utility construction industry. The AppCan platform is a web and mobile data collection and documentation distribution platform for businesses who require their field-force teams to either collate and submit relevant job-related data or to receive / access documentation pertinent to their field-force activities.
The original application was a success but only available on iOS and was complex to maintain and extend. Having already worked with Ballard Chalmers 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 Ballard Chalmers made that possible. As Ballard Chalmers is 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, Ballard Chalmers 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 Ballard Chalmers 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 web sites 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 app
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.
“The development of AppCan XP with Ballard Chalmers was straight forward with minimal user acceptance testing. Full credit goes to the developers and management of our development partner, who fully understood the requirements and delivered this project with remarkable speed. They made it a completely painless process and that gave us all the confidence that AppCan XP was going to be very successful.
“AppCan XP is now live across all our client base, and the users are really enjoying using the new app. The feedback from users has been incredible, as it is not only much faster in its use, but also brings new essential features, including Photo markups and automated filing of records into the document folders. And, for the first time, this has allowed us to talk to existing and potential clients who use Android as their mobile device of choice, which brings new opportunities for AppCan.” Boyd Neal – Managing Director, AppCan