A Bluetooth app focused on children’s safety

“Safety first” means a lot when discussing babies. With modern technology, we can monitor children’s security in the car automatically, enabling families around the world to provide maximum protection for their little ones.

bonami logo
Martin Homolka - CO-Founder

“Cookielab is a software agency that helps companies and startups build big things. We helped our client to develop a mobile application that saves lives.

We are involved in projects at various stages, we help not only with development, but also with management, invention, and long-term maintenance. We are talking about a longer-term partnership.”

Martin Homolka

CEO

Android

For the consistent processing of asynchronously-incoming input For the consistent processing of asynchronously-incoming input data (e.g. Bluetooth, users, or system changes), we used the concept of reactive programming (ReactiveX). This allowed us to create clearly-defined schemes and processes for how the system responds to a given sequence of inputs.data (e.g. Bluetooth, users, or system changes), we used the cosponds to a given sequence of inputs.

Further, we created a structure above the RxAndroidBLe library that both solves the challenge of different Android devices, and manages connection across them.

iOS

We kept the app’s core as simple as possible, with minimal dependence on third party libraries. We rely on Swift 5, CoreBluetooth, GRDB, and our own library of CoreBluetooth’s testing.

Server communication is implemented through Apollo GraphQL client, and the UI consists of UIKit and CleanSwift architecture.

The Challenge

Our mission was to design a mobile app for use with car seats sensors, to secure the entire development process, and to make sure the app worked seamlessly with different hardware across different global markets. The biggest challenge was to fine tune flawless communication on all platforms and mobile devices.

The diversity of Bluetooth connection on devices by various producers concerned us the most, because, although Android provides an unified API, different devices have different schemes. Another challenge was the sustainability and scalability of such a complex project.

The Technologies

iOS

EventSourcing-like hybrid architecture

Swift 5

CoreBluetooth

UIKit

Apollo iOS GraphQL client

GRDB

Android

Graphql (Apollo)

Reactive X (RxJava)

RxBleAndroid

Event sourcing, Protobuf

Firebase (Crashlytics, in-app messaging, cloud messaging)

Lottie, Dagger, Room

Backend

Infrastructure: AWS, Kubernetes (EKS), Terraform, auto scaling

Microservice architecture (graphql, auth over JWT)

Typescript and nodejs, Postgresql

The Solution

We set up a dedicated product team for the project, allocating seven people in total to develop, design, and test the client’s app. We sought a platform that would help us with development, could be easily debugged, and, above all, was reliable.

In the end, we came up with a unique solution inspired by EventSourcing that forms the backbone of the hybrid architecture. Thanks to this, we are able to fine tune and debug even the most exotic statuses caused by differences in hardware, versions of the OS, and miscellaneous conditions in the field.

The Results

In the latest version, we completely redesigned the app under the hood and used the potential of event sourcing, which is customized for the mobile environment. This gave us the ability to efficiently write testable code and easily implement functionality changes. The biggest advantage, however, is that event sourcing gives us the ability to reproduce the exact behavior of the app at the user level, and effectively detect and correct bugs, including the completion of regression tests in the future.

The mobile application is already used by 1k satisfied users. We are constantly improving the app, and we have completely redesigned the application under the hood. Now, we can offer communication with new client’s products, as well.

The Future

As the hardware producer improves their sensors, we improve the client’s app. In the first half of 2021, we published a new version that connects directly to the sensor without OBD, translating into more comfort for customers. Hopefully, we will be able to fine tune the app further and incorporate more customer feedback in the future.

Software Development hero image - monitor

What we like about this project

Apart from the essential purpose of the app-keeping children safe and healthy, we appreciate the cooperation with the client’s international team, even though time zone issues between the US and Europe sometimes worked against us.

Another great thing about the project is that we had the liberty to be creative-from the initial specifications through wireframes, design, development, and maintenance. The trust client put in us is something we are particularly grateful for.

or
...your career.
Check our job openings
By clicking “Accept”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our Privacy Policy for more information.