A clean architecture implementation of a Flutter text animation library with smooth scrolling transitions.
This repository contains two main components:
A pure Flutter library that provides a customizable ticker widget for animated text transitions. The library follows clean architecture principles with clear separation of concerns:
-
State Management Layer: Manages data storage and retrieval
ticker_column_manager.dart
: Coordinates multiple ticker columnsticker_draw_metrics.dart
: Handles drawing metrics calculations
-
Business Logic Layer: Implements core business logic
ticker_character_list.dart
: Manages character animationsticker_column.dart
: Handles individual column animationslevenshtein_utils.dart
: Implements optimal transition algorithms
-
Presentation Layer: Provides user interface components
ticker_widget.dart
: The main widget for displaying animated text
A comprehensive sample application that demonstrates how to use the Flutter Ticker library in various scenarios:
- Basic Demo: Shows different ticker configurations
- Performance Demo: Tests multiple tickers in a scrollable list
- Slide Direction Demo: Demonstrates different scrolling directions
Add this to your package's pubspec.yaml
file:
dependencies:
flutter_ticker:
path: path/to/flutter_ticker_library
cd flutter_ticker_sample
flutter pub get
flutter run
This project strictly follows clean architecture principles:
- Layer Separation: Each layer has a specific responsibility and communicates through well-defined interfaces
- Dependency Rule: Dependencies only point inward, with the domain layer having no dependencies on outer layers
- Domain Objects: Core business concepts are represented as pure data structures
- Testability: Each component can be tested in isolation
This project is licensed under the Apache License, Version 2.0 - see the LICENSE file for details.
This project is based on the original Ticker implementation by Robinhood Markets, Inc. and has been rewritten ground up into a Flutter library with clean architecture by Narayan Babu, though its conceptually based on the original Ticker implementation.
The implementation strictly follows clean architecture principles with clear separation between State Management, Business Logic, and Presentation layers.