Skip to content
CAI
Software that uses CAICheck a score

huri000/SwiftEntryKit

63.0

Adequate · 27 September 2026

9.5k

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 release marks the 2.0.0 version of SwiftEntryKit, introducing support for Swift 5 and iOS 9. The library introduces a consolidated public API for entry management and a comprehensive set of new message view types, including alerts, forms, notifications, and ratings. Internally, the presentation infrastructure has been refactored to support view controllers and queueing, while the configuration model has been restructured to support dark mode and granular animation control. The example project has been significantly expanded with an interactive playground, new preset categories, and modernized build configurations.

Features

Add navigation flow preset to the example project

The example project now includes a new navigation flow preset, implemented via the addition of ExampleNavigationViewController, ContactsViewController, and DescriptionViewController along with their corresponding XIB files. This provides a working example of a navigation-based interface within the demo application.

Example/SwiftEntryKit/Presets/Samples/ExampleNavigationController · medium confidence

Added NibExampleView sample component

The example project now includes a new \NibExampleView\ component, consisting of a Swift class and its corresponding \.xib\ file. This addition provides a concrete example of loading a custom view from a Nib file within the SwiftEntryKit demo application.

Example/SwiftEntryKit/Presets/Samples/NibExampleView · high confidence

Added layout utilities and UI extensions to support status bar and content wrapping

The library now includes new utility files in the Source/Extensions directory to support layout and appearance features. A new QuickLayout extension (QLCompatibility, QLUtils, UIView+QuickLayout, UIViewArray+QuickLayout) provides helper methods for setting constraints, managing content hugging and compression resistance, and laying out views relative to their superviews or other views. Additionally, UIApplication+EKAppearance was added to manage status bar visibility and style, while UIView+Shadow and UIView+Utils provide helpers for applying drop shadows and configuring UI elements like labels, buttons, image views, and text fields. The HapticFeedbackGenerator was also moved from the example project to the main source to support haptic feedback.

Source/Extensions · high confidence

Adds utility extensions and color definitions to the example project

The example project now includes several utility extensions to simplify common tasks. A UIView extension allows views to be loaded directly from nib files via a fromNib() method. Color definitions for light and dark modes are centralized in UIColor+Utils.swift, providing pre-defined palettes for UI elements like navigation bars, headers, and chat messages. Additional extensions include CGRect and UIScreen minEdge calculations, a Font enum for Helvetica Neue variants, and an NSObject className helper.

Example/SwiftEntryKit/Utils · high confidence

Expanded entry configuration options in the example playground

The SwiftEntryKit example project now includes a comprehensive set of UI controls for configuring entry attributes. New selection cells allow users to adjust entrance, exit, and pop animations; entry and screen background styles; border, shadow, and corner rounding; haptic feedback types; display duration; height and width constraints (including ratios and offsets); safe area behavior; scroll behavior; user interaction handling; window level; and display priority. These additions provide a more complete interactive playground for testing entry customization.

Example/SwiftEntryKit/Playground/Cells · high confidence

Introduce SwiftEntryKit entry point with entry management and dismissal APIs

The public API for managing entries is consolidated into the new \SwiftEntryKit\ class. This provides methods to display entries (\display(entry:using:presentInsideKeyWindow:rollbackWindow:)\) and view controllers, check display/queue status (\isCurrentlyDisplaying\, \isQueueEmpty\), and dismiss entries using \EntryDismissalDescriptor\ (supporting dismissal by name, priority, or queue state). It also exposes the current entry window and offers a \transform(to:)\ method for alpha-stage entry transitions.

Source · high confidence

Introduces new message model types and dark mode support

Adds new model structs for different message types: EKAlertMessage, EKNotificationMessage, EKPopUpMessage, EKRatingMessage, and EKSimpleMessage, each defining the data structure for their respective UI components. Additionally, introduces EKColor to support dark mode by allowing separate light and dark mode color values, enabling the UI to adapt to the system's appearance setting.

Source/Model · high confidence

New form field presets and example project structure

Added new form field presets (email, full name, mobile, password) with configurable styles (light/metallic) and a dedicated factory for generating them. The example project now includes a structured preset browser (PresetsViewController) with a cell implementation (PresetTableViewCell) and a wrapper view controller (ExampleViewController) to showcase these presets, supporting both light and dark display modes.

Example/SwiftEntryKit/Presets · high confidence

New interactive playground for configuring entry attributes

The example project now includes a new interactive playground that allows users to visually configure and test various entry attributes, including display, theme, interaction, size, and animation settings. This provides a hands-on way to explore the library's capabilities without writing code.

Example/SwiftEntryKit/Playground · high confidence

New message view types for alerts, forms, notifications, pop-ups, ratings, and simple messages

