Skip to content

sung01299/picord

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Picord

Picture + Calendar = Picord

An iOS native app that transforms your photo library into a visual diary. Picord automatically organizes photos by date into a beautiful calendar interface, making it effortless to browse and reflect on daily memories.

iOS Swift SwiftUI License

The Problem

Users take hundreds of photos that get lost in cluttered camera rolls. There's no simple, passive, aesthetically pleasing way to browse photos chronologically. Picord solves this by creating a low-effort, high-reward photo journaling experience.

Features

📅 Calendar View

  • Monthly calendar interface with infinite scroll
  • Visual indicators for dates with photos
  • Curated dates show thumbnail previews
  • Quick navigation to today
  • Year/month picker for fast date selection

📸 Daily Photo Display

  • Story Mode: Full-screen Instagram-style photo viewing
  • Grid Mode: 3-column grid layout for curated photos
  • Add journal entries to any date
  • Edit and curate your favorite photos
  • Smooth transitions between viewing modes

🗺️ Map View

  • See your photos on an interactive map
  • Location-based photo clustering
  • Tap markers to view photos from that location
  • Explore your memories geographically

🏷️ Tags System

  • Organize photos with custom tags
  • Emoji support for visual categorization
  • Filter photos by multiple tags
  • Quick tag creation with MCEmojiPicker integration
  • View all photos for a specific tag

📱 Feed View

  • Chronological feed of all curated photos
  • Reversed scroll (newest first)
  • Date overlays on first photo of each day
  • Seamless integration with story mode

Architecture

Tech Stack

  • Platform: iOS 17.0+
  • Language: Swift 5.9
  • UI Framework: SwiftUI (100% native)
  • Data Persistence: SwiftData
  • Photos: PhotoKit (PHAsset, PHImageManager)
  • Design Pattern: MVVM (Model-View-ViewModel)

Project Structure

Picord/
├── Models/              # Data models (DayEntry, Tag, etc.)
├── Views/               # SwiftUI views
│   ├── CalendarView.swift
│   ├── FeedView.swift
│   ├── DailyPhotoView.swift
│   ├── MapAnnotationView.swift
│   └── TagSelectorSheet.swift
├── ViewModels/          # Business logic
│   ├── CalendarViewModel.swift
│   ├── FeedViewModel.swift
│   └── MapViewModel.swift
├── Services/            # Core services
│   ├── PersistenceManager.swift
│   ├── PhotoLibraryManager.swift
│   └── LocationManager.swift
├── Utilities/           # Helpers and extensions
│   ├── DesignSystem.swift
│   ├── ImageLoader.swift
│   └── Extensions/
└── Resources/           # Assets and resources

Key Components

PersistenceManager: Manages SwiftData operations for day entries, photo selections, tags, and locations.

PhotoLibraryManager: Handles PhotoKit integration, permission requests, and photo asset fetching.

ImageLoader: Async image loading with caching for optimal performance.

DesignSystem: Centralized design tokens (colors, typography, spacing, corner radius).

MapViewModel: Clustering logic for map annotations and location-based photo organization.

Dependencies

Privacy & Permissions

Picord requires the following permissions:

  • Photo Library Access: To display and organize your photos
  • Location Services: To show photos on the map (optional)

Privacy Promise:

  • Your photos never leave your device
  • No cloud sync, no servers, no tracking
  • All data stored locally using SwiftData
  • No ads, no analytics, no data collection

Usage

  1. First Launch: Grant photo library access → App indexes your photos by date
  2. Browse Calendar: Swipe between months, tap dates to view photos
  3. Curate Memories: Select favorite photos, add journal entries
  4. Organize with Tags: Create custom tags with emojis, filter by category
  5. Explore Map: View photos on an interactive map by location
  6. Reflect Daily: Use the feed to scroll through your visual diary

Roadmap

v1.0 (Current)

  • ✅ Calendar view with photo aggregation
  • ✅ Daily photo display (Story & Grid modes)
  • ✅ Feed view with chronological scrolling
  • ✅ Map view with clustering
  • ✅ Tag system with emoji support
  • ✅ Journal entries for dates
  • ✅ Native swipe gestures

v2.0 (Planned)

  • Week view alternative layout
  • Month summary statistics
  • Quick capture from calendar
  • Favorites / starred dates
  • Search & filter functionality
  • First-time user experience (FTUE)
  • Export and sharing features
  • iCloud sync (optional)

Contact

For questions, feedback, or bug reports, please open an issue on GitHub.


Built with ❤️ using SwiftUI

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages