Skip to content
CAI
Software that uses CAICheck a score

stryder-dev/flutter_platform_widgets

59.2

Adequate · 19 September 2026

10.5k

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 discontinued Flutter library that provides a suite of cross-platform UI components, automatically rendering Material Design on Android and Cupertino styles on iOS. It exposes platform-aware widgets for common UI elements, navigation helpers, and theming support to ensure consistent appearance across mobile platforms. The repository also includes a comprehensive example application that demonstrates these capabilities and has been extended to support macOS, iOS, and web targets.

How it got here

2018 — Initial release and discontinuation

5 changes.

The period marks the initial release of the flutter\_platform\_widgets library, establishing its public API and cross-platform widget infrastructure. It concludes with the discontinuation of the package in version 10.0.0, reflecting Flutter's split of Material and Cupertino widgets into separate packages and introducing breaking changes to the API.

2019 — Example app multi-platform expansion

8 changes.

The work focused on expanding the example application to support macOS and iOS platforms, including scaffolding, configuration updates, and tooling alignment with newer Flutter versions. The app was restructured to demonstrate advanced platform-specific features, theming, and runtime switching between Material and Cupertino interfaces.

2021–2025 — Example app expansion and SDK update

4 changes.

The example application was expanded to include macOS support and new tab navigation views, while the Flutter SDK was updated to version 3.24.0. These changes introduced PlatformTabController for better state management and added platform-specific resources and build configurations.

Features

Add macOS platform support to the example app

The example application now includes a complete macOS target, enabling users to build and run the app on macOS. This change adds the necessary Xcode project structure, including the Runner target, Swift application entry points (AppDelegate and MainFlutterWindow), and macOS-specific resources like the main menu and app icons. It also configures build settings, entitlements for sandboxing and JIT, and Flutter integration files required to package the Flutter engine for the desktop platform.

example/macos · high confidence

Added iOS example project scaffolding

The iOS example application scaffolding has been added to the repository, including the \AppDelegate\, \Info.plist\, storyboards, and asset catalogs. This provides a complete, buildable iOS target for the example app, enabling users to run and test the library on iOS devices and simulators.

example/ios/Runner · high confidence

Added macOS support to the Flutter example project

The example application now supports the macOS platform. This is evidenced by the addition of macOS-specific configuration in the project metadata file, which registers macOS as a target platform alongside the existing root configuration, and the inclusion of standard Flutter/Dart ignore rules and iOS workspace structures that facilitate the multi-platform setup.

example · high confidence

Initial release of cross-platform widget library

Introduces a new library providing platform-adaptive Flutter widgets that automatically render Material Design on Android and Cupertino (iOS) styles on iOS. The diff adds the core infrastructure including a \PlatformProvider\ for context-aware styling, a \PlatformApp\ to bootstrap the application, and a comprehensive suite of UI components such as \PlatformAlertDialog\, \PlatformCheckbox\, \PlatformIconButton\, \PlatformDatePicker\, and \PlatformAppBar\. It also includes helper utilities like \PlatformIcons\ for context-sensitive icon selection and extensions for conditional widget wrapping.

lib/src · high confidence

Initial release of the flutter\_platform\_widgets library

The library is now available for import via the \flutter\_platform\_widgets\ entry point, exposing a comprehensive suite of cross-platform UI components. Users can now utilize platform-aware widgets such as \PlatformApp\, \PlatformTextField\, \PlatformCheckbox\, \PlatformSlider\, and \PlatformDatePicker\, along with navigation helpers like \showPlatformDialog\ and \showPlatformModalSheet\, and theming support via \platformThemeData\. This initial commit establishes the public API surface for the package.

lib · high confidence

New example views for tab navigation and sub-pages

The example application now includes dedicated view components for demonstrating tab-based navigation and nested routing. ContentView displays tab-specific content with a counter and navigation controls, SliverView implements platform-adaptive scrollable headers using Material 3 and Cupertino styles, and SubPage provides a reusable scaffold for pushing deeper into the navigation stack. These files constitute the UI layer for the tab pages example, leveraging flutter\_platform\_widgets for consistent cross-platform appearance.

