Skip to content
CAI
Software that uses CAICheck a score

wisnuwiry/flutter-starter

69.3

Adequate · 21 September 2026

2.5k

lines of production code

Dart

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a cross-platform mobile and web application built with Flutter, serving as a starter template or base project. It provides a foundational architecture featuring environment-based configuration, dependency injection, and state management via BLoC. The application includes core infrastructure for data handling, error management, and theming, alongside specific features for user settings and navigation. The codebase is supported by comprehensive unit and integration tests for its core and feature modules.

Features

Add settings feature for managing app theme and language

Users can now change the app's theme (light/dark mode) and language through a new Settings page. This feature introduces a complete architecture for settings management, including a local data source using Hive for persistent storage, domain use cases for retrieving and saving preferences, and presentation layer components (BLoCs and UI pages) that allow users to select their preferred theme and supported languages.

lib/features/settings · high confidence

Adds core infrastructure for data, error handling, and theming

The \lib/core\ directory now contains a comprehensive set of foundational utilities and models. This includes data models for countries and languages with JSON serialization, a caching data source interface, and specific exception classes for cache, code, and server errors. The update also introduces a Dio error extension to map HTTP status codes to specific server exceptions, a theme system supporting light and dark modes, and utility classes for parsing numbers and strings. Additionally, a 'not found' page is added to handle missing routes, and the \AppBlocObserver\ is relocated to the core helpers.

lib/core · high confidence

Removals

Removal of Counter feature implementation

The Counter feature has been removed from the application. This includes the deletion of the main entry point (counter.dart), the state management logic (CounterCubit), and the user interface (CounterPage and its associated widgets). Users will no longer have access to the counter functionality within the app.

lib/counter · high confidence

Behavioural changes

Added environment variable configuration and asset directory structure

A new .env.example file has been added to the assets directory, defining configuration keys for BASE\_URL across PROD, STG, and DEV environments. Additionally, placeholder directories for fonts, images, and icons have been created with .gitkeep and .gitignore files to ensure the asset structure is version-controlled.

assets · medium confidence

Migrate to Go Router and Environment-Based Configuration

The app's navigation has been migrated from a basic MaterialApp home widget to Go Router, enabling structured, deep-linkable routes for the home and settings pages. Application configuration is now centralized in a new config module that loads environment-specific values (such as base URLs) via flutter\_dotenv, supporting dev, staging, and production environments. Additionally, the app now initializes a service locator (GetIt) to manage dependencies like BLoCs and data sources, replacing the previous direct widget-based initialization.

lib/app · high confidence

Update app branding and theme colors

The web application's display name and title have been changed from 'Flutter Works' to 'Flutter Starter' in both the HTML head and the web manifest. Additionally, the theme and background colors for the PWA have been updated from blue (\#0175C2) to green (\#8DC53F).

web · medium confidence

Updated app icon and splash screen assets

The Android app's branding assets have been updated. The main app icon and splash screen images have been replaced with new vector drawables (ic\_launcher\_background.xml, ic\_launcher\_foreground.xml, ic\_launch\_image.xml) across the main, development, and staging build variants. Additionally, the Android package name has been changed from 'com.example.flutterWorks' to 'space.wisnuwiry.flutter\_starter' in the manifest and Kotlin source files, and the launch theme styles have been removed from the development and staging resource directories.

android · high confidence

iOS build configuration and identity updates

The iOS project has been updated to target a minimum of iOS 9.0 and includes CocoaPods integration with build phases to check and embed pods frameworks. The app's identity has been changed to 'Flutter Starter' with the bundle identifier 'space.wisnuwiry.flutter\_starter', and Indonesian (id) has been added to the supported localizations.

ios · high confidence

Test coverage

Added comprehensive test coverage for core application components; Added tests for the Settings feature.

Dependencies

Update Flutter project dependencies and build configuration

The project's dependencies have been updated, including bumping the Dart SDK constraint to '\>=2.15.0 \<3.0.0' and upgrading packages such as 'flutter\_bloc' to '^8.0.1', 'get\_it' to '^7.2.0', and 'bloc\_test' to '^9.0.3'. New dependencies like 'go\_router', 'flutter\_dotenv', and 'json\_serializable' have been added, while older versions of 'dartz', 'dio', and 'equatable' have been updated. On the Android side, the compile SDK version was raised to 31, the application ID was changed to 'space.wisnuwiry.flutter\_starter', and the Kotlin version was upgraded to 1.4.32 with the Gradle plugin to 4.1.0. Additionally, the iOS build configuration was updated to disable CocoaPods analytics stats and use modular headers.

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

Lenses

  • Code Health 100 → 99 (-1.2)
  • Architecture 100 → 89 (-10.6)
  • Maturity 91 → 90 (-1.4)
  • Readiness 57 → 50 (-7.0)
  • Security 67 → 80 (+12.5)
  • Domain Modelling 100 → 100 (+0.0)

Resolved (13)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • High CVE: [GHSA redacted] (pubspec.lock)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • No exposed public API
  • Test reliability not included
  • complexity unreadable for .dart, .kt, .swift — churn × complexity hotspots could not be measured
  • early-stage repository — too little history to judge knowledge freshness
  • git history depth insufficient
  • single-maintainer — knowledge-concentration (bus factor) risk

New (18)

  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (11 lines × 2) (lib/core/preferences/themes/dark_theme.dart)
  • Duplicated block (15 lines × 2) (lib/core/preferences/themes/dark_theme.dart)
  • Duplicated block (16 lines × 2) (lib/core/preferences/themes/dark_theme.dart)
  • Duplicated block (31 lines × 2) (lib/core/exceptions/cache_exception.dart)
  • Duplicated block (8 lines × 2) (lib/core/preferences/themes/dark_theme.dart)
  • High CVE: [GHSA redacted] (pubspec.lock)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • Medium: security finding (details withheld)
  • No dependency advisory monitoring
  • TodoComment (lib/core/extensions/dio_error_extension.dart)
  • TodoComment (lib/features/settings/domain/usecases/record_error_usecase.dart)

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

Survey your own repository

wisnuwiry/flutter-starter 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 a42fcc7e4574d7716bf1b82fb993e4dfa97483cc — 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.