CliffCheck is an iOS app that alerts you when beach tide conditions are favorable.
It includes:
- Tide threshold alerts
- Time to sunset
- Push notification alerts for favorable tide conditions
- Xcode 15+
- Swift 5.9+
- iOS 16+
- A valid Apple Developer account for push notifications
-
Clone the repo:
git clone https://github.com/scottbishop/cliffcheck.git cd cliffcheck -
Open the project in Xcode:
open CliffCheck.xcodeproj
-
Configure push notifications:
- Enable Push Notifications and Background Modes → Remote Notifications in Signing & Capabilities
- Ensure your provisioning profile has the
aps-environmententitlement
-
Add Secrets.plist in /CliffCheck which should contain
WorldTidesAPIKey=abc123 -
Add GoogleService-Info.plist in /CliffCheckfrom which can be found in your firebase project that enables FCM, Crashlytics, and Analytics.
-
Build and run on device or simulator
Tide alerts are sent via Firebase Cloud Functions on a daily schedule using the WorldTides API to a FCM notifications topic.
- Functions are located in the
/functionsdirectory sendTideAlertis scheduled for 6:00 AM PT daily usingonSchedule
- Node.js 22
- Firebase CLI
- Firebase project already initialized
cd functions
npm installfirebase functions:config:set worldtides.key="YOUR_API_KEY"Confirm with:
firebase functions:config:getFrom the functions directory:
cd functions
firebase deploy --only functionsUsers are subscribed to the tide-updates topic. Notifications are sent if the tide drops below a configured threshold for a given beach.
- Add more beaches
- Customize alert thresholds per user
- iOS widget for the homescreen
Made with ☕ and ocean stoke by Scott Bishop
Apache 2.0 License — free to use, modify, and share.