_example/lib/tab\pages/views · high confidence

Behavioural changes

Added iOS workspace configuration files for the example project

The example iOS project now includes the standard Xcode workspace structure, specifically adding \contents.xcworkspacedata\, \IDEWorkspaceChecks.plist\, and \WorkspaceSettings.xcsettings\. These files configure the workspace to reference the local project and explicitly disable SwiftUI Previews, ensuring a consistent build environment for developers using the example app.

example/ios/Runner.xcodeproj/project.xcworkspace · high confidence

Example app restructured with new platform-switching and theming capabilities

The example application has been significantly reorganized to demonstrate advanced platform widget features. A new main entry point configures the app with PlatformProvider and PlatformTheme, enabling runtime switching between Material and Cupertino platforms and supporting light/dark mode themes. The UI now includes dedicated pages for browsing platform icons, testing the new PlatformSliverAppBar, and exploring various PlatformTabScaffold implementations. Utility extensions were added to simplify platform-specific widget rendering, and the app now supports building for the web via a new web directory with PWA configuration.

example/lib · high confidence

Package discontinued and version bumped to 10.0.0

The \flutter\_platform\_widgets\ package is now discontinued and will receive no further bug fixes or compatibility updates, as Flutter has split Material and Cupertino widgets into their own packages. This release (v10.0.0) supports Flutter v3.38.6, adds all new properties for that version, removes deprecated parameters, and introduces breaking changes: \PlatformRadio\'s \value\ prop is now non-nullable (requiring \RadioGroup\ for grouping), and \CupertinoNavigationBarData\'s \title\ property has been renamed to \middle\.

(repo-wide) · high confidence

Updated Android example project to Flutter V2 embedding

The Android example project has been updated to use Flutter's V2 Android embedding, which changes how the application initializes and handles themes. This includes migrating MainActivity to extend FlutterActivity, configuring the AndroidManifest to declare the flutterEmbedding version 2, and updating resource styles to support both light and dark modes via NormalTheme and LaunchTheme definitions. Additionally, the Gradle wrapper has been upgraded to version 7.5.

example/android · high confidence

Updated Flutter SDK version to 3.24.0

The project's Flutter SDK version has been updated to 3.24.0 via FVM. This change ensures that the development environment uses the specified stable release, which may include new features, performance improvements, and bug fixes compared to previous versions.

.fvm · high confidence

Updated example tab pages to use PlatformTabController

The example application's tab pages (basic, dynamic, original, and sliver) have been updated to utilize the new PlatformTabController for managing tab state. This change allows for more explicit control over the tab controller lifecycle and state, as demonstrated by the initialization of the controller in initState and its usage within the PlatformTabScaffold. The original tabbed page also demonstrates adding a listener to the controller for debugging purposes.

_example/lib/tab\pages · high confidence

Updated iOS Xcode scheme for Flutter 3.16 compatibility

The iOS example project now includes a regenerated Xcode scheme file (Runner.xcscheme) to align with the upgrade to Flutter 3.16. This change ensures that build, test, launch, profile, analyze, and archive actions are correctly configured for the new Flutter version, specifically setting the last upgrade version to 1510 (Xcode 15.1) and enabling GPU validation mode for debugging.

example/ios/Runner.xcodeproj/xcshareddata · high confidence

Updated iOS example project configuration

The iOS example project's Xcode project file has been regenerated to align with the current Flutter tooling. This update ensures the project structure, including build phases and file references, matches the expected configuration for the example app, resolving any discrepancies from previous manual edits or older Flutter versions.

example/ios/Runner.xcodeproj · medium confidence

Updated iOS example project configuration and tooling

