drivers use the apps
The company is a leading provider of telematics / analytics solutions to insurers, ridesharing businesses, and rental fleets. The organization advocates safety on the roads by improving driving behavior. The customer has a suite of apps driven by IoT and artificial intelligence, as well as holds numerous industry awards.
The provider's flagship offerings include apps that assess/improve driver behavior, detect car crashes and automate claims, as well as help brands to build a loyal fleet. These products are customized and upgraded to the clientele needs (50+ global enterprises employing 20+ million drivers). The company also continuously evolves its software development kit (SDK) underlying the apps.
To dedicate more effort to innovation around core products, the organization relied on the mobile development expertise at Altoros to provide long-term maintenance and ongoing support for 15 businesses using the services.
Under the project, the team at Altoros had to address the following issues:
- As each business had its unique workflows, companies often asked for a specific set of features in a customized app. However, the apps were built as systems with tightly coupled components. So, it was crucial to ensure proper operation and zero downtime when removing/modifying core functionality.
- It was important to develop new features with configurability and interoperability in mind, as they might be implemented for multiple businesses from different industries.
- To deliver efficient maintenance and support of the customized apps, it was vital to wisely choose development approaches/practices.
Stage 1. Mobile developers at Altoros always thoroughly analyzed the requirements of each business. In most cases, the team opted for reverse engineering techniques to preserve crucial app dependencies and avoid instability when delivering necessary customizations.Our engineers also abided by such best practices as inheritance principles, as well as code review and linting throughout the development cycle.
Stage 2. For the sake of maximum configurability, developers at Altoros tried out various architectural approaches, e.g., the MVVM pattern.
Stage 3. Our team helped several companies to migrate iOS-based apps from older versions of Objective-C to a lightweight Swift. As soon as new releases of Android and iOS or proprietary SDK were available, engineers at Altoros upgraded end-user apps accordingly. These measures followed suit of the modernization initiated by the customer across the technology stack and helped to prevent technical debt.
Stage 4. In terms of building new components, our developers implemented a scoring system that evaluated a driving style based on telematics data. Then, the team at Altoros created a framework that visualized the data in multilayered, yet explicit, charts.
Stage 5. Finally, our QA experts performed user-interface, cross-platform, smoke, and acceptance testing at each stage of the development cycle.
Partnering with Altoros, the provider was able to focus on evolving core products/SDK without interruption to maintenance and support of its apps for 15 enterprises. With the efforts dedicated to customization, one of the 23 tailored apps amounted to 5,000,000 installations on Google Play, while the rest have around 10,000 each. Thanks to the chosen architectural and development approaches, the customer released features that are easily integrated into existing workflows of 50+ organizations.
Brief results of the collaboration:
- The provider was able to continue investing in the innovation of core products and a proprietary SDK without interruption to maintenance and support of apps tailored to the specific needs of 15 global enterprises.
- One of the 23 customized apps crossed the the threshold of 5,000,000 installations on Google Play, while the others averaged around 10,000 each.
- The architectural and development approaches, as well as the best practices, in place enabled the customer to build features that are easily integrated into the existing processes of 50+ client organizations.
- Migration to a more lightweight programming languages and timely upgrades contributed to the overall modernization of the technology stack and prevention of technical debt.
Java, Kotlin, Swift, Objective-C
Frameworks and tools
Android SDK, MPAndroidChart, Facebook SDK, RxJava2, Xcode, Bitrise, OkHttp, Retrofit, Mockito, Firebase/Crashlytics, BonMot, SwiftLint, Google Maps, PhoneNumberKit, SDWebImage