Skip to content
CAI
Software that uses CAICheck a score

RxSwiftCommunity/RxGesture

55.8

Adequate · 1 October 2026

2.3k

lines of production code

Swift

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

RxGesture is a reactive iOS and macOS library that wraps native gesture recognizers into observable sequences using RxSwift. It provides declarative extensions for handling various gestures, including taps, pans, rotations, and combined transform inputs, across both Apple platforms. The system includes demo applications and unit tests to validate gesture state emissions and facilitate integration.

Features

Add macOS gesture recognizer support

This change introduces reactive extensions for macOS gesture recognizers, enabling developers to observe and configure gestures such as clicks, pans, rotations, magnification, and presses on AppKit views. The new files in Pod/Classes/OSX provide Factory methods and Reactive extensions (e.g., \clickGesture\, \panGesture\, \rotationGesture\) that wrap \NSGestureRecognizer\ instances into observable sequences, allowing for declarative gesture handling in macOS applications.

Pod/Classes/OSX · high confidence

Added iOS and macOS example projects

The repository now includes Xcode project files for RxGesture example applications on both iOS and macOS. These demo projects are configured to use CocoaPods for dependency management, linking against RxSwift and RxCocoa frameworks, and provide a starting point for users to see the library in action on Apple platforms.

Example/RxGesture.xcodeproj · high confidence

Added macOS and iOS build schemes for RxGesture

The project now includes dedicated Xcode schemes for building and testing the library on both macOS (RxGesture-OSX) and iOS (RxGesture-iOS). This enables developers to run unit tests and build the framework specifically for these platforms using Carthage or Xcode, ensuring proper configuration for each target.

RxGesture/RxGesture.xcodeproj/xcshareddata · high confidence

Added setup script with Carthage validation

A new \bin/setup\ script has been introduced to streamline the initial project configuration. This script verifies that Carthage is installed on the system and exits with an error message if it is missing. If the dependency manager is present, it automatically runs \carthage update\ using specific flags (\--use-xcframeworks\, \--use-submodules\, \--no-use-binaries\) to ensure consistent dependency resolution.

bin · high confidence

Initial project structure and framework configuration for RxGesture

The RxGesture library has been initialized with the necessary project configuration files to support distribution via Carthage. This includes the creation of the Xcode workspace definition, the framework's Info.plist with default bundle settings, and the main RxGesture.h umbrella header which exposes the public API and version constants to consumers.

RxGesture/RxGesture, RxGesture/RxGesture.xcodeproj/project.xcworkspace · high confidence

Interactive gesture recognition examples in the RxGesture demo app

The Example/RxGesture application now provides an interactive, step-by-step walkthrough of gesture recognition capabilities. The demo features a \Step\-based navigation system that cycles through various gesture types—including tap, double-tap, swipe, long-press, force touch, pan, pinch, and rotation—displaying the corresponding RxSwift code snippet and allowing users to trigger the gestures on a live view to observe the reactive behavior.

Example/RxGesture · high confidence

Introduce generic gesture delegate policies and factory-based gesture creation

The library now supports configuring gesture recognizer behavior through a new \GenericRxGestureRecognizerDelegate\ that exposes customizable policies (such as \beginPolicy\, \touchReceptionPolicy\, and \simultaneousRecognitionPolicy\) for fine-grained control over gesture interactions. This is paired with a new \Factory\ struct that simplifies gesture instantiation and delegate attachment, enabling a more declarative approach to setting up gestures via the \rx.gesture\ and \rx.anyGesture\ extensions on views.

Pod/Classes · high confidence

New gesture recognizers and combined transform support

The library now exposes observables for Force Touch, Touch Down, and Hover gestures, alongside convenience methods to observe multiple gestures simultaneously. A new \transformGestures()\ operator combines pan, rotation, and pinch inputs into a single observable, providing unified access to the resulting transform and velocity data.

Pod/Classes/iOS · high confidence

New macOS demo application for RxGesture

A new macOS example application has been added to demonstrate RxGesture capabilities. The app features a step-by-step interface that showcases various gesture recognizers, including left, right, and double-click gestures, as well as pan, rotation, and magnification. It includes a 'previous' and 'next' navigation system to cycle through examples, displaying the corresponding Swift code and allowing users to interact with the gestures on a sample view.

Example/RxGesture-OSX · high confidence

Behavioural changes

Added Xcode scheme for iOS demo and UI tests

