Elm in Qt [proof of concept]

Hello folks!

Last weekend I played with running Elm inside Qt desktop applications.
It works out pretty nicely!

  • Full TEA (commands, subscriptions, everything)
  • View layer similar to elm/html, but following the QML types
  • Interop and view done with encoding view data to JSON and sending to Qt through ports, then creating the objects on JS side there.
  • Compiled to a tiny native binary (I didn’t figure out static linking yet) - this is no WebKit, no HTML, these are desktop widgets :star_struck:
  • Also, Qt compiles to mobile platforms too, so this could potentially be in the same league as elm-native-ui!

Repo: https://github.com/Janiczek/elm-in-qt
See particularly the Elm Counter code.

Work in progress:

  • support events that need to decode data from an object (like text input contents)
  • performance optimization (the Counter demo is quite sluggish right now; I’m nuking the whole object tree and creating it again whenever anything changes! so some proper “VDOM” diffing / patching will do wonders, I hope)
  • look at C++ Qt side of things… right now we mainly stay in the QML world
  • dynamically generate the View.* modules from some Qt reference; polish the library; publish it; streamline the process of starting a new Qt project in this way
37 Likes

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.