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:

  1. location: Use the phone's location service to determine if the user is indoors or outdoors
  2. UVI (UV index): Call the openuv.io API to get hourly UV data and other cool stuff too
  3. 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:

  1. Sunscreen usage reminder (based on UVI, location, and after vitamin D 100%)
  2. Use AI to determine user's skin type (I-VI)
  3. Save user data (vitamin D production) to display weekly/monthly reports in the app
  4. Include educational information about UVI, solar radiation, etx (just in case the user is curious)
  5. Allow user to set background update frequency to preserve battery if needed
  6. Lower background update frequency if battery is low or phone is in battery saver mode

Built With

Share this project:

Updates