HEALTH & WELLNESS • GERMANY • STARTUP

Companion Mobile Application

Vision and wellness monitor mobile app for gamers

We built an engaging mobile app for the gaming community, which enables a seamless connection with the Vivior wearble device allowing to manage screen use behaviour, improving wellness now and reducing the chance of vision health issues in the future.

5 Team members
2023 – 2024 Collaboration

5 Team members
2023-2024 Collaboration

The Company and Product

VIVIOR is a precise analysis tool. It records the conditions in everyday life not on the basis of estimates or gut feeling, but directly where working life takes place. Attached to the temple of a pair of glasses, VIVIOR accompanies you through the day and objectively records all important factors from screen time to screen light an d blue UV light, posture and position of body and head movements.

The problems associated with regular long periods of uninterrupted screen use now affect over 70% of the population. The Vivior wearable combined with the companion app helps minimize the risks of Computer Vision Syndrome.

Scope and highlights

For the team at Vivior we managed to build the MVP version of the mobile companion application for the wearable device.

Mobile Application Development

Bluetooth Low Energy (BLE) connectivity integration for seamless communication with the Vivior wearble device. Cloud infrastructure to power the application.

UI/UX Design Enhancement

UI/UX made from scratch to meet the needs of the client and users. Incorporation of modern design elements and intuitive gestures for easy navigation and interaction with the mobile app..

Cloud Architecture & Implementation

Design and implementation of a scalable and secure cloud infrastructure using Google Cloud Platform (GCP) to accommodate expected user demand.

Technologies

React Native
(iOS/Android)

Firebase

Bluetooth
Low Energy

NodeJS

Google Cloud

PostgreSQL

BigQuery

The Process

The journey began with an extensive Discovery Phase followed by a Design Phase. During these phases, Vivior shared with S&P team their vision, business expectation, objectives and customer insights and our teams were eager to gather the insights and work on amobile companion that will truly unlock the potential of the Vivior wearable device.

UI/UX Design Process

In tackling the project’s UI/UX challenges, we adopted a comprehensive, user-centric approach that encompassed extensive research, collaborative design system development, interactive prototyping, and cross-platform optimization. By integrating valuable user feedback throughout the process, we defined features that truly resonate with end-users. The establishment of a robust and adaptable design system not only ensured consistency across the app but also streamlined development efforts. Through the creation of interactive prototypes, we were able to validate assumptions and facilitate informed decision-making among stakeholders. Lastly, our cross-platform design strategy enabled the app to seamlessly adapt to both iOS and Android environments, leveraging each platform’s unique strengths to enhance usability and engagement.

Research

Extensive research was conducted to address UI/UX challenges, incorporating user feedback to define features. A user-centric design approach ensured optimal solutions, guided by valuable insights gathered throughout the process.

Design System

Collaboratively established a robust and comprehensive design system optimized for subsequent changes. This in turn provides greater clarity and time-saving benefits for the development team with consistent components throughout the app.

Prototyping

Developed interactive prototypes used for user testing and validating assumptions. These prototypes empowered the client to gather valuable insights and facilitated efficient decision-making by stakeholders on feature optimization.

Cross-Platform Design

Implemented a cross-platform design approach that considered platform-specific UX requirements. The app seamlessly adapts to iOS and Android, delivering an optimized user experience while leveraging platform strengths for enhanced usability and engagement.

Development Process

Throughout the development process, a structured approach encompassing discovery and execution phases ensured project success. In the discovery phase, requirements were analyzed, a proof of concept was built, and a robust system architecture was designed. Thorough research informed the selection of an appropriate tech stack.

In the execution phase, features were developed iteratively based on user stories defined by the client’s Product Owner and technical decisions made by Salt&Pepper’s experienced team. Our primary focus was on establishing seamless communication between the wristband device, mobile app, and cloud services, while prioritizing an exceptional user experience.

Proof of Concept Validation

Proof of Concept Validation: We built a Proof of Concept to ensure React Native’s suitability for this usecase. For the communication with the Bluetooth Low Energy (BLE) device, along using the already existing React Native open source packages, we also implemented custom native modules to fulfill the project’s needs.

Technology Stack

Designed the overall system architecture and carefully selected the technology stack, ensuring a robust and scalable foundation for the project’s success.

Feature Rich Mobile App

Developed the feature-rich mobile application, leveraging React Native to provide a user-friendly interface and creating iOS and Android native modules to achieve a seamless control over the Vivior wearable device.

Analytics

Displaying real-time metrics based on the data received from the BLE device.

Cloud Infrastructure Setup

Built a secure and scalable cloud infrastructure on Google Cloud, incorporating Firebase, Cloud Run, Dataflow, Cloud Functions, BigQuery and CloudSQL databases. It enabled data management, firmware releases, and efficient DevOps practices.

Extensive QA & Stress Testing

Conducted rigorous quality assurance testing to ensure the mobile app’s compatibility with the wearble device across iOS and Android devices. We also performed stress testing on the wearble device to make sure we have a reliable and stable user experience.

Agile Way of Working

