Skip to content
CAI
Software that uses CAICheck a score

xmartlabs/Eureka

64.5

Adequate · 27 September 2026

11.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

Features

Add ImageRow custom row for image selection

A new custom row, ImageRow, has been added to the example project, enabling users to select images from the device's photo library, camera, or saved photos. This feature provides a configurable source type selection via an action sheet, supporting both camera and library access, and includes options to clear the selected image.

Example/Example/CustomRows · high confidence

Add new row types for forms and pickers

The library introduces several new row types to the Source/Rows directory, including ActionSheetRow, AlertRow, ButtonRow, CheckRow, DateRow, DoublePickerRow, FieldsRow, LabelRow, MultipleSelectorRow, and PickerInlineRow. These additions provide users with new ways to collect input, such as selecting from an action sheet or alert, triggering a button action, toggling a boolean state, or choosing from inline and modal pickers.

Source/Rows · high confidence

Added privacy manifest and updated versioning

Added a new PrivacyInfo.xcprivacy file to declare data collection practices, specifically noting the collection of usage data for app functionality. Additionally, the project's versioning was updated to use the $(MARKETING\_VERSION) build setting in the Info.plist.

Source · high confidence

Adds built-in validation rules for forms

The library now includes a set of built-in validation rules in the Source/Validations directory, allowing developers to easily validate form fields. New rule types include RuleRequired for mandatory fields, RuleEmail and RuleURL for format checking, RuleRegExp for custom regex patterns, and rules for length (RuleMinLength, RuleMaxLength, RuleExactLength) and numeric ranges (RuleGreaterThan, RuleSmallerThan, etc.). A generic RuleClosure is also provided for custom validation logic.

Source/Validations · high confidence

Introduce lazy options provider and customizable selector view controllers

Added new \MultipleSelectorViewController\ and \SelectorAlertController\ classes to handle multiple selection and alert-based selection respectively. The \SelectorViewController\ and \MultipleSelectorViewController\ now support a \OptionsProviderRow\ protocol, allowing options to be provided synchronously or lazily via a closure. This enables asynchronous loading of options and allows for customizing the appearance of the selector rows through \selectableRowSetup\, \selectableRowCellSetup\, and \selectableRowCellUpdate\ closures. Additionally, the \SelectorViewController\ now exposes properties like \enableDeselection\ and \dismissOnSelection\ to control user interaction behavior.

Source/Rows/Controllers · high confidence

Introduces SectionBuilder for declarative form construction

Adds a new \SectionBuilder\ result builder that allows forms to be constructed using a more declarative, nested syntax. This enables developers to define sections and rows using a cleaner, more readable structure, such as \Section { ... }\ or \Form { ... }\, reducing the need for chained operators like \\<\<\<\ and \+++\.

Source/Core · high confidence

New common row types and protocols for forms

Added new row types and supporting files in the common rows directory, including AlertOptionsRow, DateFieldRow, DateInlineFieldRow, DecimalFormatter, FieldRow, GenericMultipleSelectorRow, OptionsRow, Protocols, and SelectorRow. These changes introduce a more modular and reusable set of form components, including a decimal formatter for numeric inputs, field rows with configurable title and text field percentages, and selector rows for presenting options. The addition of Protocols.swift defines shared interfaces like FormatterConformance and NoValueDisplayTextConformance, while the new row implementations provide standardized ways to handle date selection, text input, and multi-value selection in forms.

Source/Rows/Common · high confidence

New example controllers for form building

The example application now includes a suite of new controller files (such as CustomCellsViewController, CustomDesignController, DisabledRowsExample, FieldRowCustomizationController, FormatterExample, HiddenRowsExample, InlineRowsController, ListSectionsController, MultivaluedExamples, NativeEventExample, NavigationAccessoryController, PlainTableViewExample, RowsExample, SwipeActionsController, and ValidationsController) that demonstrate various Eureka form features including custom cells, conditional visibility, inline rows, validation rules, and multivalued sections.

Example/Example/Controllers · high confidence

Behavioural changes

Added IDE workspace check file for Eureka playground

A new IDE workspace check file (IDEWorkspaceChecks.plist) was added to the Eureka playground workspace. This file tracks IDE-specific state for the workspace, ensuring Xcode can properly manage the playground's workspace configuration.

Eureka.playground/playground.xcworkspace · high confidence

Added IDE workspace configuration for 32-bit warnings

The Example workspace now includes an IDEWorkspaceChecks.plist file that explicitly enables the IDEDidComputeMac32BitWarning, ensuring that developers are warned about 32-bit architecture deprecations when building the example project.

Example.xcodeproj/project.xcworkspace · medium confidence

Example project reorganized with new controllers and custom design resources

The Example project's Xcode project file has been updated to reflect a significant reorganization of the example app's structure. A new 'Controllers' group was introduced to house a large number of example controllers (including RowsExample, CustomCellsViewController, FieldRowCustomizationController, and others), separating them from the main project root. Additionally, a 'Custom Design' group was added to contain new XIB resources (DatePickerCell, SwitchCell, TextCell), and the ImageRow example was moved into a dedicated 'ImageRow' group. The project also received updates to the Xcode version (LastUpgradeCheck 1400) and Swift migration settings, alongside a rename of the UI test file from ExampleUITests to FieldRowUITests.

Example.xcodeproj · high confidence

Updated Eureka playground examples to modern Swift syntax

The Eureka playground examples have been updated to use modern Swift syntax. This includes replacing the deprecated \FromViewController\ with \FormViewController\, updating color initialization from \.redColor()\ to \.red\, and changing the \rowByTag:\ method to \rowBy(tag:)\. Additionally, the \+++=\ operator has been removed in favor of using \\<\<\<\ for appending rows, and the \onCellSelection\ callback syntax has been updated to match current Swift conventions.

