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

Share this project:

Updates

Submission history