The project now includes a dedicated Xcode scheme (RxGesture\_iOS\_Demo.xcscheme) that configures the build, launch, and test actions for the iOS demo application. This scheme explicitly includes the RxGesture\_Tests and RxGesture\_iOS\_DemoUITests targets in the test action, enabling users to run unit and UI tests directly from the Xcode interface alongside the demo app.

Example/RxGesture.xcodeproj/xcshareddata · high confidence

Added Xcode workspace configuration for the example project

The example project now includes a dedicated Xcode workspace (Example/RxGesture.xcworkspace) that groups the main RxGesture project and the CocoaPods dependencies (Pods.xcodeproj). Additionally, a workspace check file is added to suppress the 32-bit architecture warning in Xcode, ensuring a cleaner build experience for users running the example.

Example/RxGesture.xcworkspace · high confidence

RxGesture project configuration updated for macOS support and xcframework dependencies

The Xcode project file has been reconfigured to support building for macOS (OSX) alongside iOS, including the addition of macOS-specific gesture recognizer extensions (such as NSClick and NSPan) and linking against macOS versions of RxSwift and RxCocoa. The project now references RxSwift, RxCocoa, RxRelay, RxBlocking, and RxTest as xcframeworks via Carthage, and includes a new UIHoverGestureRecognizer extension for iOS 13+ and Mac Catalyst. Additionally, the project structure now explicitly separates iOS and OSX source groups and includes iOS test targets.

RxGesture/RxGesture.xcodeproj · high confidence

Updated demo app interface with new layout and navigation controls

The RxGesture demo application now features a redesigned user interface, including a new launch screen and a main storyboard that displays gesture instructions, a read-only code snippet view, and an interactive square view for gesture demonstration. The interface also includes 'previous' and 'next' navigation buttons to step through different gesture examples.

Example/RxGesture/Base.lproj · high confidence

Updated macOS example app storyboard to Xcode 10.2 format

The Main.storyboard file for the RxGesture-OSX example application has been regenerated using Xcode 10.2 (Interface Builder 14490.70). This update ensures the example project's UI definition is compatible with the current development environment and resolves potential warnings or compatibility issues when opening the project in newer versions of Xcode.

Example/RxGesture-OSX/Base.lproj · high confidence

Test coverage

Added initial unit tests for RxGesture

Added a new test target (RxGesture-iOS-Tests) containing an Info.plist and a test suite (RxGestureTests.swift) that verifies the behavior of the gesture observable extension. The tests confirm that the RxGesture observable correctly emits the sequence of UIGestureRecognizer states (possible, began, changed, ended) when a gesture is simulated.

RxGesture/RxGesture-iOS-Tests · high confidence

Dependencies

Library ownership transferred to RxSwiftCommunity and dependency updated to RxSwift 6.0

The RxGesture library has been transferred from Marin Todorov to the RxSwiftCommunity organization, reflected in the updated LICENSE file. Additionally, the project now requires RxSwift 6.0 (specifically resolved to 6.1.0 via Carthage), which aligns with the support for newer iOS/macOS gesture recognizers like UIHoverGestureRecognizer mentioned in the documentation.

(repo-wide) · high confidence

Update RxGesture to 4.0.4 with RxSwift 6.0 support

The RxGesture library has been updated to version 4.0.4, aligning its dependencies with RxSwift and RxCocoa version 6.0. This change ensures compatibility with the latest reactive framework releases and updates the Swift version requirement to 5.1. The CocoaPods specification, Package.swift manifest, and example app configurations have all been adjusted to reflect these dependency updates, allowing users to integrate gesture recognition with the newer RxSwift ecosystem.

(dependencies) · high confidence

Updated RxSwift submodule to version 7e01c05

The RxSwift dependency managed via Carthage has been updated to commit 7e01c05f25c025143073eaa3be3532f9375c614b. This change ensures that the project uses the latest code from the RxSwift repository, which may include bug fixes, performance improvements, or new features provided by the upstream library.

Carthage · high confidence

Housekeeping

Added SwiftLint configuration and project metadata file; Placeholder for Pod/Assets directory.

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 57 → 56 (-0.8)
  • Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (+0.0)
  • Architecture 91 → 98 (+6.5)
  • Maturity 49 → 49 (+0.0)
  • Readiness 38 → 36 (-1.7)
  • Security 93 → 96 (+2.8)

Resolved (2)

  • Documentation: no architecture or design documentation (README.md)
  • Documentation: no installation or build instructions (README.md)

New (1)

  • Coverage not measured — Swift suite

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

Survey your own repository

RxSwiftCommunity/RxGesture 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 1 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 e9f94dfd39efe5b2914ac9463d4193b9e340779c — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.