First, the eye candy, screenshots of my rudimentary design skills.
I used a mix of color schemes from Material Design, inspiration from apps like Fable, GoodReads, and Clubhouse, to create a simple, clean, and functional design.










Architecture Overview
SwiftUI Structure
- Main App:
TheEnchantedQuillApp.swift
- Entry point with login state management - Navigation:
MainTabView.swift
- Tab-based navigation system - Views: Modular view structure with main sections:
HomeView.swift
- Feed and recommendationsBookshelfView.swift
- Digital book organizationClubsView.swift
- Book clubs and communitiesChatView.swift
/ChatScreen.swift
- Messaging functionalityProfileView.swift
- User profiles and statistics- Authentication:
LoginScreen.swift
,CreateAccountScreen.swift
Design System
- Color System: Comprehensive dark academia theming in
DarkAcademiaColors.swift
Color.DarkAcademia.*
- Dark theme colorsColor.LightAcademia.*
- Light theme colors- Pre-defined gradients for consistent styling
- Typography: Custom text field styling in
DarkAcademiaTextFieldStyle.swift
- Fonts: Custom fonts loaded via Info.plist (Beachwood, Beachwood Sans, Parisienne, etc.)
Dependencies
- StreamChat: Chat functionality via Swift Package Manager
- StreamChatUI: UI components for chat interface
- Local package reference: ”../stream-chat-swift”
Configuration
- Credentials:
Config/Credentials.swift
for API keys (seeCredentials.swift.example
) - Bundle ID:
com.theenchantedquill.app
- Deployment Target: iOS 17.4+
- Custom fonts: Automatically loaded via Info.plist UIAppFonts array
Media Assets
- Fonts: Located in
TheEnchantedQuill/fonts/
directory - Images: Logo variants and book imagery in
media/
and Assets.xcassets - Video: Background teaser video (
teaser.mp4
) for login screen
Theme Management
- Environment-based color scheme detection using
@Environment(\.colorScheme)
- Consistent theming through
colorScheme == .dark ? Color.DarkAcademia.* : Color.LightAcademia.*
pattern - Gradient support with predefined academic color schemes
Navigation Flow
- State-based navigation with
@State private var isLoggedIn
- Tab-based main interface after authentication
- Full-screen covers for modal presentations
Video Background
- AVPlayerViewController implementation for background video playback
- Auto-looping video with proper resource handling
- Graceful fallback for missing video assets
File Organization
- Main source:
TheEnchantedQuill/
directory contains all Swift files - Configuration:
Config/
subdirectory for credentials and settings - Assets:
Assets.xcassets
for images,fonts/
for custom typography - Documentation: Root-level markdown files for project planning and setup
- Screenshots:
screenshots/
with light/dark theme examples