Skip to main content
All projects

Reading Journey

By Alex Vasiliu, iOS Solution Architect

iOS appApp Store

Reading Journey is an offline-first book tracking app built for readers who want one place to manage their entire library. The camera uses the Vision Framework and Gemini AI to extract a title, author, and ISBN from a physical cover in seconds, removing all manual entry. Users log reading sessions, track progress toward annual goals, and write timestamped journal entries with reactions and notes. Books are organised into custom collections, and a dedicated import flow ingests complete Goodreads or Storygraph libraries. Rich visual statistics surface monthly pace, cumulative page counts, and a map of every location where a session was recorded throughout the year, making long-term reading habits easier to understand at a glance.

Reading Journey screenshot 1Reading Journey screenshot 2Reading Journey screenshot 3

Tech stack

SwiftUI
MVVM
Coordinator
GRDB
Vision Framework
SPM
Gemini AI
Google Books API
Lottie

Technical details

  • SwiftUI with MVVM design pattern
  • Coordinator pattern for hierarchical navigation management (AppCoordinator, HomeCoordinator, CollectionsCoordinator, InsightsCoordinator, SettingsCoordinator)
  • Generic FlowState<T> supporting push, present and root navigation transitions
  • GRDB (SQLite ORM) for offline-first data persistence with migrations and reactive @Query property wrapper
  • Vision Framework for real-time document edge detection and OCR text recognition from book covers
  • AVFoundation for live camera capture, photo output and flash control
  • CoreImage for image processing and perspective correction
  • CoreLocation for GPS-based reading location tracking
  • Swift Package Manager for dependency management
  • RevenueCat for subscription and in-app purchase management with paywall UI
  • AmplitudeSwift for analytics and event tracking via a consumer-based multi-destination pipeline
  • Kingfisher for async image loading and caching of book covers
  • Cloudflare Workers serverless backend with Durable Objects for session state machines (scan, search, import)
  • Google Gemini API for AI-powered ISBN, title and author extraction from cover images
  • ISBNDB and Google Books API as primary and fallback book metadata sources
  • DeviceCheck for device attestation and API security token generation
  • ZIPFoundation for ZIP file handling during library exports
  • Lottie for native rendering of high-quality animations
  • OSLog for structured system logging and Cloudflare R2 for immutable audit trail storage
  • iOS Share Extension for adding books from other apps via the share sheet
  • Spices configuration menu in DEBUG builds for database inspection and feature toggles