LawnTracker is an open source React Native (Android) app designed to keep track of lawn maintenance tasks and notify you when they are due. The app can deal with duration based, calendar based, and growing degree day based tasks.
Weather data by Open-Meteo.com
- Keep track of tasks that are weather dependent (based on growing degree days) and non-weather dependent.
- Estimate when growing degree day targets will be met based on weather forecast (or linear projection when forecast isn't available)
- Notifications when tasks are due
- No login required - the app all runs locally from your phone
- Light/dark mode
The app is intended to be made available on F-Droid and the Google Play Store.
No setup is required. To add a new tracker, press the plus button on the home screen and enter the tracker details.
- Whilst React Native is cross-platform, I haven't tested the app on iOS as I don't own an Apple device or XCode.
- The app has been designed to be serverless. Instead of running on the server, the app periodically spins up background tasks using the react-native-background-task library to see if tasks are overdue, then generates notifications using the notifee library.
- Due to iOS restrictions - if the app was ported to iOS, notifications won't be possible once the app is terminated under the current serverless architecture.
Complete the React Native - Environment Setup instructions till "Creating a new application" step.
To start Metro, run the following command from the root of the project:
# using npm
npm start
# OR using Yarn
yarn start
Let Metro Bundler run in its own terminal. Open a new terminal from the root of the project. Run the following command:
# using npm
npm run android
# OR using Yarn
yarn android
If everything is set up correctly, you should see your new app running in your Emulator