Can we create Mobile apps in elm?

IMHO, go for flutter. I have done native development for both android and ios, react native and qt.

  • Native development makes you do all the work twice
  • In react native you suffer from not having a clear and common way of doing things and depending on the community for almost everything. It follows the javascript ecosystem norm: many projects doing the same thing with slight improvements instead of one big good thing.
  • Qt is almost impossible to compile to mobile and has a very tiny community, though QML is a really great idea.

Flutter does the things they way they need to be done:

  • Compiles to native binaries like Qt.
  • Has a shared repository for packages from the community like typescriptwith npmjs.
  • Has officially supported UI for both android and ios like native development.
  • It is supported by a big company, Google, the same as react, Facebook.

But also, it adds:

  • You code with Dart, kind of like javascript, but with some improvements to make writing code easier (less error prone).
  • It offers clearly differented UI libraries for ios and android. When you start coding a mobile app, it is common to try to have the same UI codebase for both ios and android, but at some point it becomes unmaintainable and then you have to split the two UIs codebases. Flutter takes you to the right direction from the beginning.
  • It uses declarative UI, so it feels familiar if you come from Elm.

More or less this is my experience.

5 Likes