Skip to content

A SwiftUI app that displays a list of books by genre, featuring favorites management and reactive UI using @State and @binding.

Notifications You must be signed in to change notification settings

asperez26/FavoriteBooksApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

📚 Favorite Books App (SwiftUI)

An iOS SwiftUI application that displays a list of books grouped by genre, allowing users to mark their favorite titles and explore details.
Built with @State, @Binding, and NavigationStack to demonstrate reactive UI and modern SwiftUI architecture.
Developed as part of an academic project at Seneca Polytechnic.


🚀 Features

  • 📖 Book List by Genre — View books organized in sections by genre
  • ❤️ Favorites Management — Mark or unmark books as favorites with state synchronization
  • 🔍 Book Details — View book cover, author, and description on a dedicated screen
  • 🧭 Smooth Navigation — Uses NavigationStack and NavigationLink for detail transitions
  • 💾 Local Data — Sample data file showcasing list rendering with ForEach
  • 🎨 Modern SwiftUI Design — Minimal and responsive layout using declarative syntax

🧩 Architecture Overview

The app follows a declarative SwiftUI structure, using reactive data flow between views.

Models

  • Book.swift — Defines the book model (Identifiable, Hashable) with properties for title, author, genre, and favorite state
  • SampleData.swift — Contains static sample book data used to populate the list

Views

  • ContentView.swift — Root view with tab navigation for All Books and Favorites
  • BookDetailView.swift — Displays selected book’s details and favorite toggle
  • FavoritesView.swift — Shows all user-favorited books

Entry Point

  • FavoriteBooksAppApp.swift — App’s main entry using @main and WindowGroup

🧠 Key Technical Highlights

  • Framework: SwiftUI
  • State Management: @State and @Binding
  • Navigation: NavigationStack + NavigationLink
  • UI Components: List, Section, TabView, Image, Toggle
  • Data Flow: Real-time updates using reactive state bindings
  • Code Design: Struct-based modular views with helper methods

📸 App Preview


👩‍💻 Author

Andrea Selina Perez
📍 Seneca Polytechnic – Computer Programming (iOS & Data Structures focus)
📫 andreaselinaperez26@gmail.com
🌐 GitHub Profile


If you liked this project, consider giving it a star on GitHub!

About

A SwiftUI app that displays a list of books by genre, featuring favorites management and reactive UI using @State and @binding.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages