Inspiration
Sometimes I want to get estimates about various aspects of my health without having to go to the doctor. Vitamin D is one of those things that can easily be automated. The idea that I can just have an app on my phone to tell me my vitamin D intake from the sun at the end of the day would solve just that.
What it does
This app calculates vitamin D intake from the sun when the user is outdoors, and the UVI is high enough. The app figures out if the user is indoors by using the location's accuracy property. A higher accuracy means the user is most likely outdoors and has a direct connections with the satalites.
How we built it
There are three components of this app:
- location: Use the phone's location service to determine if the user is indoors or outdoors
- UVI (UV index): Call the openuv.io API to get hourly UV data and other cool stuff too
- Calculation: Formulas are based on various research studies (a picture is shown of the formulas)
A few notes for testing and the video: because of Philly's unfortunate weather, the UVI was way too low, to combat this, the API was called with Mumbai, India coordinates which had a UVI of 8 at the time of recording.
Challenges we ran into
Making a background service on Android was a struggle especially since there are many ways to do it. Finding a free API for UVI was pretty hard since it is a niche type of weather data.
Accomplishments that we're proud of
Surprisingly there are not many apps on the play store similar to this one, so definitely one of a kind.
What we learned
I learned android development and Kotlin (this is my first time).
What's next for Sun Meter
The app's name does not include vitamin D, and there is a reason for that. It has to the potential to be much more than just a vitamin D calculator. These are some of the future on the roadmap:
- Sunscreen usage reminder (based on UVI, location, and after vitamin D 100%)
- Use AI to determine user's skin type (I-VI)
- Save user data (vitamin D production) to display weekly/monthly reports in the app
- Include educational information about UVI, solar radiation, etx (just in case the user is curious)
- Allow user to set background update frequency to preserve battery if needed
- Lower background update frequency if battery is low or phone is in battery saver mode
Built With
- kotlin
- xml
Log in or sign up for Devpost to join the conversation.