Releases: AshampooSystems/boden
Releases · AshampooSystems/boden
v0.4
BODEN CROSS-PLATFORM FRAMEWORK
Find our new Documentation at boden.io!
🎉 Added
- ui/Button: The
Buttonnow supports an imageURL to display an Image instead of text. - ui/TextField: The
TextFieldnow supports a placeholder text that is displayed while no text was entered. - ui/TextField: The
TextFieldnow supports obscuring the users input and configuring the appearance of the Keyboard. - ui/TextField: Added textInputType and obscureInput properties.
- ui/Label: The
Label's method of handling overflow can now be set with thetextOverflowproperty. - foundation/Application: The new function
Application::copyToClipboardcopies a string to the global clipboard. Thanks @mrexodia! - foundation/path: Added the
bdn::pathnamespace featuring functions to retrieve platform-specific paths like e.g. the path of the temporary directory readable/writable by the application. - foundation/Application: Added
Applicationbase class to the foundation module to makeContextaccessible from within the module. - ui/ListView: Added
std::optional<size_t> ListView::rowIndexForView(const std::shared_ptr<View>& view) const - foundation/NeedsInit: Added specialization of std::make_shared for types that have an init function but no Constructor Arguments to allow calling std::make_shared<>() without having to specify bdn::needsInit.
- foundation/c++: Added std:filesystem implementation.
⚠️ Changed
- ui/View: The View hierarchy functions have been reworked extensively.
View::childViewsreturns astd::vectorinstead of astd::listand the parentViewis accessible via a read-only propertyView::parentView. Functions that change the hierarchy have been moved out ofView. - ui/View: The
offerLayoutfunction has been renamed tosetFallbackLayout - foundation/Context: Renamed
UIContexttoContextand moved it to foundation. - ui/ListView: Added
listViewparameter toListViewDataSourcefunctions - cmake: use_boden_template_info_plist() now accepts a bundle id and bundle name.
- cmake: Renamed ANDROID_PACKAGEID to ANDROID_APP_ID.
- tooling The template used by
./boden newnow uses file(GLOB_RECURSE ...) to discover sources instead of manually listing the files.
🔥 Deprecated
- String: The
Stringalias has been deprecated and replaced withstd::string.
🐞 Fixed
- ui/Label: The
Label's wrap property is now by defaultfalseon all platforms. - cmake: Setting ANDROID_PACKAGEID to custom values no longer breaks resource lookup.
- tooling: Various path related issues fixed in `./boden.
v0.3
BODEN CROSS-PLATFORM FRAMEWORK
Stay updated: Follow us on Twitter!
Find our new Documentation at boden.io!
⚠️ Breaking Changes
- ui/TriState:
TriStateenum values are now capitalized to remain consistent with Boden's enum value capitalization style. Please make sure to change your code accordingly when updating to v0.3.
📱 Features
- foundation/AttributedString: Added the
AttributedStringclass.AttributedStringwraps the native platform implementation, i.e.NSAttributedStringon iOS andSpannedon Android. You can use thefromHTML()andtoHTML()functions to convert HTML markup code to/from an attributed strings. - ui/TextField: Added the
fontproperty to theTextFieldclass. You can now set a customFonton a text field using this property. - ui/TextField: The
TextField's return key type can now be set using thereturnKeyTypeproperty. - ui/TextField: The
TextField's auto correction can now be turned on/off explicitly using theautocorrectionTypeproperty. - ui/TextField: Text fields can now be focussed programatically using the
setFocus()action method. We've also added an example of how to implement navigation through multiple text fields within a form using the software keyboard's "next" button.
🐞 Bugfixes
- Symlinks in the Boden working tree's parent path are now supported by the
bodencommand line tool.
v0.2
BODEN CROSS-PLATFORM FRAMEWORK
Find our new Documentation at boden.io!
Features
- layout: New Flexbox layout engine based on Facebook's Yoga
- foundation: Properties as data members: intuitive data bindings, change notifications, comprehensive type support
- ui/controls: Fully native
ListViewwith support for custom item views - ui/controls:
Slider - ui/controls:
NavigationView - ui/controls:
ImageView - ui/controls:
WebView - ui/controls:
LottieView - platform: Support for bundling resources (images, binary assets, etc.)
- platform: Support for device orientation
- net: HTTP request API — easily make requests to web services without non-native net library dependencies
- ui/controls: Generalized stylesheet support for views
- ui/controls: Support for conditional stylesheet properties, similar to CSS media queries (e.g. different layouts per device)
- ui/controls: Background color support
- platform: Support for App Icons
- platform/android: Support for day/night mode
- ui:
ViewCoreFactorymechanism to allow for independent UI modules - foundation: Use
std::shared_ptrinstead of custom reference pointer - foundation: Use
std::stringinstead of custom string implementation - foundation: Removed
Baseclass - foundation:
init()pattern viastd::make_shared - foundation: nlohmann::json
- ui: Improved
ViewCoreinitialization: controls can now be fully used before added to the view graph - ui:
CoreLessclass for easier subclassing of container views that do not useViewCore - foundation/java New, more convenient template-based Java wrapping classes
- ui/controls/listview: Improved single selection set/get
- ui/controls/listview: Support for swipe down gesture
- ui/controls/listview: Support for custom views
- ui/controls: Renamed
TextViewtoLabel - foundation: Consolidated Notifier architecture
- website: Built boden.io
- documentation: Improved getting started guides
- documentation: LottieView documentation
- documentation: Net module documentation
- documentation: Switch documentation
- documentation: WebView documentation
- documentation: Property documentation
- documentation: Guides on how to write new views
- examples: Improved demo app
- examples: Exemplary Reddit browser app
Bugfixes
- platform/ios: Soft keyboard overlaps textfields
- tooling: Fixed
boden newcommand
License
We added LGPL as a new licensing option! Boden can now be licensed under GPL 2/3 or LGPL 2.1/3. This allows you to release iOS apps based on Boden on the iOS App Store without running into any licensing issues.
First public release
We are happy to release our first preview of the Boden framework.
This release supports UI development for Android and iOS devices with a small set of basic widgets and limited layouting.