Boden Versions Save

Purely native C++ cross-platform GUI framework for Android and iOS development. https://www.boden.io

v0.4

4 years ago

Boden Logo

BODEN CROSS-PLATFORM FRAMEWORK

Follow us on Twitter

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 the textOverflow 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 make Context 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 a std::vector instead of a std::list and the parent View is accessible via a read-only property View::parentView. Functions that change the hierarchy have been moved out of View.
  • ui/View: The offerLayout function has been renamed to setFallbackLayout
  • foundation/Context: Renamed UIContext to Context and moved it to foundation.
  • ui/ListView: Added listView parameter to ListViewDataSource 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 with std::string.

🐞 Fixed

  • ui/Label: The Label's wrap property is now by default false 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

4 years ago

Boden Logo

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 and Spanned on Android. You can use the fromHTML() and toHTML() functions to convert HTML markup code to/from an attributed strings.
  • ui/TextField: Added the font property to the TextField class. You can now set a custom Font on a text field using this property.
  • ui/TextField: The TextField's return key type can now be set using the returnKeyType property.
  • ui/TextField: The TextField's auto correction can now be turned on/off explicitly using the autocorrectionType 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

4 years ago

Boden Logo

BODEN CROSS-PLATFORM FRAMEWORK

Follow us on Twitter

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 via std::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 use ViewCore
  • 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: RenamedTextView to Label
  • 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.

Let us know what you think!

v0.1.1

5 years ago

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.