j-curran.com / work / Shot Scout ↗ code
project_12 · 2025 · 6 months · Solo

Shot Scout

A Flutter app for photographers to pin ideal shooting locations, track gear, and plan shoots around golden hour and weather.

6 months Stack: Flutter · Dart
the premise

A mobile app for finding and remembering great shooting locations.

When you find a great spot — good light, interesting geometry, a view worth coming back to — you shouldn't lose it. Pin it, note the conditions, and come back when the timing is right. A scouting companion that lives on your phone and doesn't send your location history to the cloud.

what it does

Pin locations, track conditions, calculate sun times.

Location Pinning

GPS coordinates auto-captured and stored locally. Never lose a good spot again.

Shooting Conditions

Track ideal times of day, weather patterns, and gear notes for each location.

Solar Calculations

NOAA algorithms compute accurate golden hour, blue hour, sunrise/sunset for any location.

Offline-First

Everything stored locally with Hive. No cloud sync, no analytics tracking, no account needed.

technologies

Frontend: Flutter (Dart) for iOS/Android from single codebase. Provider for state management.

Local Storage: Hive for fast, lightweight key-value storage. No SQL, no server.

Services: Geolocator for location, flutter_map for OpenStreetMap tiles, NOAA API for solar data.

what I learned

Constraints clarify priorities. "Offline-first" meant every feature had to justify its weight. No cloud backend forced me to think about what actually matters: the core workflow of finding and remembering a spot.

Solar calculations were the hardest part—not the math, but getting the UX right. A time is just a number; communicating *why* that time matters (golden hour vs. blue hour) required a lot of iteration.

status & next

Core features functional. Not currently on app stores. Planned: weather API integration for condition tracking, push reminders when conditions are right, and in-app photo capture for direct comparison with saved locations.

next →
Weather API
© 2026 · case study updated 2026-05-25 ↑ view source on github