Eureka.playground · high confidence

Updated FloatLabelTextField to Swift 3/4 API conventions

The FloatLabelTextField helper was updated to follow Swift 3 and 4 API design guidelines. This includes renaming methods to use external parameter labels (e.g., \textRectForBounds:\ to \textRect(forBounds:)\), replacing deprecated property accessors (e.g., \.grayColor()\ to \.gray\), and using modern Swift syntax for optionals and enums. These changes ensure compatibility with newer Xcode and iOS versions while maintaining the same visual behavior for the example app.

Example/Example/Helpers · high confidence

Updated Xcode project configuration for Xcode 14 compatibility

The Example project's Xcode scheme was updated to target Xcode 14 (LastUpgradeVersion 1400). The scheme configuration was reorganized to move the MacroExpansion block to the TestAction section and removed empty AdditionalOptions blocks, ensuring the project builds correctly on the latest Xcode versions.

Example.xcodeproj/xcshareddata · high confidence

Updated Xcode scheme configuration for Xcode 14

The Xcode project scheme file was updated to target Xcode 14 (LastUpgradeVersion 1400). The configuration was restructured to move the MacroExpansion buildable reference from the TestAction to the LaunchAction, and empty AdditionalOptions sections were removed.

Eureka.xcodeproj/xcshareddata · high confidence

Updated example app storyboards for modern iOS layouts and colors

The example app's Interface Builder files (LaunchScreen, Main, and EurekaSectionHeader) have been updated to use modern iOS system colors (e.g., systemBackgroundColor, groupTableViewBackgroundColor) and safe area layout guides. This ensures the example UI adapts correctly to device-specific features like the notch and status bar, and reflects the latest Xcode/Interface Builder standards.

Example/Example/Base.lproj · high confidence

Updated example app to Swift 5 and modernized UI components

The Example project has been upgraded to Swift 5 and Xcode 10.2, requiring developers to update their own example implementations to match the new API. This includes adopting Swift 5 syntax (e.g., \UIControlState\ to \UIControl.State\, \selected\ to \isSelected\), updating the app's version number to 5.0.0, and adding camera/photo library usage descriptions to the Info.plist. Additionally, several custom cell XIB files (Emoji, DatePicker, Switch, Text) were added or updated to reflect modern Auto Layout and Interface Builder standards.

Example/Example · high confidence

Fixes

Added IDE workspace configuration for 32-bit warnings

The Eureka workspace now includes an IDE workspace checks plist that explicitly enables the IDEDidComputeMac32BitWarning setting. This configuration ensures that Xcode correctly handles 32-bit build warnings for the workspace.

Eureka.xcworkspace · medium confidence

Test coverage

Add UI tests for Decimal and Int row formatters; Added comprehensive unit tests for form row callbacks, validation, and section/row insertion; Updated Eureka project configuration and test references.

Dependencies

Eureka iOS Forms library updated to version 5.5.0

The Eureka library has been updated to version 5.5.0. This update includes a change to the iOS deployment target, which is now set to 9.0, and updates the Swift language version requirement to 5.0. Additionally, the podspec has been adjusted to include all Swift files in the Source directory using a recursive path pattern.

(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

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 49 → 65 (+16.0)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 94 (-6.4)
  • Architecture 87 (new)
  • Maturity 57 → 50 (-6.9)
  • Readiness 27 → 67 (+39.5)
  • Security 75 → 87 (+12.1)

Resolved (7)

  • Dimension evaluation failed
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • No automated tests
  • No exposed public API
  • No tests found
  • Test reliability not included

New (108)

  • Coverage not measured — Swift suite
  • Dependency hygiene PARTLY measured — SwiftPM pinning read, dependency currency NOT established
  • Dormant codebase
  • Duplicated block (10 lines × 2) (Example/Example/Controllers/ValidationsController.swift)
  • Duplicated block (10 lines × 2) (Source/Core/Form.swift)
  • Duplicated block (10 lines × 7) (Source/Rows/DateInlineRow.swift)
  • Duplicated block (10–11 lines × 2) (Example/Example/Controllers/RowsExample.swift)
  • Duplicated block (11 lines × 2) (Source/Rows/Common/FieldRow.swift)
  • Duplicated block (11 lines × 3) (Example/Example/CustomCells.swift)
  • Duplicated block (12 lines × 3) (Source/Rows/ActionSheetRow.swift)
  • Duplicated block (14 lines × 2) (Example/Example/Controllers/NativeEventExample.swift)
  • Duplicated block (21 lines × 6) (Example/Example/Controllers/ValidationsController.swift)
  • Duplicated block (3–6 lines × 3) (Example/Example/CustomCells.swift)
  • Duplicated block (5 lines × 2) (Example/Example/CustomCells.swift)
  • Duplicated block (5 lines × 2) (Source/Core/Core.swift)
  • Duplicated block (5 lines × 2) (Source/Core/Row.swift)
  • Duplicated block (5 lines × 2) (Source/Rows/Common/DateFieldRow.swift)
  • Duplicated block (5 lines × 2) (Source/Rows/Common/FieldRow.swift)
  • Duplicated block (5 lines × 2) (Source/Rows/Common/FieldRow.swift)
  • Duplicated block (5 lines × 2) (Source/Rows/Controllers/MultipleSelectorViewController.swift)
  • …and 88 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

xmartlabs/Eureka 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 028ef8e3191a256b8f6b8bb6b9496efcb0762dbc — 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.