Added new UI components for displaying alerts, forms, notifications, pop-ups, ratings, and simple messages. Each view handles its own layout and interaction logic, such as button bars for alerts and ratings, scrollable text fields for forms, and image/title/description layouts for notifications and pop-ups. These views support dynamic content updates, first responder management for forms, and theme-aware styling.

Source/MessageViews · high confidence

New note-style message views for notifications and status bars

Users can now display notifications and status bar messages using new note-style views. The update introduces EKNoteMessageView for standard text content, EKAccessoryNoteMessageView as a base for accessory-based notes, EKImageNoteMessageView to display images alongside text, and EKProcessingNoteMessageView which includes an activity indicator for loading states. Additionally, EKXStatusBarMessageView allows for dual-label status bar messages. These components provide a consistent, modern look for alerts and status updates within the app.

Source/MessageViews/Notes · high confidence

New utility views for buttons, ratings, and text fields

Added new UI components to support message entry interactions: EKButtonBarView for dynamic button layouts, EKButtonView for individual button styling and accessibility, EKRatingSymbolView and EKRatingSymbolsContainerView for interactive rating displays, and EKTextField for text input. These views handle layout, appearance (including dark mode support via trait changes), and interaction states, enabling richer message content types.

Source/MessageViews/MessagesUtils · high confidence

Structured preset catalog for the example app

The example project now organizes its demo entries into a structured catalog. A new \PresetDescription\ struct and a \PresetsDataSource\ are introduced to group presets by category (e.g., Toast, Note, Float, Popup) and provide metadata like titles, descriptions, and thumbnail identifiers. This replaces the previous flat or unstructured approach, making it easier to browse and select different entry configurations within the example app.

Example/SwiftEntryKit/Presets/PresetsData · high confidence

Behavioural changes

Comprehensive model refactoring for entry configuration

The \EKAttributes\ model has been significantly restructured to support more granular control over entry presentation. Key changes include: introducing \DisplayMode\ to explicitly handle light/dark mode preferences; adding \Animation\ types for entrance, exit, and pop behaviors; supporting named entries via a new \name\ property; and refining position constraints with support for safe area overrides, keyboard binding, and rotation settings. Additionally, the model now includes properties for haptic feedback, lifecycle events, and user interaction handling.

Source/Model/EntryAttributes · high confidence

Example project renamed to SwiftEntryKitDemo

The example application's scheme and build configuration have been updated to use the name 'SwiftEntryKitDemo' instead of 'SwiftEntryKit\_Example'. This change updates the generated app bundle and test targets to reflect the new naming convention, ensuring consistency across the project's build schemes and file references.

Example/SwiftEntryKit.xcodeproj · high confidence

Example project updated to support SwiftEntryKit as a framework

The SwiftEntryKit example project has been refactored to build and distribute as a framework (CFBundlePackageType changed from APPL to FMWK). This includes updating the Info.plist to use modern development language placeholders, removing unused application lifecycle methods from the AppDelegate, and adding a new DemoAppInfo.plist for the example app. These changes streamline the example project structure and align it with current iOS development practices.

Example/SwiftEntryKit · medium confidence

Project infrastructure and documentation updates

The repository received a comprehensive update to its project infrastructure and documentation. A Code of Conduct, Contributing guidelines, and a Pull Request template were added to standardize community interactions. The project's license was updated to MIT. Documentation was significantly expanded in the README, and the CHANGELOG was initialized to track version history. Additionally, the .gitignore was updated to include Swift Package Manager artifacts, and the .travis.yml was updated to use Xcode 12.5, reflecting modernized CI/CD and dependency management practices.

(repo-wide) · high confidence

Refactored entry presentation infrastructure to support view controllers and queueing

The internal architecture for displaying entries has been refactored to support presenting UIViewControllers as entries, not just standalone views. This change introduces a new \EKRootViewController\ to manage the entry lifecycle and a queueing mechanism (\EntryCachingHeuristic\) that allows entries to be enqueued and displayed sequentially based on their precedence. Additionally, the background rendering logic has been extracted into a dedicated \EKBackgroundView\ and \EKContentView\ classes, improving the separation of concerns for entry presentation and dismissal.

Source/Infra · high confidence

Removed placeholder files from SwiftEntryKit

The placeholder file ReplaceMe.swift and the .gitkeep file in the SwiftEntryKit/Classes directory have been removed from the project.

SwiftEntryKit · high confidence

Updated CocoaPods target support files for SwiftEntryKit

The CocoaPods target support files for the SwiftEntryKit demo and test targets have been updated. This includes new or regenerated Info.plist, acknowledgement, umbrella header, modulemap, and build configuration files. Notably, the SwiftEntryKit framework's Info.plist now reflects version 2.0.0, while the demo and test targets are configured with version 1.0.0. These changes ensure the build system correctly links and embeds the SwiftEntryKit framework and its dependencies for both the main application and its tests.

Example/Pods/Target Support Files · high confidence

