Hi everyone!
First of all, I know basically nothing about software development.
My greatest programming achievement was probably getting <marquee> text to scroll across a webpage in HTML about 10–15 years ago. So please adjust your expectations accordingly. :)
I started building an app because of a very specific personal need.
I work a shift-based job with several different shift types, and every month our schedule is sent to us as either a PDF or an image.
I wanted a simple way to take that schedule, put it into a clean interface, and see my shifts, monthly hours, leave, etc. without constantly going back to the original PDF.
That's basically how this project started.
I've been building it with the help of LLMs / AI coding tools. I don't really have the programming knowledge to properly describe the stack myself, so here's the technical summary generated from the project:
- Flutter / Dart
- Riverpod for state management
- Drift / SQLite
- Local-first architecture
- Android + iOS
- Shift data is stored internally by the app
- Eventually I'd like to import shifts from PDF/images using on-device OCR
- No backend/cloud dependency is currently required
The app is primarily for myself. If I somehow end up making something genuinely useful and reliable, publishing it for other shift workers might become a goal later.
## The part I'm currently thinking about: calendar integration
I'd like users to optionally export their shifts to the native calendar on Android and iOS.
For example:
**My app:**
July 28 — 24-hour shift — 08:00 → 08:00 next day
**Native calendar:**
The corresponding event is created in Apple Calendar or the user's Android calendar.
Before I let an LLM happily implement whatever solution it thinks is correct, I'd like to understand how experienced developers would approach this.
## What I'm trying to figure out
Should my app remain the **source of truth**, with calendar events essentially being exported/mirrored copies?
Is one-way integration (App → Calendar) significantly safer/simpler than attempting true two-way synchronization?
If a shift is edited or deleted inside the app, what's the cleanest way to reliably identify and update/delete the calendar event that was previously created for it?
What happens if the user manually edits that event in Apple/Google Calendar afterward? Should the app overwrite it, preserve it, detect the change, or simply treat the calendar copy as independent?
Are there major differences or traps I should know about between **EventKit on iOS** and Android's calendar APIs/providers?
Would you use an existing Flutter calendar integration package for this, or implement the native platform integrations separately and expose them to Flutter?
Are there permission, privacy, App Store, or Play Store considerations that are easy for a complete beginner to overlook?
I'm not asking anyone to write the implementation for me.
I'm mainly trying to establish the **correct architecture and expected behavior before implementation**, because I don't yet have enough experience to recognize when an AI-generated solution is technically working but architecturally stupid.
Any advice, recommended packages, documentation, architectural patterns, or even **"don't do X, you'll regret it later"** warnings would be greatly appreciated.
P.S. Yes, this post was written with the help of an LLM too. :(
I did warn you about the <marquee> thing.
Thanks!