VICKI PETROVA

Note Jar

Turn micro-gratitude into a durable daily habit

Overview

NoteJar was my submission for Apple’s Swift Student Challenge in 2024. It’s an iOS 17+ app that helps practice gratitude consistently. The problem: journaling apps often drift into sporadic use because they demand long entries and delayed rewards. NoteJar reduces friction and raises salience: I drop short notes into themed “jars,”, and get gentle reminders and bite-size, research-based tips. A lightweight stats view closes the feedback loop by making progress visible without becoming too gamified. The core idea is a tangible metaphor (a jar) coupled with small prompts and variable rewards to keep the practice emotionally resonant and sustainable and also sharable with others, supporting relationships with self and others through mindful micro-reflections.

Research grounding

Gratitude interventions are linked to higher well-being and prosocial outcomes; classic randomized studies show that brief, regular “counting blessings” exercises improve life satisfaction and affect compared to controls. Habit formation typically requires sustained repetition with consistent cues; a longitudinal model found a median of ~66 days for behaviors to become automatic (range 18–254), which motivates steady, low-effort practice and patient expectations. The Fogg Behavior Model frames adherence as the convergence of motivation, ability, and a prompt; NoteJar reduces ability barriers (one-line notes. Finally, choice architecture and subtle “nudges” can steer healthier defaults; the app’s jars, default reminders, and lightweight stats act as permissive, user-controlled nudges rather than coercive rules. Visual ambient feedback is known to support adherence in everyday settings, which informed NoteJar’s minimal stats and random-draw reveal.

Features

  • 🫙 Create jars to organize notes
  • 🚨 Reminders to stay consistent (gratitude/mindfulness)
  • 👀 Draw a random surprise note
  • 🧘‍♀️ Daily gratitude tips grounded in research
  • 📊 Statistics to track progress

Demo

Design & interaction rationale

Jars externalize memory and make the practice feel tangible; compartmentalizing by theme (e.g., “people,” “wins,” “moments”) reduces decision cost and primes recall. Random draws create a gentle variable-reward loop: I never know which past note I’ll see, which keeps retrieval fresh and emotionally engaging without relying on streak anxiety. Reminders are optional and sparse. Stats are intentionally light (entries over time, streaks, draw count). They make progress visible while avoiding leaderboards or social comparison. Micro-flows are optimized: single-field capture, one-handed use, and a fast path to “Add another.” The visual language stays calm and legible; the “draw” animation emphasizes reveal and pause to encourage reflection. Together, these choices reduce friction, increase perceived immediacy of reward, and support the long horizon needed for habit formation.

Note Jar photo 1
Note Jar photo 2
Note Jar photo 3

Technical implementation

  • Platform & stack. iOS implemented in Swift + SwiftUI with SwiftData for local, on-device storage.
  • Architecture. MVVM-style separation of concerns: Views never query the model directly. User intents (e.g., addNote, drawRandom, scheduleReminder) are funneled through a ViewModel, which validates input and forwards mutations to modelContext for persistence.
  • Data model & queries. @Model types for Jar and Note, with SwiftData Predicates for filtered lists (e.g., by jar, date range) and efficient random selection. Derived properties support lightweight stats without scanning full datasets.
  • Privacy. All user data is stored on-device via SwiftData. There is no external server.
  • Performance. Predicated fetches, minimal view recomposition, and batched writes keep interactions smooth. The random-draw path uses an index-bounded predicate and single fetch to avoid loading full collections.
Note Jar photo 1
Note Jar photo 2
Note Jar photo 3

Research Alignment

  • Cognitive scaffold for everyday reflection; lightweight nudges and a tangible “jar” metaphor as an interface for memory and attention.