Capture how you feel with text, photos, music, and haptic feedback that turns every emotion into a physical sensation β guided by a little puppy mascot that mirrors your mood.
- About
- Screenshots
- Meet the Mascot
- Features
- Tech Stack
- Requirements
- Project Structure
- Getting Started
- Team
- License
NotADiary ("not a diary") is a journaling app focused on emotional check-ins. The idea is simple: instead of just writing, you tie each entry to an emotion, a song, and photos β and the device itself responds to that emotion through vibration patterns (haptics) carefully designed for each feeling.
A mascot follows along with every entry, shifting its mood to match the emotion you log β giving your journal real personality.
The puppy reacts to your entry with 12 mood states (six base emotions, each with an ultra variant). Here are the six core moods:
- π Journal entries β title, text, date and the emotion of the moment.
- π Emotional mascot β a character that mirrors the entry's mood, with 12 states (happiness, anger, surprise, fear, love, sadness, and their intense variants).
- π³ Emotional haptics β unique vibration patterns built with Core Haptics for each emotion (e.g. a "heartbeat" for love, a "tremor" for fear, an "explosion" for anger).
- π΅ Apple Music integration β search and attach a song to each entry via MusicKit, with in-app playback and Music Haptics support.
- π· Photos β attach images to your entries in a visual gallery.
- βοΈ iCloud sync β all entries and preferences are stored and synced with CloudKit.
- π Reminders β schedule notifications to remember to log your day.
- π€ Shareable cards β export and share entries as a custom
.carddocument type. - π Onboarding β a welcome flow with name setup and notification configuration.
| Area | Technology |
|---|---|
| UI | SwiftUI |
| Persistence / Sync | CloudKit (iCloud) |
| Music | MusicKit Β· MediaPlayer Β· AVFoundation |
| Haptics | Core Haptics Β· MediaAccessibility (Music Haptics) |
| Notifications | UserNotifications |
| Architecture | MVVM |
There is also exploratory work integrating HealthKit (State of Mind) to log mood in the Health app.
- iOS 26.0 or later
- Xcode 26 or later
- An iCloud account (for sync)
- An Apple Music subscription (for the music features)
NotADiary/
βββ NotADiaryApp.swift # Entry point
βββ Models/
β βββ JournalModels/ # JournalEntry, Entry, Mascot, Image
β βββ ShareModels/ # Card (Transferable / UTType)
β βββ MusicKitModels/ # Music Haptics
β βββ HealthKitModels/ # State of Mind (exploratory)
β βββ EmotionHapticEngine.swift # Per-emotion vibration patterns
β βββ NotificationsModel.swift
β βββ PreferenceModel.swift
βββ ViewModels/
β βββ CloudKitVM/ # Entry & preference sync
β βββ MusicKitVM/ # Music player and search
β βββ JournalVM/ # Mascot logic
β βββ ShareVM/ # Card generation & conversion
β βββ HealthKitVM/
βββ Views/
β βββ OnboardingViews/ # Name & notification setup flow
β βββ JournalViews/ # List, create, edit and view entries
β βββ ShareViews/ # Shareable card
β βββ Components/ # Reusable components (mascot, music, photosβ¦)
βββ Extensions/
βββ Assets/ # Colors, mascots (SVG) and icons
The architecture follows the MVVM pattern, cleanly separating data models,
presentation logic (ViewModels with @Observable/ObservableObject) and the
SwiftUI views.
Requirements: Xcode 26+, an iCloud account, and an Apple Music subscription for music features.
# Clone the repository
git clone https://github.com/EnzoFerroni/NotADiary.git
cd NotADiary
# Open the project in Xcode
open NotADiary.xcodeprojPick a simulator or device and run with βR. (CloudKit, MusicKit and Haptics work best on a real device.)
Released under the MIT License. Β© 2026 Enzo Ferroni, Francisco Losada, Gabriel GonΓ§alves, Pedro Tessaro and Vinicius Marques.
Made with π, haptics and a very expressive puppy.













