Opal for Sailfish
Quite some time ago, a few developers (me being one of them) started a new project to provide easy-to-use and pretty QML components to help others create even more great apps. Thus, Opal was born:
Opal is a collection of pretty QML components for SailfishOS, building on top of Sailfish’s Silica components. It provides ready-made components, examples, snippets, recipes, and resources for building more sailfishy Sailfish apps.
This thread is meant to announce the project, gather feedback, and continue the discussions from the old thread.
What’s in it?
Currently, there are two finished QML modules, a set of extra icons, and a handful of scripts, tools, and recipes to help with development. Be sure to check out the gallery app!
For example, with the Opal.About module you can create beautiful and compliant “About” pages in less than 20 lines of code. It takes care of all the tedious work around licenses, contributor lists, donations, attributions, and changelogs, while being flexible and allowing custom content as well. This basic code from the gallery app creates the following pages:
import QtQuick 2.0
import Opal.About 1.0
AboutPageBase {
appName: qsTr("Opal Gallery")
appIcon: Qt.resolvedUrl("../images/harbour-opal-gallery.png")
appVersion: APP_VERSION
appRelease: APP_RELEASE
description: qsTr("Opal is a collection of pretty QML components...")
authors: "2020-2021 Mirian Margiani"
licenses: License { spdxId: "GPL-3.0-or-later" }
attributions: OpalAboutAttribution {}
sourcesUrl: "https://github.com/Pretty-SFOS/opal"
}
(Other, less me-focused examples are welcome .)
See the main repo for a list of all contents:
How can I use it?
Simply download the latest release bundle and follow the steps described here. Everything is thoroughly documented.
Which license?
Most things are currently under GPL v3+ but others are under various different free and/or open source licenses.
Why this name?
Because of the crystal: Opal - Wikipedia. Like Silica it has no strong form in itself. It is a beautiful material to be cut, though, too. It also fits nicely to Jolla’s new Amber components.
Status of the project
Opal is ready for production. That being said, Opal is not yet very mature and the ecosystem still has to grow. Check out the progress section in the main repo.
Contributions and feedback are welcome!
Opal is intended as a community collaboration to collect useful and nice things, and make them into reusable components. There are many beautiful apps out in the wild - let’s build on their work!
Also, all developers who have their own personal libraries of reusable components for their projects are invited to publish them as part of Opal. Let’s over-engineer Sailfish together!