Suncheck allows you to record and archive your sunlight intake. Build healthy habits by learning how much solar energy you are getting.
- 500+ downloads on Appstore
- 200+ upvotes on Product Hunt
Due to the elongated pandemic, the time we spend indoors has increased dramatically. With less time spent under natural sunlight the overall anxiety and depression levels have risen in individuals.
If we can keep track and visualize the time we spend in the sun, we could easily check and adjust our lifestyles to feel better.
1. Record Your Time In The Sun
Users can record the time they spend under the sun by simply tapping the center circle. Once it starts recording, the circle radiates like a sun.
A notification is sent after 15 mins
2. Visualizing Data
The main button changes color after every 15 minutes has passed, so that it gives users a good idea about how much sun they have received.
3. Real Time Walking Sensor
Once the user allows location access, Flutter's GeoLocation updates their current location. With this data, the app detects the user's movement and sends notifications accordingly.
Serverless Cross-Platform Mobile App
Framework | Client | Database | External API |
---|---|---|---|
Flutter | ios | SQLite | Open Weather API |
android | SharedPreference |
Flutter / Dart Version
Flutter 2.0.5 • channel stable • https://github.com/flutter/flutter.git
Framework • revision adc687823a (3 months ago) • 2021-04-16 09:40:20 -0700
Engine • revision b09f014e96
Tools • Dart 2.12.3
List of Flutter Dependency Used
provider: ^4.3.2+3
weather: ^2.0.1
geolocator: ^7.2.0+1
sqflite: ^2.0.0+3
path: ^1.8.0
path_provider: ^2.0.2
intl: ^0.17.0
shared_preferences: ^2.0.6
geocoder: ^0.2.1
avatar_glow: ^2.0.1
dotted_line: ^3.0.0
jiffy: ^4.1.0
flutter_local_notifications: ^5.0.0+1
timezone: ^0.7.0
class Record {
Record({int id, DateTime date, int energy, String location}) {
this.id = id;
this.date = DateTime.parse(DateFormat('yyyy-MM-dd 00:00:00.000').format(date));
this.energy = energy;
this.location = location;
}
Map<String, dynamic> toMap() {
return {'id': id, 'date': date.toString(), 'energy': energy, 'location': location};
}