neilberkman

neilberkman

Swift-Erlang actor system, Crane browser, and the future of LiveView Native?

Carson Katri from DockYard posted today about swift-erlang-actor-system, which enables Swift programs to join Erlang clusters as distributed nodes.

In the Hacker News discussion, Brian Cardarella revealed this is part of a much larger project called “Crane” - a native UI browser that renders actual native components instead of HTML. So <Text>Hello</Text> becomes SwiftUI’s Text("Hello"), with each DOM node running as an Erlang process.

This Crane approach is very interesting - using distributed Erlang to bridge native UI with web-like development patterns, and representing DOM nodes as Erlang processes. If it pans out, the ability to run JavaScript via WASM in Elixir and target all Apple platforms (except Watch) could be game-changing for how we think about native development.

However, Brian mentioned this “originally started as the LiveView Native project but due to some difficulties collaborating with the upstream project we’ve decided to broaden our scope.”

I’m working on a commercial SaaS built entirely with Phoenix LiveView, and we’ve been considering using LiveView Native for our mobile apps. The big draw is keeping everything in Elixir without building a separate API layer.

I’m inferring the “upstream project” mentioned is Phoenix itself? Not looking for anyone to reveal private communications, but I’m trying to understand the implications for technology decisions I need to make in the near term.

I’m wondering if it would it make sense to start a new LiveView Native project given this development. Is Crane an evolution/replacement of LVN or something separate?

For those of us with production LiveView apps considering mobile options, what’s the recommended path forward? Would appreciate any insights from folks familiar with these projects or who’ve recently evaluated LiveView Native.

BTW to be clear: we hadn’t decided on LV Native but were planning to seriously evaluate it vs. alternatives (full native, other frameworks).

Most Liked

byu

byu

I too would like to know the direction of LiveView Native and this OTP interop.

  1. If elixir-pack can now bundle Erlang/BEAM into iOS App, which is so Crane can run as the “browser” on device, then does that mean the direction is to also bundle an entire Phoenix project to just serve offline on-device backend to Crane? Which would be complementary to having a cloud-phoenix project also serving “native markup” to the Crane browser?
  2. How does this change the current LVN Phoenix-side serving of “native liveview” implementation?
  3. Is it just a matter of switching out the LVN SwiftUI Client (dependency of iOS app) from the “rust client core” to the new “Crane” browser?

Where Next?

Popular in Discussions Top

mikl
I wanted to capitalize a string, and tried using String.capitalize(). That generally works well, until you try to capitalize a word like...
New
Nvim
Elixir appears to be a superior language to Python. I don’t see any advantage of Python over Elixir. Are there any?
New
WolfDan
After doing a port from a c++ library to my project in phoenix I’ve seen that I need a faster way to run this algorithm and I found this ...
New
mmmrrr
Just saw that dhh announced https://hotwire.dev/ Is it just me or is this essentially live view? :smiley: Although I like the “iFrame-e...
New
lucaong
Hello Elixir and Nerves community, I have been working for a while on an open-source embedded key-value database for Elixir, that I call...
230 14027 124
New
ejpcmac
I have discovered Nix last month and I am currently on my way to migrating to it—both on macOS at home and the full NixOS distrubution at...
New
New
RudManusachi
What configs will make sense to put to runtime.exs? – A bit of how I configure apps: I have generic configs in config/config.exs, dev...
New
scouten
I’m looking for a host for the server part of a small (personal) side project that I’m working on. It’s currently written in Node.js and ...
New
AstonJ
Seen any cool LiveView demos, sample apps or examples? Please post them here! :003:
New

Other popular topics Top

AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New
marius95
Hello everyone, I try to use an Javascript Event Handler in my root.html.leex file. Therefore I created a function in the app.js file: ...
New
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New
jason.o
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New
saif
Hello everyone, Long time lurker first time poster here. I’ve recently begun working on Elixir full-time again! :raised_hands: It’s been...
New
rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list. ...
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 54120 245
New

Latest on Elixir Forum

Elixir Forum

We're in Beta

About us Mission Statement