Companion apps for smart dashcam & tyre inflator

Development of a native iOS and Android application for two IoT devices, A smart dash cam and tyre inflator. The app interacted with the Dashcam over Wi-Fi using a REST API and the tyre inflator over BLE. In order to reduce spiralling maintenance costs three separate Xamarin applications were combined into a single codebase for each platform. A strict budget and deadline demanded careful resource allocation to ensure project success.
Client: Osram, Ring & Sylvania
Industry: Automotive | Automotive App & Software Development
Screenshots of the homescreens of 3 companion apps, for Osram Sylvania and Ring

At a Glance

  • A companion app for 2 IoT devices – a smart dashcam and a tyre inflator
  • The project had 3 white label variants from a single code base
  • Interaction with an endpoint over a WiFi hotspot connection to a dash cam
  • Integration with 3rd party APIs to obtain vehicle information
  • Setup process for smart devices
The most impressive quality presented by the team was their engineering and communication skills and their experience.
Simon Woodward
CEO, Woodward Solutions Ltd


Review submitted via Clutch

The Challenge

Osram operates under three distinct brands in different parts of the world Osram, Ring and Sylvania. Each brand was maintaining a separate app written in Xamarin. They were experiencing increasing costs maintaining and adding new features to the separate code bases.

Coderus offered to combine these apps into a single codebase while maintaining the separate branding. This included company information, colour palettes, product photography as well as other items like legal terms and conditions.

The Ring and Sylvania app required support for both the Dash Cam and Tyre Inflator, while Sylvania only required Dash Cam support.

The documentation provided for the dash cam was incomplete and inconsistent from the behaviour observed from the device, so we had to reverse engineer the existing Xamarin app in order confirm how the Dash Cam API worked. The client had a strict budget and go-live which had been communicated with Osram’s internal stakeholders. The resource applied to the project must be carefully monitored to keep the project within budget.

The Methodology

At the start of the project, a workshop session was held with the client so that Coderus to develop a clear understanding of the project requirements, build a high level design overview and create a task breakdown. The project used scrum methodology, working in 2 week sprints to deliver incremental releases. Daily stand ups discussed progress towards the sprint goal, which the client would attend twice a week. This ensured that the client had visibility across all stages of the project and was able to answer any questions to clarify requirements. Each sprint held a backlog refinement session to ensure tasks for the next sprint had enough detail. As well as a review session to look at new features added to the app. Retrospectives were completed at the end of each sprint to identify areas of improvement in the way that the team worked.

As this was a large project we looked for opportunities to break the project down into smaller phases. When capturing requirements we had identified that the Sylvania only required dash cam support as the tyre inflator was not sold in that region. We focused on the Sylvania app first, implementing the smallest scope possible to provide a working product which could be released to production. This helped to reduce project risk and allow Osram to begin capturing customer feedback. The next phase was to produce Osram and Ring branded dash cam apps so that each brand had it’s own production ready dash cam app. Before finally adding support for the tyre inflator.

The iOS Tech_

  • Built using Swift & SwiftUI
  • Small external libraries used – SwiftyBeaver for logging and XMLCoder for decoding XML data from the dash cam
  • Lightweight API manager enabled efficient network requests
  • Setup process for smart devices

The Android Tech_

  • Kotlin & Kotlin Coroutines for concurrency
  • Automated build deployment to the Google Play Store from Jenkins using Fastlane
  • Multi module architecture following Google’s best practise guides
  • Use of our internal Bluetooth library for connecting to and controlling the dash cam

Coderus were able to develop an application for both iOS and Android platforms that met the client requirements for the Dash Cam and Tyre Inflator products.

The Results
The final solution was a codebase with a single build process that produced three distinct apps with support for different physical devices. Reducing maintenance and development cost of new features. Extensive documentation was created and the final code uploaded to their git repository.

We’d love to enhance your software.

If you’ve got an app or piece of software in mind, get in touch with us today to start your project.