Flutter engine based ui framework
Dukc
ajieskola at gmail.com
Tue Jan 14 11:38:44 UTC 2020
On Sunday, 12 January 2020 at 14:15:35 UTC, Newbie2019 wrote:
> Flutter engine is written by C++, original for Flutter
> framework based on Dark language.
>
> But there is project to rewrite Flutter framework in TypeScript
> and C++ language, so they can developer mobile and desktop and
> IOT UI framework from TypeScript and C++.
>
> They are cross platform (for android, IOS, window & macOS &
> linux) with native GPU acceleration UI framework.
>
> examples: https://github.com/TGIF-iMatrix/MXFlutter (and there
> also C++ and IOT project, I just cant find it)
>
> The Alibaba ( biggest electronic business platform in China)
> use flutter to build they mobile
> app
> https://play.google.com/store/apps/details?id=com.taobao.idlefish
>
> D has native C++ ABI support, is there any one interested to
> implement flutter framework on D language ?
You might be interested in a binding to Nuklear[1]. Nuklear is
completely decoupled from enviroment, so at least in theory it
should work on every platform there is a low-level windowing
library. It does not automatically bind to interface of any
library, which means user code needs to include glue, but also
makes the backend interface agnostic so you can use any windowing
library just as well: glfw, sdl, sfml, cocoa, arsd.simpledisplay,
HTMLCanvasElement or whatever. For mobile platforms, the widgets
might require some redesign, but it should be doable without
changing the UI invoking code, assuming it does not rely on e.g
mouse movements.
GPU acceleration is also there. It's drawing can also be bound to
OpenGL one wants to. I'm not sure if it could use
Vulkan/Metal/DirectX/BGFX with no-compromise performance, but I
wouldn't be surprised.
I have recently started to use it and the best thing I like about
it that it won't steal any control away from the user. It'll let
you to access the window pixels directly just as happily as your
windowing library. And where most GUI libraries take control of
the app and run your code when they deem they have to, Nuklear
processes events and draws stuff only when you command it. Stop
invoking it, and there is nothing happening in the background.
If libraries like this continue to develop, I think that soon the
only points for using traditional widget libraries are that you
either want the backend to make native widgets (including HTML),
or need a non-graphical backend, like a console GUI you can
design with DLangUI. And AFAIK neither of these two features are
currently terriby common in widget libraries anyway.
1: https://code.dlang.org/packages/bindbc-nuklear
More information about the Digitalmars-d
mailing list