NearHuscarl/flutter_login
71.7
Strong · 19 September 2026
7.4k
lines of production code
Dart
with C++
1
measurement over time
What this system is
This system is a Flutter library that provides a customizable, animated authentication UI for login, signup, and password recovery flows. It features a modular architecture with provider-based state management, supporting social logins, custom form fields, and comprehensive theming. The library includes a cross-platform example application demonstrating these capabilities on Android, iOS, Linux, macOS, and Windows.
How it got here
2019 — Major API overhaul and modernization
15 changes.
The library underwent a significant restructuring, replacing the previous API with a modular, provider-based state management system and introducing new data models for authentication and form fields. The authentication UI was completely redesigned with advanced animations and custom widgets, while the example application was modernized to demonstrate these new capabilities using Flutter 3.27+ and updated build tooling.
2020–2023 — platform expansion and UI modularization
6 changes.
The project expanded its example application to support macOS, Linux, and Windows platforms, adding native build configurations and platform-specific features. Concurrently, the authentication interface was refactored into modular card components to improve maintainability, while new utility helpers and automation scripts were introduced to streamline development and UI customization.
Features
Add macOS platform support to the example app
The example application now includes a complete macOS native project, enabling users to build and run the app on macOS. This change adds the necessary Xcode project structure, Swift source files (AppDelegate and MainFlutterWindow), and configuration files (Info.plist, entitlements, and xcconfigs) required to integrate Flutter with the macOS platform.
example/macos · high confidence
Added automation scripts for GIF conversion and input simulation
The repository now includes a new scripts directory containing utility tools for developers. A README provides an FFmpeg command to convert MP4 videos to GIFs with specific visual filters. Additionally, a new AutoHotkey script (typer.ahk) is introduced to automate text input into a specific Firefox window, simulating typing for a username and password with configurable delays and error handling.
scripts · high confidence
Added native Linux and Windows project scaffolding for the example app
The example application now includes the necessary native build configurations and source files to run on Linux and Windows. On Linux, a GTK-based CMake build is provided, including a main entry point and a custom application class that detects the desktop environment to use a header bar on GNOME or a traditional title bar on other window managers. On Windows, a CMake-based build is added with a Win32 window implementation that supports high-DPI scaling, per-monitor DPI awareness, and automatic dark-mode theme integration based on system settings.
example/linux, example/windows · high confidence
New demo widgets for animations and UI components
The example app now includes three new reusable widgets in the widgets directory: AnimatedNumericText for animating number changes with formatting, FadeIn for sliding and fading content with configurable directions, and RoundButton for interactive circular buttons with loading state support.
example/lib/widgets · high confidence
New utility helpers for login form configuration and UI feedback
Added a suite of utility functions in lib/src/utils to streamline login form customization and user feedback. The new text\_field\_utils.dart provides logic to automatically determine the correct keyboard type, autofill hints, prefix icons (using Font Awesome), and label text based on the LoginUserType (e.g., phone, email, name). Additionally, widget\_helper.dart introduces helper functions to display success and error toast notifications via Flushbar, while color\_helper.dart offers utilities for color shade manipulation and brightness estimation to support dynamic theming.
lib/src/utils · high confidence
Behavioural changes
Example app modernized with new routing, animations, and UI components
The example application has been significantly refactored to demonstrate advanced FlutterLogin capabilities. It now uses a custom \FadePageRoute\ and a \TransitionRouteObserver\ to manage route transitions and lifecycle events, enabling smoother navigation between the login and dashboard screens. The login screen (\login\_screen.dart\) has been updated to use the \FlutterLogin\ widget directly, supporting social login providers (LinkedIn, Google, GitHub), additional signup fields (including phone numbers), and terms of service checkboxes. The dashboard screen (\dashboard\_screen.dart\) is now a stateful widget featuring animated numeric text for account balance, hero animations for the logo and title, and a loading animation controller that triggers on route entry. The app also integrates \font\_awesome\_flutter\ for icons and applies a custom theme with specific font families (OpenSans, NotoSans, Quicksand) and color schemes.
example/lib · high confidence
Example project updated to Flutter stable channel and configured with very\_good\_analysis
The example application has been migrated from the Flutter beta channel to the stable channel, as reflected in the updated .metadata file. Additionally, the project now includes an analysis\_options.yaml file that enforces the very\_good\_analysis linting ruleset, providing stricter code quality checks for developers using the example. The .gitignore file has also been updated to align with current Flutter tooling standards, removing obsolete entries and adding paths for migration artifacts and build outputs.
example · high confidence
Introduce provider-based state management for authentication and UI configuration
The library now uses dedicated provider classes to manage authentication state and UI customization. The new \Auth\ provider in \lib/src/providers/auth.dart\ centralizes login/signup mode, credentials, and callback handling, exposing \AuthMode\ and \AuthType\ enums along with methods like \switchAuth\. A new \LoginMessages\ provider in \lib/src/providers/login\_messages.dart\ allows full customization of all user-facing strings (labels, hints, errors, success messages) for localization or branding. Additionally, \LoginTheme\ in \lib/src/providers/login\_theme.dart\ provides granular control over the visual appearance, including button styling (\LoginButtonTheme\), colors, typography, padding, and layout properties like logo width and card positioning.
lib/src/providers · high confidence
Major library restructuring and API overhaul
The library has been significantly refactored, introducing a new modular architecture with dedicated providers for authentication, theming, and messages, alongside new model classes for login data, user types, and sign-up data. The public API has changed substantially: the previous \LoginScreen\ widget and \LoginData\ class have been replaced or restructured, with new exports for \LoginProvider\, \SignupData\, and \TermOfService\. Internal utilities like \Regex\ and \LoginData\ have been removed or moved, and the library now relies on the \provider\ package for state management and \sign\_in\_button\ for third-party login buttons. This change represents a breaking update to the library's structure and public interface.
lib · high confidence
Migrated Android example app to embedding V2
The Android example app has been upgraded to use the Flutter Android embedding V2. This migration updates the MainActivity to extend FlutterActivity, replaces the deprecated FlutterApplication and GeneratedPluginRegistrant with the new embedding architecture, and configures the AndroidManifest to declare the V2 embedding and NormalTheme. Users running the example on Android will benefit from the modern embedding model, which improves plugin registration and compatibility with current Flutter versions.
example/android · high confidence
New data models for login, signup, and custom form fields
The library introduces a set of new model classes in \lib/src/models\ to structure authentication data and form configuration. \LoginData\ now encapsulates username and password for login callbacks. \SignupData\ replaces previous callback signatures, returning a structured object containing the user's name, password, additional provider fields, and a list of \TermOfServiceResult\ objects to track terms acceptance. \UserFormField\ allows developers to define custom input fields with specific types (defined in the new \LoginUserType\ enum, which includes email, phone, intlPhone, checkbox, etc.), validators, icons, and tooltips. \TermOfService\ and \TermOfServiceResult\ models support mandatory and optional agreement terms within the signup flow.
lib/src/models · high confidence
Redesigned authentication UI with new animated widgets
The authentication interface has been completely rebuilt with a new set of custom widgets to enhance visual polish and animation. The layout now uses a \GradientBox\ for the background and \ExpandableContainer\ for smooth card transitions. Input fields are handled by \AnimatedTextFormField\, which supports inertia-driven entry animations and international phone number input via \form\_builder\_phone\_field\. Button interactions are managed by \AnimatedButton\ and \AnimatedIconButton\, which feature a loading ring animation and dynamic width adjustment based on text content. Text transitions between states use \AnimatedText\ for 3D slide effects, while \HeroText\ provides smooth font-size animations for titles during route changes. The \TermCheckbox\ widget now integrates with \url\_launcher\ to open terms of service links directly from the form.
lib/src/widgets · high confidence
Refactored authentication UI into modular card components
The authentication interface has been restructured from a monolithic implementation into a set of distinct, reusable widgets located in the \lib/src/widgets/cards\ directory. The new \AuthCard\ acts as the central orchestrator, managing page transitions and state for specialized sub-components: \\_LoginCard\ for credential entry, \\_AdditionalSignUpCard\ for extra user data collection, \\_RecoverCard\ and \\_ConfirmRecoverCard\ for password reset flows, and \\_ConfirmSignupCard\ for email verification. This modularization improves code maintainability and allows for more granular control over the behavior and theming of each specific authentication step.
lib/src/widgets/cards · high confidence
Update iOS app name and enable modern iOS behaviors
The example iOS app's display name has been changed from 'example' to 'flutter\_login' via the Info.plist configuration. Additionally, the project now enables CADisableMinimumFrameDurationOnPhone to allow apps to run at lower frame rates when necessary, and enables UIApplicationSupportsIndirectInputEvents to support indirect input methods like mouse and keyboard on iPadOS.
example/ios/Runner · high confidence
iOS example project migrates to CocoaPods dependency management
The iOS example app's build configuration has been updated to use CocoaPods for managing dependencies. The project file now references the \Pods\_Runner.framework\ instead of the previously embedded \Flutter.framework\ and \App.framework\, and includes new build phases to check the Pods manifest and embed pod frameworks (such as \PhoneNumberKit\, \libphonenumber\_plugin\, and \url\_launcher\_ios\). Additionally, the Xcode workspace now includes the \Pods.xcodeproj\, and the project settings have been upgraded to Xcode version 14.3.
example/ios/Runner.xcodeproj · high confidence
Fixes
Updated iOS minimum deployment target and CocoaPods configuration
The example app's minimum iOS deployment target has been raised from 8.0 to 11.0, and the build configuration files (Debug.xcconfig and Release.xcconfig) have been updated to include the necessary CocoaPods support files, ensuring the example app is correctly wired for dependency management and meets modern iOS requirements.
example/ios/Flutter · high confidence
Test coverage
Added comprehensive widget tests for login form validation and UI interactions; Added iOS Runner test scaffold; Updated widget test import path and const usage.
Dependencies
Upgrade to Flutter 3.27+ and migrate example app to modern Android/Flutter tooling
The library and example app have been upgraded to require Flutter 3.27+ and Dart 3.9+, bringing significant dependency updates including Font Awesome 11, form\_builder\_phone\_field (replacing intl\_phone\_number), and modern Android build configurations (Gradle 8, AndroidX, namespace support). The example app now uses the new Flutter plugin loader, includes custom fonts, and updates its SDK constraints to match the latest stable releases.
(dependencies) · high confidence
Upgraded Android Gradle wrapper to version 8.13
The Android build system in the example app now uses Gradle 8.13 instead of the previous version 4.10.2. This upgrade ensures the example app leverages the latest Gradle features and performance improvements, which may require a compatible Android Studio and JDK setup for local development.
example/android/gradle · 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 72.
Lenses
- Code Health 92
- Architecture 99
- Maturity 57
- Readiness 72
- Security 96
- Domain Modelling 100
Changes since last survey
- 300 commits — 243 feature/other, 57 fixes
By area
- (repo) — 107 commits
- lib/src — 84 commits
- (root) — 37 commits
- example/android — 24 commits
- .github/workflows — 16 commits
- lib/flutter_login.dart — 10 commits
- example/pubspec.lock — 7 commits
- example/lib — 5 commits
- example/ios — 3 commits
- test/flutter_login_test.dart — 3 commits
- .github/dependabot.yml — 1 commit
- example/linux — 1 commit
- example/macos — 1 commit
- example/windows — 1 commit
Notable commits
- fix: - Fixing a bug that prevented CheckboxFormField to update its value onChanged due to a missing null check.
- fix: Fix bug: Navigate to login page after pressing sign up confirm button when loginAfterSignUp is disabled and additionalSignupData is not null.
- fix: Fix documentation in README.md
- fix: Fix issue of additional signup fields not showing up, when using OAuth Provider
- fix: Fix launchUrl
- fix: Fix lint
- fix: Fix lint
- fix: Fix phone number showing dial code after submit
- fix: Fix phone number showing dial code twice when initial value provided
- fix: Fix providerNeedsSignUpCallback
- fix: Fix the autofill
- fix: Fix wrong cursor position for US numbers
- fix: Fixed icon & loading indicator colors
- fix: Fixed label text not changing according to user type #289
- fix: Fixed signup confirmation flow and improvement of code readability #280
- fix: Fixed the overflow caused by a long text in term of services with url link #275
- fix: Formatting and fixes
- fix: Merge pull request #273 from NearHuscarl/animation-bug
- fix: Merge pull request #283 from AdrianP25/fix-signup-confirmation-flow
- fix: Merge pull request #284 from AdrianP25/fix-term-of-services-overflow
- …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
NearHuscarl/flutter_login 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 5e0803bde466b71c0f81f8c383c35a39cd47a8ba — 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.