While continuing my Flutter journey, I found a few more packages that helped me build better apps, faster. These tools aren’t just handy, they’ve made my codebase cleaner, navigation simpler, and layouts more responsive without adding unnecessary complexity.
📝 Missed Part 1?
I covered packages like melos, dio, and envied that help manage monorepos, networking, and environment variables. 👉 Read Part 1 here →
In this follow-up to my first blog, I’m sharing another round of packages that have genuinely improved my productivity. Again, these are not just for show — I’ve used each one in real projects, and they’re now part of my go-to toolkit.

Let’s dive in. 👇
1. flutter_gen (Asset, Font, and Color Auto-Generator)
When working with lots of assets (images, icons, fonts, etc.), manually typing paths is risky and messy.
flutter_gen generates Dart code for all your assets automatically, so you can use them safely with autocompletion.
This avoids typos and makes refactoring easier. I now use it in all my projects where assets grow beyond a few files.
Image.asset(Assets.images.logo.path);
// instead of 'assets/images/logo.png'Just run flutter pub run build_runner build after setup, and everything gets generated for you.
🔗 Package link: flutter_gen | Dart package The Flutter code generator for your assets, fonts, colors, ... - Get rid of all String-based APIs.
2. intl (Internationalization and Formatting)
If you’re building an app for a global audience or even just want to format currency and dates properly, intl is essential. It helps translate your UI into different languages and handles regional number/date formats.
I’ve used it in apps that needed multi-language support and for things like currency conversion displays.
import 'package:intl/intl.dart';
final price = NumberFormat.currency(
locale: 'en_US',
symbol: '\$',
).format(1500);
// Output: $1,500.00You can also localize your entire app with arb files and flutter_localizations.
🔗 Package link: intl | Dart package
3. cached_network_image (Image Caching for Performance)
In apps where images load from the internet (like product listings or user avatars), cached_network_image is a lifesaver.
It loads images from cache on repeat visits, saving bandwidth and improving speed.
Whenever I use a remote image, I wrap it in this widget.
CachedNetworkImage(
imageUrl: 'https://example.com/user-avatar.png',
placeholder: (context, url) => CircularProgressIndicator(),
errorWidget: (context, url, error) => Icon(Icons.error),
)🔗 Package link: cached_network_image | Flutter package Flutter library to load and cache network images. Can also be used with placeholder and error widgets.
4. auto_route (Typed Routing System)
Flutter’s default Navigator is fine, but when routes get complex, auto_route really helps.
It gives you a declarative and strongly typed navigation system, which reduces bugs and improves code readability.
I love how easy it makes deep linking and nested navigation.
@MaterialAutoRouter(
routes: <AutoRoute>[
AutoRoute(page: HomePage, initial: true),
AutoRoute(page: DetailsPage),
],
)context.router.push(DetailsRoute(id: 42));🔗 Package link: auto_route | Flutter package AutoRoute is a declarative routing solution, where everything needed for navigation is automatically generated for you.
5. flutter_hooks (Cleaner Stateful Widgets)
If you’re tired of writing boilerplate code in StatefulWidgets, flutter_hooks will be your friend. It brings React-like hooks to Flutter.
For me, it simplifies logic inside widgets and makes the code easier to maintain.
class MyHookWidget extends HookWidget {
@override
Widget build(BuildContext context) {
final counter = useState(0);
return Column(
children: [
Text('Count: ${counter.value}'),
ElevatedButton(
onPressed: () => counter.value++,
child: Text('Increment'),
),
],
);
}
}🔗 Package link: flutter_hooks | Flutter package A flutter implementation of React hooks. It adds a new kind of widget with enhanced code reuse.
6. flutter_screenutil (Responsive Sizing)
Different screen sizes can break your UI if you don’t handle scaling properly.
flutter_screenutil makes it easy to define width, height, padding, and font sizes that adapt to the device screen.
I use it to maintain a consistent design across phones and tablets.
ScreenUtilInit(
designSize: Size(375, 812),
builder: (context, child) =>
MaterialApp(home: MyHomePage()),
);Then use like this:
Container(
width: 100.w, // scales based on screen width
height: 50.h,
padding: EdgeInsets.all(10.r),
)🔗 Package link: flutter_screenutil | Flutter package A flutter plugin for adapting screen and font size. Guaranteed to look good on different models.
7. responsive_framework (Breakpoint-Based Layouts)
If your app targets multiple form factors like mobile, tablet, or web, responsive_framework helps you define breakpoints and adapt layouts cleanly.
I’ve used it when building admin dashboards and apps with tablet support.
ResponsiveWrapper.builder(
child,
breakpoints: [
ResponsiveBreakpoint.resize(350, name: MOBILE),
ResponsiveBreakpoint.autoScale(600, name: TABLET),
ResponsiveBreakpoint.resize(1024, name: DESKTOP),
],
);It wraps your app with logic that automatically scales or resizes widgets as needed.
🔗 Package link: responsive_framework | Flutter package Easily make Flutter apps responsive. Automatically adapt UI to different screen sizes. Responsiveness made simple.
✅ Final Thoughts
That’s it for now. These packages can really help take your Flutter apps to the next level, whether it’s making your UI responsive, improving navigation, or simplifying asset management.
Each one of these tools has saved me time, reduced bugs, and made my codebase cleaner. If you haven’t tried them yet, I highly recommend giving them a shot in your next project.
And as always, keep exploring. The Flutter ecosystem is evolving fast, and there’s always a new package out there that might solve a problem you didn’t even know you had.
Found this guide helpful? Give it a clap 👏 to support the content, and don’t forget to share your own favorite libraries — I’d love to explore new tools that can help us all become better developers!
Related Topics
Enjoyed this article?
Check out more blogs on our blog.



