Skip to content
CAI
Software that uses CAICheck a score

gonzalonm/xamarin-forms-clean

43.1

Weak · 21 September 2026

788

lines of production code

C#

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This is a cross-platform mobile application built on the Xamarin framework, specifically designed to manage city data. It implements a reactive architecture by leveraging the Rx.NET library to handle asynchronous, non-blocking data flows from the API layer to the presentation layer. The system replaces traditional callback-based interactions with observable streams, enabling a more responsive user interface and decoupled data handling.

Behavioural changes

Migrated data access layer to reactive streams using Rx.NET

The application's data access layer has been refactored to use the Reactive Extensions (Rx.NET) library, replacing the previous synchronous callback-based execution model. This change updates the \UseCase\ base class and its implementations (such as \GetAllCitiesUseCase\) to return \IObservable\ streams instead of executing via callbacks. The \RestApi\ and \CityRepository\ layers now produce observable sequences, allowing the \CityPresenter\ to subscribe to data streams directly. This shift enables asynchronous, non-blocking data flow throughout the domain and data layers, improving responsiveness and aligning with a reactive architecture.

XamarinCleanApp · high confidence

Dependencies

Added Rx.NET and .NET Standard library dependencies

The project now includes the System.Reactive and System.Reactive.Linq packages (version 4.0.0-preview00001), enabling the use of reactive programming patterns in the application. Additionally, a comprehensive set of .NET Standard 1.3 library packages (such as System.IO.Compression, System.Net.Http, and various System.\* packages) have been added to support the application's dependencies on Android and iOS platforms.

(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 43 → 43 (-0.2)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 66 → 65 (-1.2)
  • Architecture 84 → 84 (+0.0)
  • Maturity 58 → 58 (+0.0)
  • Readiness 17 → 17 (+0.0)
  • Security 100 → 100 (+0.0)

Resolved (7)

  • Build did not complete in the analyzer
  • No exposed public API
  • early-stage repository — too little history to judge knowledge freshness
  • git history depth insufficient
  • git history depth insufficient
  • redundant comment (XamarinCleanApp/Core/Domain/UseCase/DefaultObserver.cs)
  • single-maintainer — knowledge-concentration (bus factor) risk

New (3)

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

Architecture

  • Unchanged — 1 containers · 0 contexts · 0 edges

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

Survey your own repository

gonzalonm/xamarin-forms-clean 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 21 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 fbf986ae7a1ef75fdb106843b1b91e56a222b0d2 — 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-fa71c66cabd8.