If you missed my last post introducing the Spontaneity app, I shared some of the ideas I have for the main features of this ADHD-friendly productivity tool — a mobile app designed to balance structure with flexibility by bringing meaningful randomness into daily routines. Inspired by my own journey, Spontaneity aims to help users break free from rigid routines and discover joy in the small, unexpected moments each day can offer.
Spontaneity App Development Recap: ADHD and Productivity Tools in Focus
The past few weeks have been a whirlwind. I had a weeklong trip with my family, came back sick, and have been dealing with some general life chaos. Despite these challenges, I’m excited to get back to working on my app idea and sharing this building in public journey with you all.
Key Development Decisions for the Spontaneity App
After some back and forth, I’ve decided to launch the app using SQLite as a local backend to get it off the ground quickly and iterate from there. As development progresses, I plan to transition to using Supabase for backend services and authentication.
Current Focus
Creating Customized Reminders for ADHD Users
Scope
I’m currently defining the scope of creating more customized reminders while keeping complexity manageable. An easy start would be scanning the reminder for certain keywords to place it in a specific category. Each category would have a table of gentle reminder messages, making them feel more genuine than a generic “Do [reminder task you entered].”
Long-term Vision
Implementing AI-generated reminder messages where users can define the tone of the messages they receive.
Optimizing Data Schema for SQLite and Push Notifications
SQLite Setup
Now that I’ve decided on initially launching with a local database using SQLite, I’m revisiting my initial data schema draft and making necessary adjustments. The goal is to ensure scalability when transitioning to Supabase with PostgreSQL while keeping things simple for now.
Tables Structure
To handle push notifications effectively, I’ll set up two separate tables:
- Active Notifications: Includes current and snoozed reminders.
- Completed Notifications: Stores completed tasks.
This setup will streamline rescheduling active notifications when the app or device restarts.
Weekly Goals: Integrating SQLite and Building a More Flexible Spontaneity App
- Data Schema Review: Get my data schema to a good place and run it by a backend specialist friend for feedback. He suggested dbdiagram.io as a tool to help create, map, and share my schema.
- SQLite Integration: Set up SQLite in the app.
- UI/Component Libraries: Explore UI/component libraries for React Native and decide if any are worth integrating. I’m open to suggestions!
Challenges: Managing Push Notifications with a Local Database in Spontaneity App
One of the drawbacks of using a local database like SQLite is handling push notifications. With a local DB, I’ll need to set the next notification time and schedule an Expo notification when the reminder is created. If the app or device restarts, I’ll have to reschedule all notifications for currently active reminders. By setting up separate tables for active and completed notifications, I can efficiently manage this process without parsing through all notifications ever created.
The Future of Spontaneity, a Productivity App for Mental Health
I’m excited to continue this journey and share my progress with you all. Stay tuned for more insights and updates as I work on balancing structure, creativity, and spontaneity in the Spontaneity app.
Let’s Connect! Share Your React Native and App Development Tips
Do you have experience with handling notifications in mobile apps or recommendations for UI/component libraries for React Native? How have you managed data schema transitions in your projects? I’d love to hear your thoughts! Feel free to reach out to me on Mastodon, where I also post more frequently.
If you’d like to get in contact, try reaching me on Bluesky first. LinkedIn works too, but I don’t check it often.