First, a huge thank you to @peng8350 for building and maintaining pull_to_refresh over the years. This package has been used by thousands of Flutter developers and has saved countless hours of work. The Flutter community genuinely appreciates it.
📦 Maintained Fork — smart_refresher
Since this package hasn't received updates in a while and many developers (myself included) have been blocked by Dart 3 / Flutter 3.x compatibility issues, I've created a maintained fork:
👉 https://pub.dev/packages/smart_refresher
👉 https://github.com/ampslabs/smart-refresher
What's different?
- ✅ Dart 3 & Flutter 3.x compatible
- ✅ Null safety fully resolved
- ✅ All existing APIs kept identical — drop-in replacement
- ✅ Actively maintained with CI/CD
- ✅ Same license as the original
Migration (literally 2 steps)
pubspec.yaml
# Before
dependencies:
pull_to_refresh: ^2.0.0
# After
dependencies:
smart_refresher: ^0.1.0
Your Dart files
// Before
import 'package:pull_to_refresh/pull_to_refresh.dart';
// After
import 'package:smart_refresher/smart_refresher.dart';
That's it. No other code changes needed.
I have no intention of competing with or disrespecting the original work — only to keep it alive for the community. If the original maintainer ever returns and wants to take over, I'm happy to transfer everything back.
Hope this helps anyone who's been stuck! 🙌
First, a huge thank you to @peng8350 for building and maintaining
pull_to_refreshover the years. This package has been used by thousands of Flutter developers and has saved countless hours of work. The Flutter community genuinely appreciates it.📦 Maintained Fork — smart_refresher
Since this package hasn't received updates in a while and many developers (myself included) have been blocked by Dart 3 / Flutter 3.x compatibility issues, I've created a maintained fork:
👉 https://pub.dev/packages/smart_refresher
👉 https://github.com/ampslabs/smart-refresher
What's different?
Migration (literally 2 steps)
pubspec.yaml
Your Dart files
That's it. No other code changes needed.
I have no intention of competing with or disrespecting the original work — only to keep it alive for the community. If the original maintainer ever returns and wants to take over, I'm happy to transfer everything back.
Hope this helps anyone who's been stuck! 🙌