We took inspiration from the health apps on iOS and Android, which we found for casual users (who may only have the data that is collected automatically) to be a bit confusing. We wanted to improve on the app’s UI/UX as well as incorporating mental health into the insights provided from the platform. Your Apple Watch alerts you when your heart rate is abnormally high. We thought to do something similar with watching over mental health.
What it does
Flow is a redesign of a typical health app that encapsulates many of the ideal principles of such an app. Firstly, Flow uses deep-learning based mood detection that is fast and portable, which uses a user’s images. This allows Flow to leverage user data to make a prediction about their user’s mood. All of this data and its associated processing is performed via the @protocol backend, which allows for very secure storage of backend data on individualized servers. All this occurs in the backend, and the user sees only an accessible, convenient front-end interface.
How we built it
We used a combination of the Dart and Flutter programming frameworks to first build a user interface that was both interactive yet simple. We utilized @protocol to safely and securely handle personal data and ensure users data remained their own. Then, we linked up this front-end framework to the Google Cloud service which was able to take in images for the relevant mood detection.
Challenges we ran into
A large challenge is designing a model to understand mood and what people are going through without any additional work from them. We believed that this is the primary way people interact with health apps, and wanted to preserve this structure. Our solution of aggregating the health data with information that could be understood from a user’s photos seemed like a natural way to accomplish this.
Accomplishments that we're proud of
It was our first time venturing into app development, and in particular we had never used the Flutter/Dart stack. We benefited greatly from taking the time to learn these languages rather than attempting to use languages that were a bit more comfortable. This unlocked the vast capabilities of the language, such as the animations and transitions we incorporated into our design.
What we learned
This is our first time building a smartphone app, so we learned that there are several limitations to building such an app which are not necessarily present in the web-based setting. For example, with smartphone apps, one does not have access to all the APIs or libraries, since many of them are only compatible with computer-based programming languages or frameworks.
We’ve also gained some interesting insights on what constitutes a “good” user interface. Throughout, we explored through different examples and trials what combination of colors, positions, and diagrams would make the most aesthetically appealing experience for the user.
What's next for Flow
Firstly, we want it so that Flow will have integration with powerful health devices (Apple Watch, Fitbit, etc.). This would give us even more data to use to make accurate predictions, such as reading from sensors in realtime. Also, we wish to improve interactivity in the mental-health-focused section of app, including connecting to mental health services if needed and suggesting different ways to reduce stress/improve mental health (i.e. yoga, art, exercise). Lastly, regarding the @protocol backend, which we feel is very important to the app, we want to leverage it to perform data analysis without uploading images to external server.