Flutter Packages

A collection of my open source work

Flutter Packages

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 each of them:

Scribble

scribble | Flutter Package
Scribble is a lightweight library for freehand drawing in Flutter supporting pressure, variable line width and more!

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.

A video of Scribble freehand drawing in action

Broody Video

broody_video | Flutter Package
The video manipulation library for broody. iOS only for now.

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.

History State Notifier

history_state_notifier | Dart Package
Extends state_notifier to add a history feature that allows for undo/redo operations.

This package adds undo/redo functionality to the popular state_notifier package that is used by riverpod for state management. It provides a plug-and-play solution for existing notifiers.

Smooth Video Progress

smooth_video_progress | Flutter Package
An interpolated progress builder for video_player controllers

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 | Flutter Package
A four-sided stage for representing 3D objects with four widgets

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: