Skip to content
CAI
Software that uses CAICheck a score

jogboms/flutter_offline

64.1

Adequate · 19 September 2026

564

lines of production code

Dart

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is a Flutter library that monitors network connectivity and provides robust handling for offline states. It features debounced connectivity monitoring to filter rapid network fluctuations and an \OfflineRetryController\ that enables manual retry attempts with exponential backoff. The library exposes reactive state and UI widgets to help applications detect offline conditions and manage reconnection logic.

Features

Added example app with offline connectivity demos

The example application now includes a set of demo widgets demonstrating the library's offline detection capabilities. Demo 1 showcases an enhanced interface with a retry mechanism using \OfflineRetryController\, allowing users to manually retry connections with exponential backoff and cooldown periods. Demo 2 provides a basic offline indicator that displays a message when connectivity is lost. Demo 3 illustrates the use of \debounceDuration\ to handle delayed offline states. The app also includes standard Flutter project configuration files and a placeholder test file.

example · high confidence

Added retry logic and debounced connectivity monitoring

The library now includes an \OfflineRetryController\ that allows users to manually retry connectivity checks with exponential backoff and cooldown limits, exposing state such as retry count and current retry status for UI integration. Connectivity stream handling has been updated to include debouncing (default 3 seconds) to filter out rapid network fluctuations, and the \OfflineBuilder\ widget now accepts a \retryController\ to manage these retry behaviors.

lib/src · high confidence

Initial Android example app scaffolding

The Android portion of the example application has been added, providing the necessary configuration to run the Flutter app on Android devices. This includes the main AndroidManifest.xml with internet permissions, a Kotlin MainActivity extending FlutterActivity, and standard resource files for launch splash screens and light/dark theme support.

example/android · high confidence

Behavioural changes

Manual retry with exponential backoff and stricter linting

Users can now manually retry connectivity checks when offline using the new \OfflineRetryController\, which supports configurable retry limits (default 5), cooldown periods (default 2s), and exponential backoff (1s, 2s, 4s, 8s, 16s). The controller extends \ChangeNotifier\ for reactive UI updates and allows custom behavior via overridable \onRetry()\ and \onRetryError()\ methods. Additionally, the project has adopted \package:flutter\_lints\ for analysis, enforcing stricter lint rules (e.g., treating missing returns/parameters as errors) and updating the \.gitignore\ to exclude coverage and plugin cache files.

(repo-wide) · high confidence

Removal of legacy Flutter plugin registration and local environment configuration

The Android module no longer includes the auto-generated \GeneratedPluginRegistrant.java\ file, which previously handled the registration of the \connectivity\ plugin, nor does it contain the \local.properties\ file that stored local SDK paths and the previous version name. This indicates a shift away from the older Flutter plugin registration mechanism and the removal of machine-specific build configuration from the repository.

android · high confidence

Test coverage

Added test coverage for utility transformers and OfflineBuilder widget

Added unit tests for the \debounce\ and \startsWith\ stream transformers in \utils\_debounce\_test.dart\ and \utils\_starts\_with\_test.dart\, and expanded the main test suite in \flutter\_offline\_test.dart\ to cover the \OfflineBuilder\ widget's initialization, assertion logic, status reporting, connection state flipping, and debounce behavior.

test · high confidence

Dependencies

Upgrade to connectivity\_plus 7.x and network\_info\_plus 7.x

The library has migrated from the deprecated \connectivity\ package to \connectivity\_plus\ (v7.0.0) and \network\_info\_plus\ (v7.0.0), ensuring compatibility with modern Android and iOS platform channels. This update also raises the minimum supported Dart SDK to 3.0.0 and Flutter to 3.0.0, and introduces \flutter\_lints\ for improved code quality analysis in the example app.

(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

Baseline

  • First survey — no prior run to compare against. CAI 64.

Lenses

  • Code Health 100
  • Architecture 100
  • Maturity 47
  • Readiness 58
  • Security 95
  • Domain Modelling 100

Changes since last survey

  • 59 commits — 57 feature/other, 2 fixes

By area

  • (root) — 31 commits
  • (repo) — 13 commits
  • .github/workflows — 4 commits
  • example/lib — 4 commits
  • .github/FUNDING.yml — 2 commits
  • example/ios — 2 commits
  • lib/src — 2 commits
  • example/android — 1 commit

Notable commits

  • fix: Fixed README
  • fix: fixes #24 : Upgrade connectivity plugin version - Upgrade the version to solve "ConnectivityPlugin.java uses or overrides a deprecated API" issue
  • change: Added Permission requirement to Readme #36
  • change: Apply improved package:flutter_lints
  • change: Bump flutter version to latest stable 3.16.0
  • change: Bumped dependencies (#68)
  • change: Bumped dependencies to support Flutter 3 with Dart 3
  • change: Bumped dependencies to support Flutter 3 with Dart 3 (#58)
  • change: Bumped dependencies to support connectivity_plus 6.x
  • change: Bumped dependencies to support connectivity_plus 6.x (#65)
  • change: Bumped dependencies to support connectivity_plus and network_info_plus 7.x
  • change: Bumped dependencies to support network_info_plus 6.x
  • change: Bumped dependencies to support network_info_plus 6.x (#66)
  • change: Changed version to 3.0.0
  • change: Clean up analysis errors
  • change: Delete travis config
  • change: Format affected files
  • change: Implement retry logic (#69)
  • change: Include flutter cache on CI
  • change: Increase line wrap to 120
  • …and 39 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

jogboms/flutter_offline 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 19 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 8062f547c66677f14509185a90e5eb5f07fde52f — 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-13a154b7f5d1.