Feathers UI beta.2 preview build on Haxelib
Today, Feathers UI beta.2 is now officially available on Haxelib. This is the latest of multiple preview builds that are planned before the first stable release in early 2022. We've now made it past the alpha stage, which means that the core framework architecture has settled down, and breaking changes are much less likely to happen. Developers who don't mind a few rough edges here and there should consider Feathers UI ready for starting development on new projects!
Feathers UI is an open source framework of user interface components for creative, cross-platform projects. Using the Haxe programming language, Feathers UI is built on OpenFL — a user-friendly library for rendering, input, networking, and more. Deploy native apps to iOS, Android, Windows, macOS, Linux (and even publish your project to the web!) using the same Haxe codebase.
🚨 Please note that this is a beta version of Feathers UI. Some components and features may still be missing, and occasional bugs should be expected.
Feathers UI has reached this milestone thanks the very generous support of all of the backers from the Feathers UI Kickstarter campaign, which completed successfully in the summer of 2019. A big, enthusastic thank you to everyone who has supported the project, whether you are a backer, shared the Kickstarter with your friends on social media, or simply encouraged me (Josh) to keep up the good work!
What's new in beta.2?
Let's take a look at some of the new features that are included with Feathers UI beta.2.
Restored support for OpenFL 8.9
The previous beta.1 build was unintentionally released containing some incompatibilties with OpenFL 8.9. This was a mistake. Obviously, not everyone is ready to upgrade to OpenFL 9 yet. To ensure that this doesn't happen again, the CI server now builds using OpenFL 8.9 so that any new incompatible changes can be caught immediately.
ToolTipManager
In desktop apps, a tool tip may be added to a UI component so that a helpful description is displayed when the mouse hovers over it. Now, all Feathers UI components have a toolTip
property that accepts a string value.
var button = new Button();
button.text = "Click Me";
button.toolTip = "If you click me, you'll win a prize!";
addChild(button);
The Application
component enables the ToolTipManager
automatically, but it may be disabled with <haxdef name="disable_tool_tip_manager">
in your project.xml file. If your root class isn't an Application
, you may manually call ToolTipManager.addRoot()
to enable tool tips.
As with all "managers" in Feathers UI, there is an IToolTipManager
interface that may be used to implement a custom tool-tip manager, if the default one does not completely meet your needs.
Multiple item renderers
The ListView
, GridView
, and TreeView
components have been updated to support displaying multiple types of item renderers for the same data collection.
The following example uses custom item renderers for the first and last items displayed by the ListView
:
var regularItemRecycler = DisplayObjectRecycler.withClass(ItemRenderer);
var firstItemRecycler = DisplayObjectRecycler.withClass(CustomFirstItemRenderer);
var lastItemRecycler = DisplayObjectRecycler.withClass(CustomLastItemRenderer);
var listView = new ListView();
listView.itemRendererRecycler = regularItemRecycler;
listView.setItemRendererRecycler("first-item", firstItemRecycler);
listView.setItemRendererRecycler("last-item", lastItemRecycler);
listView.itemRendererRecyclerIDFunction = function(state:ListViewItemState):String {
if(state.index == 0) {
return "first-item";
}
if(state.index == listView.dataProvider.length - 1) {
return "last-item";
}
// return null to use the default itemRendererRecycler
return null;
};
For complete details about what else is included in this build, check out the beta.2 CHANGELOG.
Install Feathers UI beta.2
Feathers UI may be installed using the haxelib install command in your terminal.
haxelib install feathersui
If you already have the library installed, and you simply want the latest version, run the haxelib update command instead.
haxelib update feathersui
Be sure to take a look at the complete installation instructions for details about installing required dependencies, along with links to step-by-step tutorials for setting up supported editors and IDEs.
Documentation
- The Feathers UI Getting Started guide provides the most essential links for creating your first Feathers UI project and learning about all of the features and UI components that are available in the framework.
- The v1.0.0-beta.2 API Reference includes descriptions of all APIs available on Feathers UI components, layouts, utility functions, and more.
Community
- Start a thread in the Feathers UI Community forum to ask for help.
- Join the Feathers UI Discord to chat with Josh and others in the community.
Questions or comments?
Everyone, I just want to say thank you again for your support. I'm looking forward to hearing what you think of the new Feathers UI so far. If you create anything with this build — even a simple prototype — I'd love it if you could share your experiences (and maybe even a screenshot 🖼!).
I've created an official beta.2 discussion thread in the community forums. Head over there to leave a comment!