Employing a SCRUM Agile methodology, we collaborated closely with the Vivior team, delivering work iteratively in two-week sprints. Regular reviews and demos ensured effective stakeholder management and alignment throughout the project.

Backend Infrastructure

The backend infrastructure was meticulously designed to ensure scalability, security, and maintainability. Leveraging Terraform for provisioning Google Cloud Platform (GCP) environments, the setup adhered to the principle of least privilege, with each project isolated for enhanced security. The development process was streamlined through consistent commit practices using commitlint and commit hooks, facilitating seamless integration with JIRA. A robust ETL pipeline built with Apache Beam (Dataflow) processed sensor data, enabling efficient data flow into Pub/Sub and BigQuery. The API layer, developed in Node.js with TypeScript, followed OpenAPI standards and utilized Prisma ORM for interacting with the Cloud SQL database. Continuous integration and deployment were managed via a Docker-based Bitbucket CI/CD pipeline, ensuring code quality and predictable release cycles. Comprehensive testing, including load testing with JMeter and Artillery, was conducted collaboratively by the development and QA teams to guarantee performance under stress.

Terraform-Based GCP Provisioning Security

The backend used Terraform to provision the GCP environments, which were separate projects and followed principle of least privilege.

Typescript API with Prisma

The Node.js API layer was written in Typescript, following Openapi practices and leveraging Prisma as an ORM to access the Cloud SQL database.

Commit Standardization and Code Integration

Alongside the Typescript code, commit messages were also validated and reviewed using commitlint and commit hooks and thus the entire team followed the same conventions and features were easily linked with JIRA issues.

Efficient CI/CD with Docker

The Bitbucket CI/CD pipeline built using Docker, tested and shipped the code in the cloud environment, ensuring code quality and predictable release patterns & times. Makefile was used for simplifying configurations.

Apache Beam ETL Integration

The Apache Beam (Dataflow) Python ETL pipeline ensured that the sensor binary data stored in Cloud Storage was transform and fed into Pub/Sub for other systems to consume, an example would be serverless functions, or stored into BigQuery for analytical purposes.

Comprehensive Testing Strategy

Dev testing was performed using Postman and also the dev team was involved in load testing using JMeter & Artillery, joining forces with the QA team to monitor the impact under heavy load and to apply performance fixes.

QA and testing

Quality Assurance (QA) has been integral to the development of our application, addressing the multifaceted challenges posed by its complex architecture, which includes both frontend and backend components alongside an external sensor bank. The dynamic nature of the application necessitated a parallel QA process that encompassed various testing methodologies, including firmware tests for the sensor bank, functionality assessments for the frontend, and performance evaluations for the backend and data pipeline. Connectivity tests were crucial to ensure seamless communication between the app, sensor bank, and proprietary algorithms, supported by extensive load and stress testing. Additionally, a focus on real-time and historical data management ensured that users received accurate, digestible insights. By conducting real-life use case tests and maintaining a continuous calibration approach, the QA team aimed to refine the user experience, ensuring that the application meets user expectations in any situation.

Joint Development

Due to the dynamic nature of this application, involving significant complexity for both its frontend and backend as well as an external sensor bank (wearable) with BLE connectivity and a proprietary algorithm which processes raw sensor data and returns easy-to-comprehend statistics, development has been multi-pronged and simultaneous for each level of functionality. As a result, the QA process mirrored the app’s development, involving Firmware tests for the external sensor bank, Functionality tests for its frontend, performance and stability tests for its backend and pipeline, as well as blackbox/greybox testing for the algorithm itself.

Connectivity

To provide accurate, real-time statistics that are easily digestible by end-users, robust communication between the external sensor bank, app, and algorithm is essential. Extensive connectivity and pipeline tests have been conducted to ensure stable communication among all components. This includes Load and Stress tests using Artillery and API tests with Postman and JMeter. Special attention was given to Bluetooth Low Energy connectivity, performing thorough connectivity, interference, and stability tests due to Bluetooth’s often unpredictable behavior.

Full data management and availability

the app’s intent is to not only process real-time sensor data and provide digestible reports for the end user, but to provide historic data as well, allowing users to track and monitor their progress on a day-by-day basis. Data reports, both real-time and historic, have been tested extensively in order to ensure they are always accurate and easily readable by anyone at a first glance.

Real life use cases

in addition to the standard testing process, which oftentimes involves brute-forcing functionalities and a significant amount of Edge and Corner Case validations, we’ve also tested the application within real-life scenarios in order to ensure that we’re not missing the forest from the trees. The entire team contributed to said tests, with everyone wearing the external sensor bank and monitoring our statistics while going about our daily routines. This was done in order to ensure that, no matter when and where, the application would always inform the user of their current status.

Continuous calibration

in order to refine the user experience and ensure that it is as accurate and as relevant as possible, the app has been constantly tweaked and polished – especially concerning data processing and delivery aspects, with the team offering many suggestions for improvements and changes which we felt would contribute to generating an awesome product.

 

Building the next generation of predictive health tech?

 

Let’s talk about the software that will drive it!