The iOS example project has been updated to support Flutter 3.32.0, raising the minimum deployment target to iOS 12.0 as defined in the new AppFrameworkInfo.plist. Additionally, the project now includes generated configuration files (Debug.xcconfig, Release.xcconfig) and LLDB debugging helpers (flutter\_lldb\_helper.py, flutter\_lldbinit) to improve the development and debugging experience for the example app.

example/ios/Flutter · high confidence

Test coverage

Added initial test file for Flutter platform widgets

Added a new test file (flutter\_platform\_widgets\_test.dart) that currently contains commented-out placeholder tests for a Calculator class. The tests are not yet active, so no functional test coverage is provided at this time.

test · high confidence

Dependencies

Update example project to Flutter 3.38+ and Dart 3.8+ with Android Gradle 7.3

The example application and the main package have been updated to require newer SDK versions: the package now targets Dart \>=3.8.0 and Flutter \>=3.38.0, while the example app targets Dart \>=2.17.0 and Flutter 1.0.0+1. The example's Android configuration has been upgraded to use Android Gradle Plugin 7.3.0, Kotlin 1.7.10, and compile/target SDK 31, ensuring compatibility with modern Android build tools. Additionally, the \cupertino\_icons\ dependency was updated from ^1.0.2 in the example to ^1.0.8 in the main package.

(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 59.

Lenses

  • Code Health 97
  • Architecture 99
  • Maturity 58
  • Readiness 36
  • Security 100
  • Domain Modelling 100

Changes since last survey

  • 300 commits — 244 feature/other, 56 fixes

By area

  • lib/src — 86 commits
  • (repo) — 79 commits
  • (root) — 68 commits
  • example/lib — 42 commits
  • example/ios — 8 commits
  • docs/index.md — 4 commits
  • lib/flutter_platform_widgets.dart — 3 commits
  • docs/get_started.md — 2 commits
  • .github/FUNDING.yml — 1 commit
  • .github/no-response.yml — 1 commit
  • docs/_config.yml — 1 commit
  • docs/app_setup.md — 1 commit
  • example/android — 1 commit
  • example/macos — 1 commit
  • images/logo.png — 1 commit
  • images/platform_icons — 1 commit

Notable commits

  • fix: Fix
  • fix: Fix incorrect removal of toUpperCase()
  • fix: Fix missing padding on PlatformIconButton
  • fix: Fix padding of dialog action buttons
  • fix: Fix use of color property on platform button
  • fix: Merge pull request #272 from stryder-dev/fix-#253---Add-Elevated-and-Text-buttons
  • fix: Merge pull request #273 from stryder-dev/fix-#251-PlatformTextFormField
  • fix: Merge pull request #275 from stryder-dev/fix-#274-Remove-unmapped-icons
  • fix: Merge pull request #283 from stryder-dev/fix-#282-AppBar-elevation-from-Theme
  • fix: Merge pull request #289 from stryder-dev/fix-#284-#287-Material-with-iOS
  • fix: Merge pull request #293 from stryder-dev/#292-fix-cupertino-title-using-material
  • fix: Merge pull request #304 from stryder-dev/fixes-for-#300,-301,-303
  • fix: Merge pull request #309 from stryder-dev/fix-#308-Use-textButton-for-Material-dialog-action
  • fix: Merge pull request #313 from stryder-dev/fix-#310-Example-links
  • fix: Merge pull request #318 from stryder-dev/fix-#317-CupertinoTextFoprmField-maxlines-nullability
  • fix: Merge pull request #350 from stryder-dev/fix-#253-remove-deprecated-platform-button
  • fix: Merge pull request #360 from Yoann-TYT/hotfix/adding-router-config-to-be-comptatible-with-go-router
  • fix: Merge pull request #368 from stryder-dev/fix-color-property-on-platform-buttpn
  • fix: Merge pull request #372 from stryder-dev/fix-platform-icon-button-padding
  • fix: Merge pull request #390 from stryder-dev/#387-fix-ios-resizing-of-title
  • …and 280 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

stryder-dev/flutter_platform_widgets 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 44d39be2a3053dcc7349c2f6ba0e7027c4dec134 — 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.