You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This ticket is to implement "offline mode", which will allow LiveView Native applications to run entirely within the native environment without a persistent Internet connection. A few implementation concerns:
This will require running an instance of the BEAM VM on device; the method to deploy and run BEAM will differ depending on the target environment.
For desktop environments like SwiftUI for macOS, WinUI etc. this should be as easy as running the compiled Erlang app as any other process on the host OS. For environments like iOS and Android this might involve a more specialized linking process.
Each platform library will need to provide its own method of loading BEAM into the native environment and interfacing with it from the LiveView Native client application.
Ideally, offline mode should be integrated with mix release so that packaging LVN apps to run on device is as easy as packaging them to run in other environments (like servers for example). This will also ensure compatibility will existing CI toolchains.
Distributed Erlang could be used to synchronize the local Erlang app with remote instances. Should we provide abstractions for this or let end-user developers figure it out themselves?
connect on-device server to cluster (using Distributed Erlang)
layer in a local-first persistence layer (e.g. see Phoenix Sync proposal)
IMO the "run Phoenix server on device" part is compelling on its own, as a phase 1. (In a given app, some views could be powered by the on-device server, and others by the remote server.)
There is an effort to extract ElixirKit out of Livebook and this likely will be how to implement offline mode. However, @LostKobrakai showed me a spike he wrote using Elixir Burrito and I have to investigate this: https://github.com/LostKobrakai/neovio
This ticket is to implement "offline mode", which will allow LiveView Native applications to run entirely within the native environment without a persistent Internet connection. A few implementation concerns:
mix release
so that packaging LVN apps to run on device is as easy as packaging them to run in other environments (like servers for example). This will also ensure compatibility will existing CI toolchains.Prior art:
The text was updated successfully, but these errors were encountered: