serenader2014/flutter_carousel_slider
48.1
Weak · 19 September 2026
1.4k
lines of production code
Dart
with C++, C
1
measurement over time
What this system is
This system is a Flutter library that implements a carousel slider widget with support for multiple platforms including iOS, Android, Linux, and macOS. It provides programmatic control over the carousel's navigation and autoplay state, along with an optimized builder for handling large datasets. The project maintains a modernized example application to demonstrate usage and ensure compatibility with current Flutter and Android standards.
Features
Introduce external controller and on-demand item builder for CarouselSlider
The library now exposes a \CarouselSliderController\ that allows external code to programmatically control the carousel (e.g., \nextPage\, \previousPage\, \animateToPage\, \startAutoPlay\, \stopAutoPlay\) and wait for it to be ready via \onReady\. Additionally, a new \CarouselSlider.builder\ constructor enables on-demand item building, which is useful for large datasets or cooperating with Hero animations via the provided \realIndex\. The configuration is now encapsulated in a \CarouselOptions\ class, and the internal state management has been refactored to support these new capabilities.
lib · high confidence
Behavioural changes
Example project regenerated for modern Flutter platforms
The example application has been recreated to use the latest Flutter project structure, adding native support for Linux and macOS alongside the existing iOS and Android targets. This update includes platform-specific configuration files (such as CMake for Linux and Xcode project settings for macOS), updated iOS build scripts, and a new Dart analysis options file to enforce standard linting rules.
example · high confidence
Migrate example app to Flutter v2 embedding and Kotlin
The Android example project has been upgraded to use the Flutter v2 Android embedding, which changes how the app initializes and handles themes. The main activity has been migrated from Java to Kotlin, and the AndroidManifest.xml has been updated to declare the v2 embedding, use the new NormalTheme for the app's background, and set the activity as exported. Additionally, the build configuration now targets SDK 29, uses Kotlin standard library dependencies, and derives versioning from local properties.
example/android · high confidence
Test coverage
Removed default widget test file
The default Flutter widget test file (widget\_test.dart) containing the boilerplate 'Counter increments smoke test' has been removed from the project.
test · high confidence
Dependencies
Update example project to Kotlin DSL and modern Android configuration
The example application's Android build configuration has been migrated from Groovy to Kotlin DSL (build.gradle.kts), updating the Android Gradle Plugin to version 8.11.1 and Kotlin to 2.2.20. The project now targets Java 17, enables AndroidX with Jetifier, and uses the standard Flutter Gradle plugin. Additionally, the example's pubspec.yaml has been updated to specify an SDK constraint of \>=2.12.0 \<3.0.0, and the main package's pubspec.yaml now explicitly declares version 5.1.2 with an SDK constraint of \>=2.12.0 \<4.0.0. Lockfiles have been removed from the repository.
(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 48.
Lenses
- Code Health 99
- Architecture 69
- Maturity 52
- Readiness 24
- Security 100
- Domain Modelling 100
Changes since last survey
- 181 commits — 141 feature/other, 40 fixes
By area
- (root) — 57 commits
- (repo) — 53 commits
- lib/carousel_slider.dart — 30 commits
- example/ios — 8 commits
- example/lib — 8 commits
- lib/carousel_controller.dart — 8 commits
- lib/carousel_options.dart — 8 commits
- example/android — 3 commits
- example/macos — 2 commits
- example/README.md — 1 commit
- example/linux — 1 commit
- example/web — 1 commit
- example/windows — 1 commit
Notable commits
- fix: - make Duration and Curve required - use Transform.scale instead of SizedBox - fix CarouselPageChangedReason - add pauseAutoPlayOnTouch option - add pauseAutoPlayOnManualNavigate option - add pauseAutoPlayInFiniteScroll option - add pageViewKey option
- fix: Bug fix initial item incorrect
- fix: FIX - #256
- fix: FIX - Prevent assertion trow in debug mode
- fix: Fix CarousePageChangedReason.manual never being emitted
- fix: Fix animateTo()/jumpTo() with non-zero initialPage
- fix: Fix relative path for image to properly show on Pub
- fix: Fixes Touchpad Scrolling
- fix: Fixes Touchpad Scrolling
- fix: Issue and fix
- fix: Merge branch 'master' into padends-fixes
- fix: Merge pull request #160 from OwnWeb/fix/reason-manuel-never-emitted
- fix: Merge pull request #240 from xu-baolin/bugfix
- fix: Merge pull request #30 from jesusbibieca/fix-relative-path
- fix: Merge pull request #316 from darkCavalier11/carouselController-type-fix
- fix: Merge pull request #330 from zae1403/padends-fixes
- fix: Merge pull request #36 from joelbrostrom/fix/clean-up-constructor-after-deprecation-removal
- fix: Merge pull request #379 from AurimasOutgrid/fix/disposing-timer
- fix: Merge pull request #55 from huobazi/fix-on-page-changed-index
- fix: Merge pull request #89 from noinskit/fix
- …and 161 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
serenader2014/flutter_carousel_slider 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 d7751cd7096b9eac71664fd89f78ba5b2e87c185 — 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.