MotherFit

The design and development of a cross-platform app for pregnant women's health.

Platforms
iOS
Android
VK mini app
Web
Development period
2023-2024
About the project
Tech stack
Spring Boot
Java
Flutter
Flutter BLoC
PostgreSQL
Yandex S3
Keycloak
Services
CTO as a service
UX/UI design
Development

MotherFit is an app that provides gymnastics exercises for pregnant women

The founder of MotherFit, Diana Douglas, has decided to create a personal assistant who will monitor the safety of exercise by monitoring heart rate. He will also help expectant mothers throughout pregnancy by providing nutrition recommendations and building harmonious family relationships.
The 7bits team has been tasked with developing an app that will be available on iOS, Android, the web, and as a mini-app on VKontakte, a popular social networking platform in Russia.
Опубликовать приложение в каталоги: VK mini apps, App Store, Google Play
Разработать раздел со статьями о питании и семейных отношениях
Добавить детализированную статистику выполнения упражнений
Интегрировать сервис психологической поддержки «Буду Рядом»
Add detailed exercise statistics for each day and week
Publish the app in the catalogs: App Store, Google Play, VK mini apps
Get heart rate data while exercising with a smartwatch

Create an algorithm that will recommend the intensity of training based on heart rate data

Integrate the psychological support service
Develop a section with useful articles about nutrition and family relationships
Tasks
We've updated the visual style and main screen of the app to highlight all of its features.
Navigation is performed by weeks of pregnancy. Recommended articles, training directions, and activity schedules are available for each week.
Main screen
Added the ability to connect smart devices for heart rate monitoring
We used BLE (Bluetooth Low Energy) technology to connect with Android devices and created our own Apple Watch application to collect and transmit data from the device.
Integration with smart watches
We have developed an algorithm to monitor heart rate in real-time
During the workout, the app makes sure that the pulse does not exceed the safe limits. At a critical heart rate, the workout is automatically suspended, giving the expectant mother the opportunity to rest or perform restorative gymnastics.
Exercise intensity control
Improved training performance statistics
We have improved the information content of exercise statistics. Now all statistics are available on one screen, which makes it easy to track the dynamics of classes during the week of pregnancy or for any particular day.
Collecting statistics
We have added articles adapted to the time of pregnancy
During onboarding, users can indicate their gestational period. Based on this information, the app will select articles on topics that are relevant to women at different stages of pregnancy.
Articles about nutrition and family
VK mini apps
You can perform workouts directly inside the VKontakte social network on your desktop or mobile phone.
We adapted the application for the VK mini apps catalog
We conducted a thorough competitor analysis, UX audit, and conducted a series of interviews with representatives of our target audience. Based on this data, we developed the user flow and the CJM. By creating designs for various platforms such as iOS, Android, Web and VK Mini App, we strove for unity of style and ensured comfortable use on any device. As a result, the interface has become more intuitive, easy to understand, and user-friendly, which has significantly improved the user experience of the application.
Design
Frontend
To develop the client side of the application, we chose Flutter, which allowed us to create a single code base for VK mini Apps, Android and iOS platforms. This ensures high performance and a native user interface on all devices.
In the project architecture, we used an approach based on the BLoCK (Business Logic Component) pattern, which clearly separates logic and interface. This approach allows us to easily adapt and scale the application in the future.
Flutter
Work with video and audio content
Our application implements a functional video player that uses the video_player library. This player supports content playback on both popular iOS and Android platforms, as well as in web browsers, which ensures user-friendliness, regardless of device.
Working with wearable device
The Flutter Blue Plus library is used in the application to get heart rate data from Android wearable devices. This library provides effective tools for working with Bluetooth Low Energy (BLE) devices, which allows us to connect to wearable gadgets and read heart rate data in real time. With Flutter Blue Plus, we have established a stable connection to various BLE devices, which provides our users with accurate and timely data to monitor their health during workouts.
watchOS App
We have created an application for watchOS, which is written in Swift and is designed to track heart rate in real time. This application helps users to monitor their well-being and identify possible deviations in a timely manner.
The AdFox service, an advertising campaign management platform, has been integrated into the application. As part of the integration, we developed a native "I'll Be There" banner, which was added to the app. In addition, we have added advertising inserts when opening the application and banner sticks.
Advertisement
Backend
The MotherFit server part was developed in Java using the Spring Boot framework, which offers a convenient and flexible framework for creating applications. Due to the modularity of Spring Boot, all server functionality is organized as components, which allows you to effectively separate the application logic and reuse the code.
Spring Boot
Registration and authorization
To ensure the security of our application, we use Keycloak, a powerful solution that provides extensive registration and authorization management capabilities. With Keycloak, we can centrally manage users, their roles, and access rights, which greatly simplifies integration with various client applications and services.
We chose PostgreSQL to store our application's data. Thanks to the use of JSONB, we can store any set of fields for each object, which allows us to flexibly organize information.
Data storage
File storage
To store files, we use Yandex Object Storage, which supports the S3 protocol. This reliable and scalable solution allows you to efficiently work with files of various formats, from images for workout covers to video and audio exercise files. Thanks to the flexible S3 storage architecture, we can easily scale it as our application grows.
QA
(Quality assurance)
The project has implemented a full cycle of work: from analytics and test design to software testing and defect detection in the task management system. User stories and acceptance criteria were described, as well as test documentation was prepared.
Smoke, regression, and acceptance testing were conducted to ensure the quality of the software. In addition, load testing sessions were organized using Apache JMeter and the Yandex Load Testing service in the Yandex Cloud Console with the Yandex Tank load generator.
We have assembled a small team of five specialists to implement this project. The work was carried out in accordance with the Scrum methodology, and each stage took two weeks. At the end of each sprint, we presented the results of our activities to the customer and discussed the goals for the next stages. This approach allowed us to quickly respond to changes and adapt to new requirements.
Project management
Result
As a result of our work, we have successfully integrated the app with wearable devices, added support for four platforms, and updated the interface. MotherFit has become a full-fledged cross-platform product and is among the winners of the VK Start Apps accelerator.