Skip to content

samuelhe52/AniShelf

Repository files navigation

AniShelf 📺

A beautiful, native iOS app for tracking and managing your anime library.

中文 · 使用教程

📸 Screenshots

AniShelf featured library card AniShelf library list view AniShelf poster grid view
AniShelf anime detail overview AniShelf watch management sheet AniShelf library stats overview

✨ Features

  • 📚 Library Management - Keep track of all your anime in one place
  • 🔍 Smart Search - Find anime using The Movie Database (TMDb) with multi-language support
  • 🎨 Beautiful UI - Native SwiftUI interface, polished and consistent design language
  • 📊 Track Progress - Monitor your viewing progress and status; Record scores for animes
  • 👤 Library Profile - Overview your library with a dedicated profile page
  • 💾 Backup & Restore - Export and import your library data
  • 🌍 Multi-language - Support for anime titles and descriptions in multiple languages

📱 Availability

AniShelf is currently available on the iOS App Store. You can download it here: App Store Link. The app is available in all countries except for China Mainland.

Note that new features will first be released on TestFlight before being pushed to the App Store. You can join the TestFlight beta here: AniShelf TestFlight.

You still need a TMDb API key to use the app, which can be obtained for free from The Movie Database.

🛠 Tech Stack

  • Swift 6.1+ with strict concurrency
  • SwiftUI for modern, declarative UI
  • SwiftData for data persistence
  • TMDb API integration for anime metadata
  • Kingfisher for efficient image loading and caching

🗺 Plans

  • More granular watch progress tracking, such as episode-level progress
  • Watch-data sync with platforms such as TMDb, Bangumi, and AniList; this is a large feature and may take time

📋 Build/Run Requirements

🚀 Getting Started

  1. Clone the repository

    git clone https://github.com/samuelhe52/AniShelf.git
    cd AniShelf
  2. Open in Xcode

    open MyAnimeList.xcodeproj
  3. Build and run

    • Select your target device or simulator
    • Press ⌘R to build and run
    • On first launch, you'll be prompted to enter your TMDb API key

🔧 Development

Build Commands

# Clean build artifacts
make clean

# Refresh Swift package dependencies
make refresh-packages

# Format code
make format

# Lint code
make lint

# Build, install, and launch on a connected iPhone
make run-device

# Reset the TMDb API key before launching on a connected iPhone
make run-device-reset-tmdb-api-key

Project Structure

Note: The app was renamed from MyAnimeList to AniShelf. Only the display name and the top-level repository folder were changed; internal directory and file names still use MyAnimeList for simplicity and backward compatibility.

  • MyAnimeList/ - Main iOS application
  • DataProvider/ - SwiftData persistence layer (Swift Package)

For detailed architecture and development guidelines, see AGENTS.md.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Commit Message Guidelines

This project follows conventional commit message format:

  • Use imperative mood ("Add feature" not "Added feature")
  • Capitalize the first letter
  • Keep subject line under 50 characters
  • Add detailed body if needed (wrap at 72 characters)

Examples:

Add Library search functionality to SearchPage

Fix bug in backup & restore function

Refactor Library views to reduce duplicate code

📝 License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

🙏 Acknowledgments


Built with ❤️ using Swift and SwiftUI

About

A digital bookshelf for your anime – track, organize, and revisit your favorite series with ease.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages