Skip to content
CAI
Software that uses CAICheck a score

MaisaMilena/MyAnimeList

45.7

Weak · 6 October 2026

822

lines of production code

Swift

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is an iOS application designed for managing personal anime lists, built using the VIP (Clean Swift) architecture. It enables users to add anime entries with titles, descriptions, and ratings, while persisting this data locally via Realm. The app provides a home view with segmented controls to filter and display anime by their watch status, such as 'To Watch' or 'Watched'.

Features

Add anime screen with validation and local storage

The Add Anime scene now allows users to input an anime title, description, watch status, and a star rating (1-5). The screen enforces that the title and description are not empty, showing an alert if they are, and restricts the rating input to numeric values within the 1-5 range. Upon successful submission, the anime is saved to the local database and the user is notified before returning to the home screen.

MyAnimeList/MyAnimeList/Scenes/Add anime · high confidence

Added iOS launch screen and initial test infrastructure

The application now includes a LaunchScreen storyboard to define the initial splash screen displayed when the app starts. Additionally, the test target has been initialized with a standard Info.plist configuration and a base test class containing placeholder functional and performance test methods, establishing the foundation for future automated testing.

MyAnimeList/MyAnimeList/Base.lproj, MyAnimeList/MyAnimeListTests · high confidence

Initial project scaffolding and documentation

The repository has been initialized with the core structure for an iOS application using the VIP (Clean Swift) architecture. This includes the addition of a .gitignore file tailored for Swift, Xcode, and CocoaPods, a .ruby-version file specifying version 2.3.7, and an MIT License. The README.md has been updated to document the project's architectural components (ViewController, Interactor, Worker, Presenter, Router, Configurator, Model), provide setup instructions for CocoaPods, and outline contribution guidelines for Hacktoberfest.

(repo-wide) · high confidence

Initial project structure and configuration for MyAnimeList

The MyAnimeList Xcode project is initialized with the core application scaffolding, including the AppDelegate, Info.plist, and main storyboard references. The project configuration registers essential resources such as the SF Pro and SF Compact font families, a color palette file, and the Assets catalog. It also sets up the build targets for the application and its test suite, linking the Pods framework to support dependency management.

MyAnimeList/MyAnimeList.xcodeproj · high confidence

New Add Anime screen and updated Home layout

The app now includes a dedicated Add Anime screen (AddAnime.storyboard) allowing users to input a title, rating, watched status, and description. The Home screen (Main.storyboard) has been updated with a segmented control to filter between 'To watch' and 'Watched' lists, and the navigation bar now includes an 'Add' button that presents the new Add Anime screen.

MyAnimeList/MyAnimeList/Scenes/Base.lproj · high confidence

New List Anime screen with status-based filtering

Users can now view their anime list in a dedicated screen that displays anime titles, descriptions, and ratings in a table view. The list is filtered by status (To Watch or Watched) using a segmented control, and users can navigate to the Add Anime screen from this view.

MyAnimeList/MyAnimeList/Scenes/List anime · high confidence

Behavioural changes

Anime persistence now uses Realm instead of in-memory storage

The app's anime management layer has switched from a temporary in-memory database to persistent storage using Realm. This change ensures that added anime titles and their statuses (watched, to watch, or none) are saved to disk and survive app restarts, eliminating the previous behavior where data was lost upon relaunch. The implementation introduces a new \RealmDatabase\ class that handles encoding and decoding of the \Anime\ model, while the \AnimeWorker\ now defaults to this persistent backend.

MyAnimeList/MyAnimeList/Anime management · high confidence

Introduction of centralized color palette resources

A new Swift file, PaletteColors.swift, has been added to the app's resources to define a centralized color palette. This change introduces static extensions for UIColor, specifically defining primaryBlue and secondaryGray, which allows the application to use consistent, named colors throughout the UI design.

MyAnimeList/MyAnimeList/Resources · high confidence

Dependencies

Added CocoaPods workspace configuration

The project now includes a dedicated Xcode workspace that groups the main project with the CocoaPods dependencies. This enables the use of CocoaPods for dependency management, allowing third-party libraries to be integrated and updated via the standard pod install workflow.

MyAnimeList/MyAnimeList.xcworkspace · high confidence

Pin CocoaPods version and switch RealmSwift to master branch to fix Xcode 11 crash

The project now explicitly requires CocoaPods version 1.5.3 via a new Gemfile to ensure consistent dependency resolution. Additionally, the RealmSwift dependency has been switched from a standard podspec to pulling directly from the master branch of the realm-cocoa repository; this change addresses a specific crash occurring in Xcode 11.

(dependencies) · high confidence

RealmSwift dependency added at version 3.19.0

The MyAnimeList project now includes the RealmSwift CocoaPod (version 3.19.0) as a dependency, bringing in the Realm mobile database framework for Swift. This adds the necessary local podspecs, lockfile, and Xcode project references to support Realm's data persistence features within the application.

MyAnimeList/Pods, MyAnimeList/Pods/Realm/Realm/ObjectStore · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 51 → 46 (-5.1)
  • Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (+0.1)
  • Architecture 100 → 69 (-31.0)
  • Maturity 30 → 42 (+12.3)
  • Readiness 37 → 26 (-11.4)
  • Security 95 → 88 (-7.0)
  • Domain Modelling 100 → 100 (+0.0)

Resolved (3)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no licence statement (README.md)
  • Documentation: no usage examples (README.md)

New (3)

  • End-of-life runtime: Ruby 2.3
  • Low cohesion: AppDelegate (LCOM4 6) (MyAnimeList/MyAnimeList/AppDelegate.swift)
  • Low cohesion: ListAnimeViewController (LCOM4 6) (MyAnimeList/MyAnimeList/Scenes/List anime/ListAnimeViewController.swift)

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

MaisaMilena/MyAnimeList was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 6 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 6ba4b855d38e878c805c5b803f499ea9470a71ac — the exact code this score is about.
  • Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-1f9c535fa862.