k1ckdown/MovieCatalog
44.2
Weak · 20 September 2026
7k
lines of production code
Swift
primary language
4
measurements over time
What this system is
This system is a mobile application for browsing a movie catalog, managing user accounts, and interacting with film reviews. It provides features for user authentication, profile management, and maintaining a personal list of favorite movies. The app supports offline access to previously viewed content and includes functionality for adding, editing, and deleting user-generated reviews.
Features
Add BaseProgressView component for consistent loading states
A new BaseProgressView SwiftUI component has been introduced in the common presentation layer. This view provides a standardized progress indicator with an accent color tint and full-width framing, serving as a reusable base for displaying loading states across the application.
Movies/Presentation/Common/Components/ProgressViews · high confidence
Add domain entities for movies, reviews, and user profiles
This change introduces a comprehensive set of new domain model structs in the Movies/Domain/Entities module to support the application's core features. It adds data structures for Movie, MovieDetails, and MovieShort to represent film information including genres, ratings, and favorites. It also defines entities for User profiles (Profile, UserShort, UserRegister, LoginCredentials), Reviews (Review, ReviewDetails, ReviewShort, ReviewModify), and supporting types like Gender, Genre, and Page. These models provide the foundational data layer for displaying movie lists, managing user accounts, and handling reviews.
Movies/Domain/Entities · high confidence
Add gender selection segmented picker component
A new BaseSegmentedPicker view has been introduced to provide a reusable, styled segmented control for SwiftUI, featuring custom appearance settings for selected and normal states. Building on this, a specific GenderSegmentedPicker component has been added to allow users to select a gender from a predefined list of cases, with a fixed height and localized text labels.
Movies/Presentation/Common/Components/Pickers · high confidence
Add presentation utility extensions for UI and data handling
This change introduces a suite of new extension files in the common presentation layer to support UI states and data formatting. It adds a \falseBinding\ for SwiftUI bindings, a \redacted\ modifier for placeholder views, and a \placeholder\ string generator for UI loading states. It also includes utilities for validating image URLs, formatting dates from ISO 8601 strings, and adjusting the layout behavior of segmented controls.
Movies/Presentation/Common/Extensions · high confidence
Added Russian localization for movie catalog and user profile strings
The app now supports Russian language for key user-facing strings, including movie details (e.g., 'About movie', 'Age limit'), user profile fields (e.g., 'Avatar link', 'Birthdate'), and account management prompts (e.g., 'Already have an account?'). This enables users to interact with the movie catalog, favorites, and registration/login flows in Russian.
Movies/Resources · high confidence
Added domain use cases for managing favorite movies
This change introduces three new domain use cases within the Movies module to handle favorite movie operations: AddFavoriteMovieUseCase, DeleteFavoriteMovieUseCase, and FetchFavoriteMoviesUseCase. These components allow users to add, remove, and retrieve their list of favorite movies by delegating to the underlying movie repository.
Movies/Domain/UseCases/FavoriteMovie · high confidence
Added reusable favorite button component
A new \FavoriteButton\ SwiftUI component has been introduced in the common buttons library, providing a circular, tappable heart icon that toggles between filled and unfilled states. This component supports small and medium sizes and allows callers to define the action triggered upon tapping, enabling consistent favorite interactions across the app.
Movies/Presentation/Common/Components/Buttons · high confidence
Centralized use-case creation via AppFactory
The application now uses a new \AppFactory\ class in the dependency injection layer to instantiate all core use cases. This factory provides methods to create use cases for fetching and updating user profiles, validating email/username/password, handling authentication (login, register, logout), managing movies (fetching lists, details, favorites), and managing reviews (add, delete, update). This centralizes the wiring of repositories and data sources to their respective business logic components.
Movies/Application/DependencyInjection · high confidence
Custom layout for the Favorites collection view
The Favorites scene now uses a custom SwiftUI layout to arrange movie items in a specific grid pattern. This layout alternates between full-width medium-height cards and half-width small-height cards, creating a visually distinct presentation for the user's favorite movies compared to standard list or grid views.
Movies/Presentation/Scenes/Main/Favorites/View/Layouts · high confidence
Introduce Home screen ViewModel with paginated movie list and detail navigation
The Home screen now uses a dedicated ViewModel (HomeViewModel) that manages the display of movies in two sections: a top row of four featured cards and a scrollable list. The view model handles initial data loading, infinite scroll pagination (loading more items when the last movie is displayed), and navigation to the movie details screen when a user selects a movie. It exposes a structured state (HomeViewState) that tracks loading, error, and loaded states, including specific indicators for whether more content is available, loading, or failed.
Movies/Presentation/Scenes/Main/Home/ViewModel · high confidence
Introduce HomeView with movie catalog and tabbed card display
The HomeView presents the main movie catalog interface, featuring a tabbed card carousel at the top for browsing featured movies and a scrollable list below for the full catalog. The view handles loading states with placeholder skeletons, displays error messages via an ErrorView, and supports infinite scrolling by triggering data fetches when the last item is displayed. User interactions, such as tapping a movie card or list item, are routed to the view model for navigation or detail handling.
Movies/Presentation/Scenes/Main/Home/View · high confidence
Introduce local caching for movies and profiles using Realm
The Movies/Data layer now supports offline access by introducing local data sources backed by Realm for both movie and profile data. MovieLocalDataSource and ProfileLocalDataSource provide async methods to fetch, save, and delete entities, while the corresponding repositories (MovieRepositoryImplementation and ProfileRepositoryImplementation) check network connectivity via NetworkMonitor and fall back to local storage when offline. This change enables users to view previously loaded movies and their profile information even without an active internet connection.
Movies/Data · high confidence
Introduces common presentation protocols for navigation and view models
This change adds four new protocols to the common presentation layer to standardize how views and coordinators interact. The \Coordinator\ protocol defines a navigation structure using a \navigationPath\ of \Routable\ screens, while \Routable\ itself provides a default string-based identifier for hashability and identification. Additionally, \ViewModel\ establishes a contract for state-driven view models that handle events, and \HasPlaceholder\ introduces a standardized way to generate placeholder data for UI loading states, including a helper extension for arrays.
Movies/Presentation/Common/Protocols · high confidence
Introduces main app tab bar with home, favorites, and profile sections
The app now presents a unified tab-based interface allowing users to navigate between Home, Favorites, and Profile screens. This new MainCoordinatorView manages the tab selection state and configures the tab bar's visual appearance, including accent colors, translucency, and background styling, to provide a consistent look across all primary sections of the application.
Movies/Presentation/Scenes/Main · high confidence
Introduction of dedicated authentication use cases
The application now exposes distinct domain use cases for user authentication flows, including LoginUseCase, RegisterUserUseCase, and LogoutUseCase. These components encapsulate the logic for logging in with credentials, registering new users, and handling logout procedures (which include clearing local movie and profile data), providing a structured entry point for these core identity operations.
Movies/Domain/UseCases/Auth · high confidence
Introduction of domain repository protocols for core app features
The domain layer now defines abstract repository protocols to decouple business logic from data sources. New protocols include AuthRepository for user authentication (login, register, logout), MovieRepository for fetching movie details, lists, and managing favorites, ProfileRepository for user profile management, and ReviewRepository for creating, updating, and deleting reviews. These interfaces establish the contract for data access across the application.
Movies/Domain/Repositories · high confidence
New Movie Details screen with review management
The app now includes a dedicated Movie Details screen that displays comprehensive movie information, including a poster, rating, description, genres, and specific details like year, country, director, and budget. Users can view and manage reviews, with the ability to add new reviews, edit or delete their own, and mark reviews as anonymous. The screen also supports marking movies as favorites and handles authentication redirects if a user is not logged in when attempting to modify reviews.
Movies/Presentation/Scenes/Main/MovieDetails · high confidence
New TagLayout for multi-line tag display
A new \TagLayout\ SwiftUI layout has been introduced in the common presentation layer to support displaying tags across multiple lines. This layout respects a configurable line limit and spacing, sorting subviews by priority to ensure important tags appear first, which improves the visual presentation of tag collections in the Movies app.
Movies/Presentation/Common/Layouts · high confidence
New cached image components with progress and placeholder support
The app introduces three new SwiftUI image components—CacheAsyncImage, MovieAsyncImage, and AvatarAsyncImage—that load images asynchronously while caching them in memory to avoid redundant network requests. MovieAsyncImage displays a ProgressView or placeholder during loading and applies a scale transition on success, while AvatarAsyncImage renders circular avatars with a dedicated placeholder. These components replace direct AsyncImage usage in the presentation layer, improving perceived performance and visual consistency for movie posters and user avatars.
Movies/Presentation/Common/Components/Images · high confidence
New common UI components for forms, ratings, and text handling
Added a suite of reusable SwiftUI views to the common components library: AuthView for structured login and registration forms with callout actions; DatePickerField, SecureInputView, and TextEditorWithPlaceholder for enhanced input handling including secure text toggling and placeholder support; ExpandableText for truncating and expanding long descriptions with a 'Read more' button; RatingTagView for displaying movie ratings with color-coded backgrounds based on score ranges; and ErrorView for displaying localized error messages with an illustrative image.
Movies/Presentation/Common/Components/CustomViews · high confidence
New common view modifiers for navigation, background, tint, and load actions
This change introduces four new SwiftUI view modifiers in the Movies presentation layer to standardize UI behavior. AppNavigationTitleViewModifier sets a consistent navigation title, display mode, and toolbar role while configuring the navigation bar tint color on appearance and disappearance. BackgroundColorViewModifier applies a specified background color that ignores safe area insets. TintColor provides a unified way to set accent colors, using the .tint modifier on iOS 16.1+ and falling back to .accentColor on earlier versions. ViewDidLoadViewModifier (exposed as .onLoad) ensures an action is executed only once when the view first appears, preventing redundant side effects on subsequent appearances.
Movies/Presentation/Common/ViewModifiers · high confidence
New domain validation use cases for email, password, and username
The application now includes dedicated domain use cases for validating user input: ValidateEmailUseCase checks email format (username, key sign, domain, and TLD), ValidatePasswordUseCase enforces a minimum password length of 6 characters, and ValidateUsernameUseCase ensures usernames contain only alphanumeric characters. These changes introduce structured error types for each validation failure, allowing for more specific error handling in the UI.
Movies/Domain/UseCases/Validation · high confidence
New helper utilities for image caching and validation error localization
This change introduces two new helper components in the common presentation layer. The new ImageCache class provides a simple, thread-safe mechanism to cache SwiftUI Images by URL, improving performance by avoiding redundant image decoding. Additionally, the ValidationErrorHandler centralizes the logic for converting specific validation errors (such as those for passwords, usernames, and emails) into user-friendly, localized messages, ensuring consistent error feedback across the application.
Movies/Presentation/Common/Helpers · high confidence
New login view model and state management
The login screen now uses a dedicated \LoginViewModel\ and \LoginViewState\ to manage user interactions and UI state. Users can enter their username and password, with the login button automatically disabled until both fields are populated. Upon tapping 'Log In', the system validates credentials via the \LoginUseCase\, displays a loading indicator, and navigates to the main scene on success or shows an error message if authentication fails. Tapping 'Register' triggers navigation to the personal info registration flow.
Movies/Presentation/Scenes/Auth/Login/ViewModel · high confidence
New movie details item component with user rating support
A new MovieDetailsItem view and its corresponding ViewModel have been added to the home scene components. This component displays a movie's poster, title, year, country, and genres, and now includes support for displaying a user-specific rating alongside the official rating. The ViewModel handles data mapping, including localization for missing values and logic to show an ellipsis when more than five genres are present.
Movies/Presentation/Scenes/Main/Home/View/Components · high confidence
New movie domain use cases for fetching lists, details, and single movies
The Movies domain layer now includes three new use cases: FetchMovieListUseCase retrieves paginated movie lists, FetchMovieUseCase fetches a single movie by ID (while also triggering a call to get favorite movies), and GetMovieDetailsUseCase transforms raw movie data into detailed views including user-specific review information and profile context.
Movies/Domain/UseCases/Movie · high confidence
New movie item component with placeholder support
The Favorites scene now uses a new \MovieShortItem\ view to display individual movies, featuring an async image with a corner radius, an optional rating tag overlay, and a single-line truncated movie name. The accompanying view model supports a placeholder mode (generating a dummy rating and name) to enable loading indicators or skeleton screens within the list.
Movies/Presentation/Scenes/Main/Favorites/View/Components · high confidence
New password registration screen for user sign-up
Users can now complete the final step of account creation by setting and confirming a password. This new PasswordRegistration scene validates that the two entered passwords match and meet complexity requirements, displays real-time error messages, and disables the register button if validation fails. Upon successful registration, the app navigates to the main flow; users can also tap a callout link to switch to the login screen.
Movies/Presentation/Scenes/Auth/PasswordRegistration · high confidence
New profile management screen with fetch-based data loading
A new Profile scene has been added to the main navigation, allowing users to view and edit their account details including email, avatar link, name, gender, and birthdate. The implementation shifts from a save-only model to a fetch-then-update workflow: the view loads the current profile data on appearance, validates email and avatar link inputs in real-time, and only enables the save button when changes are detected. It also includes a logout action that triggers the authentication scene and handles token expiration errors by redirecting to login.
Movies/Presentation/Scenes/Main/Profile · high confidence
New profile use cases for fetching and updating user data
The application now includes dedicated use cases for managing user profiles: FetchProfileUseCase retrieves the current profile data, and UpdateProfileUseCase allows users to modify their profile information. These components delegate to a ProfileRepository, enabling the app to load and save profile details independently of previous implementation patterns.
Movies/Domain/UseCases/Profile · high confidence
New reusable label components for authentication and genre tags
The presentation layer now includes dedicated SwiftUI components for displaying specific types of labels. A new \AuthScreenTitle\ component provides a bold, title-sized text view for authentication screens. Additionally, a new \GenreTag\ component and its associated \GenreViewModel\ have been added to display genre information with configurable styles (note vs. body), including specific font weights, colors, padding, and corner radius, supporting both live data and placeholder states.
Movies/Presentation/Common/Components/Labels · high confidence
New welcome screen for the authentication flow
The app now presents a dedicated Welcome screen at the start of the authentication process. This view displays a branded image and descriptive text, offering two distinct actions: a prominent button to begin user registration and a secondary button to log in. Tapping either button triggers the appropriate navigation flow via the auth coordinator, allowing users to either create a new account or access an existing one.
Movies/Presentation/Scenes/Auth/Welcome · high confidence
Personal information registration screen added to auth flow
Users can now enter their name, gender, username, email, and birthdate during the registration process. The new PersonalInfoRegistrationView collects this data and performs real-time validation on the username and email fields, disabling the continue button if errors are detected. Upon successful entry, the flow proceeds to the password registration step.
Movies/Presentation/Scenes/Auth/PersonalInfoRegistration · high confidence
Support for adding, updating, and deleting movie reviews
Users can now manage their movie reviews through new domain use cases that allow adding a new review, updating an existing one, or deleting it. These changes introduce AddReviewUseCase, DeleteReviewUseCase, and UpdateReviewUseCase, which delegate to the ReviewRepository to handle the persistence of review modifications.
Movies/Domain/UseCases/Review · high confidence
Removals
Removed default SwiftUI placeholder view
The default ContentView placeholder, which previously displayed a globe icon and a "Hello, world!" text, has been removed from the Movies module. This cleanup eliminates the initial boilerplate UI, indicating that the actual application interface is now being implemented elsewhere or is no longer required in this specific file.
Movies · high confidence
Behavioural changes
App launch now uses a coordinator-based architecture with dependency injection
The application entry point has been refactored to replace the direct rendering of ContentView with an AppCoordinatorView. This new structure initializes an AppFactory to provide dependencies (such as fetch profile and favorite movies use cases) to the AppCoordinator, enabling a more modular navigation flow. Additionally, the app now applies a dark color scheme by default and starts the network monitor on launch to track connectivity status.
Movies/Application · high confidence
Centralized localization keys for UI and error messages
The app now uses a centralized \LocalizedKey\ enum to manage string resources for the user interface and error handling. This change introduces specific localization keys for the welcome screen, tab bar labels (Home, Profile, Favorites), and movie details (genres, reviews, favorites). It also adds keys for authentication flows (login, registration, logout) and user profile editing. Furthermore, it defines keys for movie review interactions, including options to write, leave, or view anonymous reviews, and establishes a structured set of keys for various error messages covering profile operations, password validation, email format, and network connectivity issues.
Movies/Presentation/Common/Constants · high confidence
Favorites screen now displays placeholders during loading and a custom empty state
The Favorites view has been updated to improve the user experience during data retrieval and when no favorites exist. While the list is loading, the interface now shows three placeholder items instead of a generic indicator, providing visual feedback. If the user has no favorite movies, a dedicated placeholder screen is displayed with localized text encouraging them to add favorites. Additionally, the view disables interaction during loading states and sends an appearance event to the ViewModel to trigger data fetching.
Movies/Presentation/Scenes/Main/Favorites/View · high confidence
Favorites screen now supports navigation to movie details and handles authentication redirects
The Favorites scene has been restructured to include a dedicated coordinator that manages navigation flow. Users can now navigate from the favorites list to a specific movie's details screen. Additionally, if an action requires authentication while viewing favorites, the app will now correctly redirect the user to the login screen.
Movies/Presentation/Scenes/Main/Favorites/Coordinator · high confidence
Favorites screen now uses average movie ratings
The Favorites view model has been refactored to display the average rating for each movie in the user's favorites list, rather than a user-specific rating. This change ensures that the rating information shown to the user reflects the general consensus for the movie.
Movies/Presentation/Scenes/Main/Favorites/ViewModel · high confidence
Introduce HomeCoordinator for structured navigation in the main home scene
The main home scene now uses a dedicated HomeCoordinator to manage navigation flow. This change introduces a typed navigation path (using NavigationStack) that handles transitions to movie details and triggers the authentication scene when required, replacing the previous ad-hoc navigation logic within this specific coordinator layer.
Movies/Presentation/Scenes/Main/Home/Coordinator · high confidence
Introduce ScreenFactory for centralized view and coordinator instantiation
The application now uses a centralized ScreenFactory to create and wire up UI screens, replacing previous ad-hoc assembly. This factory implements protocols for the Home, Favorites, Profile, and MovieDetails screens, as well as the full authentication flow (Welcome, Login, Personal Info, and Password Registration). It injects the necessary use cases (such as fetching movie lists, managing favorites, handling reviews, and user registration) directly into the corresponding ViewModels, ensuring that all screen creation follows a consistent dependency injection pattern.
Movies/Application/DependencyInjection/ScreenFactory · high confidence
Introduce new SwiftUI-based login screen with integrated view model
The login interface has been replaced with a new \LoginView\ that uses a dedicated \LoginViewModel\ to manage state. Users now see a form with username and password fields, a login button that is automatically disabled while the user is logging in or if there is an error, and a callout to register a new account. Error messages are displayed below the form fields, and a loading indicator appears during the login process.
Movies/Presentation/Scenes/Auth/Login/View · high confidence
Introduces coordinator-based navigation for the authentication flow
The authentication UI now uses a dedicated \AuthCoordinator\ to manage the navigation stack, replacing the previous router-based approach. This change introduces a multi-step registration process where users can progress from login to personal info entry and finally to password registration, with the coordinator handling the state transitions and passing data (such as \PersonalInfoViewModel\) between screens. The \AuthCoordinatorView\ acts as the SwiftUI container, utilizing a factory pattern to instantiate the specific login, personal info, and password registration views based on the coordinator's navigation path.
Movies/Presentation/Scenes/Auth/Coordinator · high confidence
Introduces standardized button and text field styles for forms
This change adds new SwiftUI style components to the common presentation layer to standardize the appearance of interactive elements. It introduces \BaseButtonStyle\ for consistent button sizing, corner radius, and press/disabled visual feedback, as well as \CalloutButtonStyle\ for buttons that include descriptive text. Additionally, \FormTextFieldStyle\ and \FormBorderedTextFieldStyle\ are added to provide uniform height, padding, and background styling for text inputs within forms.
Movies/Presentation/Common/Styles · high confidence
Introduction of AppCoordinator for centralized navigation and state management
The app now uses an AppCoordinator to manage the root navigation flow and application state. Upon launch, the system checks user authorization by fetching the profile; if successful, the user is directed to the main interface, otherwise they are routed to the authentication screen. This change introduces a structured state machine (idle, loading, auth, main) that controls the visibility of the AuthCoordinatorView and MainCoordinatorView, ensuring a consistent entry point for the application.
Movies/Presentation/Scenes/Coordinator · high confidence
New form item styling and error display modifiers
The Movies presentation layer introduces a set of new SwiftUI view modifiers in the Form directory to standardize the appearance and validation feedback of form inputs. Users will see form fields with consistent background styling that visually indicates error states (e.g., red borders and backgrounds) via \FormItemBackground\, and inline error messages displayed below fields using \ErrorFooterViewModifier\. These are combined in \FormErrorableItemViewModifier\ to apply text styling, background states, and error footers in a single step, while \LabeledViewModifier\ provides standardized title styling for form sections.
Movies/Presentation/Common/ViewModifiers/Form · high confidence
New launch screen with dark theme and branding
The app now displays a dedicated launch screen featuring a dark background, the application logo, and the 'FИЛЬМУС' brand name. This visual update provides immediate brand recognition during the app's startup phase.
Movies/Presentation/Scenes/Launch · high confidence
Updated Xcode scheme with recommended build and launch settings
The Movies Xcode scheme has been updated to include recommended configurations, such as enabling parallel builds and implicit dependency builds. The launch action now disables the OS\_ACTIVITY\_MODE environment variable to reduce console noise during debugging, and the scheme version has been upgraded to 1.7 to align with the latest Xcode standards.
Movies.xcodeproj/xcshareddata · high confidence
Xcode project updated to include new source files and Realm framework
The Movies.xcodeproj project file has been updated to register a large number of new Swift source files and resources, including view models, coordinators, network services, and UI components for features like movie details, favorites, and user profiles. The project now also includes the Realm and RealmSwift frameworks in its linked frameworks list, indicating a shift to using Realm for local data storage.
Movies.xcodeproj · medium 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 42 → 44 (+2.3)
- Rubric changed (rubric-2026.08.17 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 99 (-0.9)
- Architecture 100 → 90 (-10.4)
- Maturity 28 → 39 (+10.7)
- Readiness 15 → 17 (+1.6)
- Security 95 → 95 (+0.0)
- Domain Modelling 100 → 100 (+0.0)
Resolved (4)
- Dependency hygiene not measured — no supported dependency manifest was read
- No exposed public API
- complexity unreadable for .swift — churn × complexity hotspots could not be measured
- single-maintainer — knowledge-concentration (bus factor) risk
New (24)
- Change coupling: FavoritesViewModel.swift ↔ MovieDetailsView.swift (Movies/Presentation/Scenes/Main/Favorites/ViewModel/FavoritesViewModel.swift)
- Change coupling: FavoritesViewModel.swift ↔ MovieDetailsViewModel.swift (Movies/Presentation/Scenes/Main/Favorites/ViewModel/FavoritesViewModel.swift)
- Change coupling: LoginView.swift ↔ PasswordRegistrationView.swift (Movies/Presentation/Scenes/Auth/Login/View/LoginView.swift)
- Change coupling: ProfileView.swift ↔ ProfileViewState.swift (Movies/Presentation/Scenes/Main/Profile/View/ProfileView.swift)
- Change coupling: ReviewView.swift ↔ MovieDetailsViewModel.swift (Movies/Presentation/Scenes/Main/MovieDetails/View/Components/Review/ReviewView.swift)
- Change coupling: ReviewViewModel.swift ↔ MovieDetailsView.swift (Movies/Presentation/Scenes/Main/MovieDetails/View/Components/Review/ReviewViewModel.swift)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (10 lines × 2) (Movies/Presentation/Scenes/Main/Favorites/Coordinator/FavoritesCoordinatorView.swift)
- Duplicated block (14 lines × 2) (Movies/Presentation/Scenes/Main/Favorites/Coordinator/FavoritesCoordinator.swift)
- Duplicated block (6 lines × 2) (Movies/Presentation/Scenes/Auth/Login/View/LoginView.swift)
- Duplicated block (6 lines × 2) (Movies/Presentation/Scenes/Auth/Login/View/LoginView.swift)
- Duplicated block (6 lines × 2) (Movies/Presentation/Scenes/Auth/PersonalInfoRegistration/View/PersonalInfoRegistrationView.swift)
- Duplicated block (6 lines × 2) (Movies/Presentation/Scenes/Auth/PersonalInfoRegistration/View/PersonalInfoRegistrationView.swift)
- Duplicated block (6 lines × 2) (Movies/Presentation/Scenes/Auth/PersonalInfoRegistration/View/PersonalInfoRegistrationView.swift)
- Duplicated block (6 lines × 2) (Movies/Presentation/Scenes/Auth/PersonalInfoRegistration/View/PersonalInfoRegistrationView.swift)
- Duplicated block (8 lines × 2) (Movies/Data/DataSources/Local/MovieLocalDataSource.swift)
- Duplicated block (8 lines × 3) (Movies/Presentation/Scenes/Auth/Coordinator/AuthCoordinatorView.swift)
- Duplicated block (9 lines × 2) (Movies/Presentation/Scenes/Auth/PersonalInfoRegistration/ViewModel/PersonalInfoRegistrationViewModel.swift)
- Floating branch dependency: realm-swift
- …and 4 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
k1ckdown/MovieCatalog 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 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 10371255351de77b3618621004ff7e10841da2ff — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-28e75b8e3254.