Android and iOS libraries for HAT 4G bonding.
At a Glance
- Android and iOS library implementing the 4G bonding technology.
- Android and iOS apps integrating with the platform library.
- The app should be easily rebrandable to produce a number of white label apps.
- It should be possible for the library to be distributed independently of the app. Allowing it to be made available as a separate service offering by HAT.
- Develop the library and application without using any deprecated or legacy APIs.
- Rewrite the native C logic used in the existing app for iOS using Swift and Android using Kotlin.
The Challenge
Hybrid Access Technologies (HAT), are an Ipswich based company providing connectivity solutions. Offering a range of ways to keep Residential, SMB, Smartphones and IoT applications connected.
What was the problem?
The clients existing HybridLink mobile application while functional, had a number of issues. The logic implementing the Hybrid access technologies 4G bonding solution was tightly coupled with the application UI, making it difficult to rebrand the app or for companies to include the HybridLink functionality in their existing applications.
The application depended on a number of deprecated or legacy platform APIs. Usage of these APIs needed to be removed in favour of the current recommended approach on each platform.
Coderus solved the problem by writing a new library and a new app using the existing app as a reference alongside the specification.
How does the product or service we were creating help the client achieve their business objectives?
By separating the application UI and the core functionality into different modules this allowed the hybrid link functionality to be distributed independently from the mobile application UI. Allowing HAT to resell this functionality to companies who wished to offer their customers a 4G bonding solution, as well as allowing the application layer to be more easily adapted.
HAT’s customers who have an existing application can purchase the library only. Customers (businesses) without an existing app can use the app developed by Coderus by applying their own branding or as a template to add functionality.
The existing iOS app relied on using a workaround to prevent the service from being terminated by the operating system. Coderus tackled this by moving the service logic to a network extension which can continue reliably and efficiently working in the background without requiring the container app to remain open. This introduced the challenge of inter-process communication between the network extension and the container app. The solution to this was using App Groups and Shared User Defaults to create a persistent storage medium which enabled data to be shared between the two processes.
Android was more straightforward. A foreground service was used with a persistent (non dismissible) notification being displayed to the user. Preventing the Android operating system from stopping the application while the app was closed.
Why did the client choose to work with Coderus?
We’re a leading company in the area in building advanced mobile app solutions.
Our ability to manipulate existing solutions in order to meet client needs in an innovative way, ensuring compliance with AppStore guidelines.
Understanding how to build and maintain white label apps within a single code base.
The Methodology
Rapid development based on agile methodology. The development effort was broken into 2 week sprints. At the end of each sprint the latest version of the app would be released to the QA team. Once their testing had been completed the app would be made available to the client. Enabling them to see progress every 2 weeks and provide feedback to the Android and iOS teams on the work so far.
As part of the development workflow, unit and integration tests were written alongside the development of new features. These tests were run by our continuous integration server before new features could be introduced into the code base. Static analysis to check the code for potential bugs was also performed automatically, with any errors being reported to the developer.
Development and testing made use of Docker containers to simulate the server and router. Allowing for faster development without the need for physical hardware or cloud services. This also meant that everyone working on their project had their own isolated environment.
Emphasis on stability – the bonding and top-up service must be reliable. Extensive unit testing and system testing was employed to confirm this using simulated servers and routers running in Docker container.
Native iOS and Android libraries implementing HAT’s packet relay technology.
Native iOS and Android applications which can be easily modified to match the brand guidelines for any company or used as a example for how the HybridLink functionality can be integrated to existing applications.
Both Android and iOS developed separate libraries containing the networking functionality, and easily rebrandable apps that met the client requirements.
All traffic being relayed across the mobile device is encrypted for security preventing data snooping.
We’d love to enhance your software.