Updated SwiftEntryKit example project to use cached SwiftEntryKit v0.2.2

The Example project's Xcode project file (Pods.xcodeproj) has been updated to reference the cached version of SwiftEntryKit v0.2.2. This ensures the example app uses a specific, stable version of the library rather than the latest head, providing a consistent environment for testing and demonstration.

Example/Pods/Pods.xcodeproj · high confidence

Updated example app UI and structure

The example app's launch screen was updated to remove the copyright label and adjust the title styling. The main storyboard was upgraded to use newer Xcode/Interface Builder versions, and the app structure was refactored to include a 'Presets' view controller with a segmented control for display modes, a 'Playground' view controller, and a navigation controller.

Example/SwiftEntryKit/Base.lproj · medium confidence

Workspace settings and checks configured for the example project

The example project's workspace data now includes explicit configuration files: IDEWorkspaceChecks.plist is added to track workspace state, and WorkspaceSettings.xcsettings is added to disable Previews. These changes standardize the development environment for the example app.

Example/SwiftEntryKit.xcworkspace/xcshareddata · medium confidence

Test coverage

Added unit tests for SwiftEntryKit attributes

Added new unit tests for SwiftEntryKit's EKAttributes, covering display priority, position, display duration, and window level configurations. The previous Quick/Nimble-based test file was removed in favor of standard XCTest implementations.

Example/Tests · high confidence

Dependencies

SwiftEntryKit 2.0.0 release with Swift 5 and iOS 9 support

The library has been updated to version 2.0.0, introducing support for Swift 5 and a minimum iOS deployment target of 9.0. The podspec and Package.swift have been updated to reflect these changes, and the source file paths have been adjusted to the 'Source' directory. This is a major version update that likely includes breaking changes or significant architectural improvements, as indicated by the version jump from 0.1.0 to 2.0.0.

(dependencies) · 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 50 → 63 (+13.4)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 97 (-2.7)
  • Architecture 88 (new)
  • Maturity 55 → 49 (-6.6)
  • Readiness 26 → 63 (+37.6)
  • Security 90 → 85 (-5.0)

Resolved (5)

  • Dimension evaluation failed
  • No automated tests
  • No exposed public API
  • No tests found
  • Test reliability not included

New (45)

  • Coverage not measured — Swift suite
  • Dependency hygiene PARTLY measured — SwiftPM pinning read, dependency currency NOT established
  • Dormant codebase
  • Duplicated block (10 lines × 2) (Example/SwiftEntryKit/Presets/PresetsData/PresetsDataSource.swift)
  • Duplicated block (10–11 lines × 4) (Example/SwiftEntryKit/Presets/PresetsData/PresetsDataSource.swift)
  • Duplicated block (10–12 lines × 2) (Example/SwiftEntryKit/Presets/FormFieldPresetFactory.swift)
  • Duplicated block (11 lines × 2) (Example/SwiftEntryKit/Presets/PresetsViewController.swift)
  • Duplicated block (11 lines × 3) (Example/SwiftEntryKit/Presets/PresetsData/PresetsDataSource.swift)
  • Duplicated block (11 lines × 3) (Example/SwiftEntryKit/Presets/PresetsData/PresetsDataSource.swift)
  • Duplicated block (12 lines × 3) (Example/SwiftEntryKit/Presets/PresetsData/PresetsDataSource.swift)
  • Duplicated block (13 lines × 2) (Example/SwiftEntryKit/Presets/PresetsViewController.swift)
  • Duplicated block (13 lines × 2) (Example/SwiftEntryKit/Presets/PresetsViewController.swift)
  • Duplicated block (13 lines × 3) (Example/SwiftEntryKit/Presets/PresetsData/PresetsDataSource.swift)
  • Duplicated block (13–14 lines × 2) (Example/SwiftEntryKit/Presets/PresetsData/PresetsDataSource.swift)
  • Duplicated block (13–14 lines × 3) (Example/SwiftEntryKit/Presets/PresetsData/PresetsDataSource.swift)
  • Duplicated block (14 lines × 2) (Example/SwiftEntryKit/Presets/PresetsData/PresetsDataSource.swift)
  • Duplicated block (14 lines × 2) (Example/SwiftEntryKit/Presets/PresetsData/PresetsDataSource.swift)
  • Duplicated block (14 lines × 2) (Example/SwiftEntryKit/Presets/PresetsData/PresetsDataSource.swift)
  • Duplicated block (15–21 lines × 3) (Example/SwiftEntryKit/Presets/PresetsData/PresetsDataSource.swift)
  • Duplicated block (18 lines × 2) (Example/SwiftEntryKit/Presets/PresetsData/PresetsDataSource.swift)
  • …and 25 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

huri000/SwiftEntryKit 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 27 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 5ad36cccf0c4b9fea32f4e9b17a8e38f07563ef0 — 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-d00c643c3f66.