Inspiration
I find it difficult to commit, and failing discouraged me. So I built My Habits for myself first, to make consistency flexible and stress-free. Failing today does not have to mean failing tomorrow.
What it does
- Track habits with one simple checkmark per day.
- No due dates, complete dates in the past or future.
- Gentle and intelligent reminders that adapt to you.
- Turn habits into Challenges and receive awards.
- Personalize with variety of widget options, habit colors, and layouts.
How I built it
- Native SwiftUI, utilizing some UIKit components.
- iOS 18+
- SwiftData for persistence
- iCloud Documents for backups.
- WidgetKit for interactive widgets
- Custom SwiftUI containers for layout and drag and drop functionality.
Challenges
- SwiftData
- Evolving the concept of this app through its development. As it evolved, some things had to be redesigned or scrapped.
- Balancing simplicity with customization.
- Edge case testing functionality.
Accomplishments
- Native-feeling UI, interactive widgets.
- Quick onboarding.
- Robust completion system.
- Challenge badge design and flexibility.
What I learned
During this process I learned that there is a great difference between getting something done and making it ready. It's rather simple to create a feature, but then test the edge cases, consider different environments and even then perhaps reevaluate if it is even useful, is part of a much longer process.
What’s next
- Shortcuts and automation actions.
- Shared Challenges, share your progress with others.
- Journal integration, get journaling suggestions from your habits.
- Potential iPad version.
Built With
- swift
- swiftdata
- swiftui

Log in or sign up for Devpost to join the conversation.