Hi all,
I’m new to Elixir world and I’ve been learning Erlang and Elixir for a while. I couldn’t find clear answers on the net and I wanted to ask my question in this specific forum. I believe that the experienced developers should give the clear answer
Can native apps be developed with Phoenix? Is it a serious rival for React/React Native (well, I think it is, but couldn’t be sure)?
Phoenix is a framework for developing webservers. It works great as the back-end to a native/mobile application, but you’d need to write the client with something else (like React Native).
Erlang in general doesn’t have much to offer mobile developers. There were some experimental ports to iOS and Android years ago, but nothing nearly production-worthy.
For desktop there are some options, wx is a wx widgets binding that ships with Erlang core, but this has mostly been used for building management tools not user applications.
I’ve read some articles about this in context of serveer side Blazor (now named to Razor Components) that is similar tech ot LiveView. There was experiment to use it with Electron and it seems to work great. Here is blog post from creator of Blazor related to future of Blazor in this space https://blog.stevensanderson.com/2019/11/01/exploring-lighter-alternatives-to-electron-for-hosting-a-blazor-desktop-app/
I can’t see why you couldn’t use Elixir & LiveView to do similar thing for desktop apps at least.
Also there is https://github.com/lumen/lumen that will be enable Elixir & Erlang to build web client side apps and single executable command line tools. Maybe that can extend to desktop and mobile apps in the future who knows.
This looks nice wanton, I’ll keep checking it. Thank you. For now, I decided to learn Svelte.js for client side. I have found React and other libraries/frameworks very awkward.
You should check Absinthe for creating GraphQL API if you haven’t already. Seems to be very good GraphQL implementation for Elixir and I think it’s used quite alot in production by different companies. https://github.com/absinthe-graphql/absinthe
down the line you could see a “app wrapper”/API for phoenix liveview similar to what https://github.com/turbolinks/turbolinks-ios does for turbolinks/rails - but hybrid style app - not native native…