Create purely native cross-platform user experiences with Boden

Boden empowers you to create native mobile cross-platform applications from a single codebase. It uses native widgets that match the look and feel users expect from their platform.

Compile native apps from a single C++17 codebase

Write your mobile apps in modern C++17 and compile 100% native Android and iOS apps from a single statically typed codebase — no scripting, no virtual machine overhead. Using Boden is straightforward:

// MainViewController.cpp #include <bdn/ui.h> #include <bdn/ui/yoga.h> #include "MainViewController.h" using namespace bdn ; using namespace bdn :: ui ; MainViewController :: MainViewController () { _window = std :: make_shared < Window > (); _window -> title = "AwesomeApp" ; _window -> geometry = Rect { 0 , 0 , 400 , 300 }; _window -> setLayout ( std :: make_shared < yoga :: Layout > ()); auto button = std :: make_shared < Button > (); button -> label = "Hello World" ; _window -> contentView = button ; _window -> visible = true ; }

Create flexible user interfaces with Flexbox layouts

Boden integrates Facebook's Yoga Layout engine, so creating UI layouts is a breeze on any platform. Simply define your layouts through Flexbox stylesheets directly in your C++ code and you're good to go.

// MainViewController.cpp #include <bdn/ui.h> #include <bdn/ui/yoga.h> #include "MainViewController.h" using namespace bdn ; using namespace bdn :: ui ; MainViewController :: MainViewController () { _window = std :: make_shared < Window > (); _window -> title = "AwesomeApp" ; _window -> geometry = Rect { 0 , 0 , 400 , 300 }; _window -> setLayout ( std :: make_shared < yoga :: Layout > ()); _window -> stylesheet = FlexJsonStringify ({ "justifyContent" : "Center" , "alignItems" : "Center" }); std :: shared_ptr < Button > button = std :: make_shared < Button > (); button -> label = "Hello World" ; _window -> contentView = button ; _window -> visible = true ; }

Use your existing programming skills

Boden builds upon mature technologies: no custom containers, no custom smart pointers, no steep learning curve. You focus on your app, Boden takes care of the rest.