Case Study

Mobile Application for DreamOn Device

Factorial Complexity was picked as the developer for DreamOn startup. Our task was to build the supplementary mobile application for iOS and later Android. The application syncs with the DreamOn device via Bluetooth LE. It can be used to set up the device and monitor the sleeping habits of the wearer. Originally aimed at the end-users, the app also proved to be a valuable tool while debugging the device.


There is one thing that is common for the Bluetooth LE applications project - the lack of the actual device. It will go through a number of prototypes, available as a bare circuit board before the hardware design is finalized. The prototypes hang, drop the connection, and can be “bricked” by an unfortunate firmware update.

Also, normally hardware developers are located in China and product owners in the USA. Adding software developers from yet another geographic location and timezone seems too much of a hassle and not worthwhile of other benefits. Our team, however, proves this wrong on the regular basis.

Using our experience our developers were able to build the application without physical access to the device. Although hardware developers have provided the reference code for the Bluetooth layer, we have eventually rewritten it from scratch.


The purpose of the DreamOn device is to make a person fall asleep faster and sleep more deeply. It creates a unique pulse that physically calms your body to sleep so you can wake feeling more rested. Since the device has a single hardware control, an "on" button, the application acts as the main controller for the device. Users can calibrate the pulse intensity and set up an alarm if needed.

Hidden from the end-users the application also has built-in hardware debugging capabilities. It was heavily used by the DreamOn team during their extensive sleep testing.

Sleep Tracking and Analysis

Additionally, the device acts as a sleep tracker: by analyzing data from a built-in accelerometer it detects a person's sleep phases. The device firmware does the initial processing of the accelerometer data. The application downloads it and processes further using the Tudor-Locke method. The sleep phases are displayed to the user and "sleep score" is calculated. The application keeps the sleep data for further review and stores it on the server (built with Firebase's Firestore).

Supplementary Audio Materials

The application includes a library of audio materials aimed at helping users improve their sleeping habits. The audio is streamed from the server. Audio files can be downloaded for offline listening.

The application UI is slim and polished. Animations are smooth. Working with DreamOn's product design team, we went through multiple design iterations before settling on the current look and feel.


iOS application was released alongside the DreamOn device successful launch with Android application following a bit later. Factorial Complexity provides further development and support for the application. New features are being added and BLE connectivity improved. 

It was exciting for us to be working on the launch of this piece of hardware from scratch. Our team got experience in building the application with Bluetooth connectivity with the final device still in development. We learned about the process of wearable hardware development and all the challenges and pitfalls that happen along the way.


Whether you need an extension to your in-house team or creating the whole product from idea to the published application, we can help. Regardless of the way we co-operate, you will get access to our vast experience in various technologies and domains.

Learn how we can work together

We would love to hear from you.

This form sends a email right into our inbox. One of us will get back to you as soon as possible.

Thanks for contacting us!

We will respond as soon as possible - normally, within a day.

Want to get in touch even faster? Then, please, try:

Calling us at +1-424-777-2021.

Skyping factorial.complexity.

Something went wrong :(

We are very sorry. Here are some alternative ways to contact us:

Want to get in touch even faster? Then, please, try:

Phone +1-424-777-2021

Skype factorial.complexity