Benjamin-Philip
Disclosure: I’m not a frontend dev, and have no mobile app development experience.
Presently a LiveView Native app can be written in SwiftUI (Apple) or Jetpack Compose (Android). This means that an app has be to re-implemented for each platform.
Toolkits like Flutter or Compose Multiplatform enable you to target Android and iOS, and even Desktops and the Web with a single implementation.
It seems to me that a Flutter client or a Compose Multiplatform client would be especially valuable to the community. Is there any reason why this wasn’t pursued? A Compose Multiplatform seems simple to build since it is based on Jetpack Compose, which already has a working client.
Trending in Discussions
As the title says, please share what you’ve been up to with Elixir. Whether that’s been learning it, looking into it, making stuff with i...
New
Hey there,
It’s been more than a year since we started using LiveView as our main UI library and building a whole library of UI componen...
New
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Quite interesting article Google brought me. Didn’t find any mentions about it here.
What do you think in general? Would you use togethe...
New
:warning: Security advisory: Decimal DoS vulnerability
A vulnerability has been published for decimal where very large exponents can cau...
New
It would be helpful to have a list of companies worldwide that hire engineers without prior experience in Elixir. Often, it can be quite ...
New
Anyone running long-lived stateful processes on BEAM? We’re building an AI agent runtime and would love to compare notes.
We’re a small ...
New
Other Trending Topics
Hi there! We created Gust: A task orchestrator inspired by Airflow.
For those who have never heard about Aiflow, it’s a Python-based wor...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
Aludel - LLM Evaluation Workbench
Aludel is an embeddable Phoenix LiveView dashboard for evaluating and comparing LLM prompts across mult...
New
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself.
My main conc...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #ai
- #elixirconf-us
- #blog-post
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming










Showing Posts 1 to 8- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
LostKobrakai
I can’t speak for the LVN team for the exact reasoning, but one of their goals is to allow people to build with native UI components. At least flutter leaves a lot on the table compared to native components.
To compare flutter to native components from a more web angle: Instead of using a native
<input />dom component flutter would be rendering an input using<canvas />to render raw pixels of an input and reimplementing anything needed to be able to render that + all the interactions with users – that works until it doesn’t.I cannot speak to compose multiplatform though.
lawik
Achieving LiveView style patching for Flutter would be very interesting. No idea how feasible.
Digit’s talk from CodeBEAM on Nerves Flutter support is not out yet:
It would be quite interesting to see if LVN could be useful for Flutter. Using it at SmartRent we write Dart for the UI, not Elixir.
Benjamin-Philip
I found a flutter library maintained by Flutter Core for rendering remotely: rfw. No idea if it’s compatible with LiveView Native Core though.
Looking through rfw, I suspect that a Flutter Client will end up embedding Dart code which will somehow be compiled and run at runtime. Maybe a widget DSL can solve the ergonomic problem of writing Dart?
For regular Flutter apps, you should check out Clojure Dart. As a functional programmer, it seems a lot more pleasant that writing dart itself.
There seems to have a lot of great talks at CodeBEAM SF this year - I really feel as though I missed out. I spoke there last year. Maybe I should have delayed that presentation for this year…
Benjamin-Philip
I see. Have you encountered a similar problem yourself? I have generally heard that Flutter is quite stable, though I have never used it myself.
LostKobrakai
This is not an issue of “stability”. The thing to recognise is that flutter emulates native UI, it doesn’t use the native UI libraries – and emulation will always have places to lack behind their native counterparts. One well known thing where flutter lacks behind native iOS for example is text rendering quality.
Personally I’d only use flutter for implementing custom UI, but never using their compatibility layers for native UI.
Benjamin-Philip
I wasn’t aware of this. I had known that at some layer of the stack they were their own separate UI, but I never thought that they would emulate something as fundamental rendering text. I’d expect that abstracting API differences between the native UIs would be simpler that rolling your own.
About compose multiplatform, it’s more or less identical to jetpack compose, the native UI on Android, so I’m guessing it suffers from the same emulation problems. Interestingly, compose multiplatform is built on Kotlin Multiplatform so it makes at least sharing business logic fairly accessibly, even if you keep the UI native.
How would you achieve that? Won’t need to render text at some point in your UI? Do you wrap a native widget with a flutter one?
Are their compatibility layers truly so bad that you would rather maintain 2 native implementations of you app instead? I’d expect that it would be better than ReactNative which seems to be what the majority of mobile devs use today (Again not a frontend guy. For all I know this could be an apples to oranges comparision.)
joelpaulkoch
There is this project: GitHub - alex-min/live_view_native_flutter_client: A flutter client for LiveView Native · GitHub
I think I’ve heard the LVN team saying they want to enable using the official native components of the respective platforms, so they plan to do SwiftUI, Android (Jetpack) and Windows.
Benjamin-Philip
This project is quite fascinating! Though I have some serious concerns if this client will be maintained since it seems to be a one man project.