While building the Visual Space platform we begun using Flutter Quill to render text content for nextgen interactive tutorials and projects. Initially we attempted to extend Quill with additional features such as custom highlights. However, we had to deal with major issues such as opaque architecture, severe lack of documentation, lack of automatic testing and a complete lack of technical support from the maintainers. Therefore, we decided to fork Quill and improve it with additional features and a focus on higher quality standards. This reddit post contains a detailed explanation.
Check out the changelog for a detailed review of what was changed. Also there's a migration guide for users migrating from Quill.
- Maintainable Architecture - Source code was split in modules. Files were split in smaller files. A distinct state management layer was introduced. Class names have been simplified. We replaced the
ChangedNotifiers
with standalone streams. We simplified thebuild()
methods. We merged theEditor
andRawEditor
in one file. - Extended Documentation - We are continuously adding in depth documentation to make it easier for new contributors to extend the source code. Quill has very little documentation and it lacks in depth explanation over the architecture. Our goal is to cover both new features and the legacy ones in detailed documentation.
- Demo Pages - We've provided simple, concise demo pages to exemplify how to use Visual Editor for the various tasks you have.
- Custom Highlights - Highlights custom regions of text that are sensitive to taps and hovering.
- Custom Markers - Same as highlights but instead of being temporary in the controller they are permanent in the document.
- Markers Attachments - Markers provide support for attachments by returning their pixel coordinates and dimensions for positioning in text. Based on this information any widget can be linked to a marker.
- Active Discord Support Community - You'll be able to get quick answers from the maintainers of the repo. We are available almost at all times to answer your questions. Including general Flutter and Dart questions.
- Web Compatibility - We are constantly checking the web build as well to ensure it works properly. In Quill the image/video embeds are not web compatible. Mostly because of issues with the dependencies (video player, as of Dec 2022).
- Zero Tolerance To Bugs - Visual Editor is meant as a stable, bug free, rich text editor, that works reliably with no surprises or half baked features. We've been working to remove legacy bugs however the list is still long. Our policy is to deep review pull requests and to reject defects. We have tough quality criteria and so far no community PR has made it to develop due to rejected defects. As the community grows we expect to have more quality contributors.
- Automatic Testing (WIP) - In Quill there's no automatic testing available. New contributions constantly break the legacy code. The PR's are not policed enough. We started adding tests and we are slowly increasing the coverage of the tests.