Flutter Packages
A collection of my open source work
Over the course of my multiple Flutter projects, I authored a variety of open source packages for the Flutter ecosystem. The following presents a quick overview over most of them:
Scribble
The most popular among my packages is scribble, a lightweight library for freehand drawing in Flutter supporting pressure, variable line width and more. It arose out of the need for custom freehand notes for the fyzo Assistant application and has amassed over a hundred thumbs up on pub.dev.
Figmage
As part of my whynotmake.it project, I co-authored Figmage, a CLI that automatically imports the tokens for an entire Design system from Figma into a standalone Flutter package. Figmage is the first tool of its kind to support Figma styles and variables alike, which makes it extremely flexible and powerful for fast-paced, iterative development.
Dart Coverage Assistant
Dart Coverage Assistant is a GitHub Action that automatically generates coverage reports and badges for Dart and Flutter monorepos. It works without any configuration, and dynamically finds all packages in the repository. I published this action as part of the whynotmake.it project.
Broody Video
Although broody_video is still in development, it has the potential to become one of the most feature-rich video transcoding plugin in the Flutter ecosystem. It leverages native Android/iOS APIs to achieve a better performance than FFMPEG, while enabling projects that can't be published under GNU GPL.
At this point, the plugin supports, trimming, cropping and compressing video clips, as well as extracting thumbnails. The package was co-authored with Jesper Bellenbaum, just like the Broody app.
Value Notifier Tools
This package adds versatile functionality to Flutter's ValueNotifier
, such as undo/redo support, rebuild filtering or the transformation of values.
It was built by me as part of the Scribble package.
Smooth Video Progress
Most Flutter apps that want to display video do so by depending on the video_player package. While creating Broody, I was frustrated with the janky UX that this creates, since the native video player library sends progress updates too infrequently. Therefore, smooth_video_progress was created to interpolate the inbetween values for a smoother user experience.
Rotation Stage
rotation_stage, another co-op with Jesper Bellenbaum, offers a clever way of presenting a four-sided object in a Flutter widget by using matrix transformations. It is probably easiest to convey it's functionality in a short GIF: