Releases: AshampooSystems/boden
Releases · AshampooSystems/boden
v0.4
BODEN CROSS-PLATFORM FRAMEWORK
Find our new Documentation at boden.io!
🎉 Added
- ui/Button: The
Button
now supports an imageURL to display an Image instead of text. - ui/TextField: The
TextField
now supports a placeholder text that is displayed while no text was entered. - ui/TextField: The
TextField
now 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 thetextOverflow
property. - foundation/Application: The new function
Application::copyToClipboard
copies a string to the global clipboard. Thanks @mrexodia! - foundation/path: Added the
bdn::path
namespace featuring functions to retrieve platform-specific paths like e.g. the path of the temporary directory readable/writable by the application. - foundation/Application: Added
Application
base class to the foundation module to makeContext
accessible 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::childViews
returns astd::vector
instead of astd::list
and the parentView
is accessible via a read-only propertyView::parentView
. Functions that change the hierarchy have been moved out ofView
. - ui/View: The
offerLayout
function has been renamed tosetFallbackLayout
- foundation/Context: Renamed
UIContext
toContext
and moved it to foundation. - ui/ListView: Added
listView
parameter toListViewDataSource
functions - 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 new
now uses file(GLOB_RECURSE ...) to discover sources instead of manually listing the files.
🔥 Deprecated
- String: The
String
alias has been deprecated and replaced withstd::string
.
🐞 Fixed
- ui/Label: The
Label
's wrap property is now by defaultfalse
on 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:
TriState
enum 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
AttributedString
class.AttributedString
wraps the native platform implementation, i.e.NSAttributedString
on iOS andSpanned
on Android. You can use thefromHTML()
andtoHTML()
functions to convert HTML markup code to/from an attributed strings. - ui/TextField: Added the
font
property to theTextField
class. You can now set a customFont
on a text field using this property. - ui/TextField: The
TextField
's return key type can now be set using thereturnKeyType
property. - ui/TextField: The
TextField
's auto correction can now be turned on/off explicitly using theautocorrectionType
property. - 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
boden
command 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
ListView
with 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:
ViewCoreFactory
mechanism to allow for independent UI modules - foundation: Use
std::shared_ptr
instead of custom reference pointer - foundation: Use
std::string
instead of custom string implementation - foundation: Removed
Base
class - foundation:
init()
pattern viastd::make_shared
- foundation: nlohmann::json
- ui: Improved
ViewCore
initialization: controls can now be fully used before added to the view graph - ui:
CoreLess
class 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
TextView
toLabel
- 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 new
command
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.