Skip to content

EnzoFerroni/NotADiary

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

192 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NotADiary app icon

NotADiary

An emotional journal for iOS that goes beyond words. 🐾

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.


Platform Swift SwiftUI CloudKit License


Download on the App Store

πŸ“‘ Table of Contents


✨ About

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.


πŸ“± Screenshots

Log your feelings Learn about yourself Share what you love

🐢 Meet the Mascot

The puppy reacts to your entry with 12 mood states (six base emotions, each with an ultra variant). Here are the six core moods:

Happiness Sadness Anger
Fear Surprise Love

πŸš€ Features

  • πŸ“ 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 .card document type.
  • πŸ‘‹ Onboarding β€” a welcome flow with name setup and notification configuration.

πŸ› οΈ Tech Stack

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.


πŸ“‹ Requirements

  • iOS 26.0 or later
  • Xcode 26 or later
  • An iCloud account (for sync)
  • An Apple Music subscription (for the music features)

πŸ“‚ Project Structure

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.


🎯 Getting Started

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.xcodeproj

Pick a simulator or device and run with ⌘R. (CloudKit, MusicKit and Haptics work best on a real device.)


πŸ‘₯ Team

Enzo Ferroni
Enzo Ferroni

GitHub LinkedIn
Francisco Losada
Francisco Losada

GitHub LinkedIn
Gabriel GonΓ§alves
Gabriel GonΓ§alves

GitHub LinkedIn
Pedro Tessaro
Pedro Tessaro

GitHub LinkedIn
Vinicius Marques
Vinicius Marques

GitHub LinkedIn

πŸ“„ License

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.

About

🐾 An emotional journaling app for iOS β€” log feelings with text, photos, music and per-emotion haptics, guided by a mood-shifting puppy mascot. SwiftUI + Core Haptics + MusicKit + CloudKit.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Swift 100.0%