gnat

gnat

I’m completely new to Elixir and don’t know Ruby, either.

Is anyone writing GUI applications in Elixir? I don’t know the language and the easiest way for me to learn (not to mention the way I’d primarily be using any language right now) is for desktop applications with a GUI front end - ideally something that will work on both Mac and Linux. What are my choices and how well supported/ integrated are they? In case it matters, I’m specifically interested in writing a distributed business application connecting multiple machines over the internet. From that standpoint, Elixir seems like it might be a good fit. But I need to have a GUI interface and not just in a browser.

I tried to research this question first with a web search and then with a search on this site; I haven’t found any good answers so far.

Showing Posts 1 to 10

AstonJ

AstonJ

Will the app be connected to a central server?

If so I would look at http://electron.atom.io for the GUI and then use Elixir on the back end/server. (@kofno has some experience with Electron. Hopefully he’ll spot this and add some thoughts.)

Mandemus

Mandemus

https://twitter.com/chris_mccord/status/593907559129550848

For a cross-platform desktop app Java would be my choice. If the Java client isn’t ready then you might investigate the possibility of channel integration by executing Phoenix.js through Nashorn.

JavaFX is really easy to work with and can deliver a great looking GUI.

kofno

kofno

If you have web development experience, I would recommend Electron. It’s fairly easy to build and distribute a desktop application if you already have experience with web technologies. I wrote an app using Elm and distributed it as an Electron app.

elixir and a server and elm as a frontend is pretty popular right now. I’ve actually started working on something built that way (though I’m not sure if I’m going to use electron, or just the browser).

gnat

gnat OP

Wow. I recently been using Atom a bit and have been impressed by it. I never bothered to wonder how they were handling their gui. I guess this is it! A lot of stuff to digest but if Atom is basically using electron (I understand it was formerly called “atom shell”) for its gui then it ought to be good enough! At least I will presume so for now.

I’m intrigued that Elm – another language which I’ve read a bit about but not yet learned – and Elixir are being used together… Does this qualify as a real symbiosis? Are the communities cooperating? I previously would have classified Elm and Elixir as “competitors” in somewhat the same space. I had read something about a project to bring Elm to the server.

Any links or comments on any of these things would be appreciated.

gnat

gnat OP

Thanks. It will have a centralized store, of sorts, but not really client-server. The nodes are supposed to maintain their own limited data and keep operating in case of any outage and, later, synchronize. The purpose is to tie together a number of loosely coupled businesses.

AstonJ

AstonJ

No they are not competitors at all - Elm is front end and Elixir is backend. Elm is a HTML/CSS/JS transpilier, I can’t see why they would want it on the server as well, and even if they did, it would be JS - nobody in their right mind would want JS on the server :043:

Mandemus

Mandemus

At the latest Elixir conference which you can find on Youtube, the author of Elm gave a presentation in which he said he was working on a tight integration with Phoenix channels.

Time frame given was about a month.

gnat

gnat OP

Yes. I guess I saw that - didn’t read it. Thanks for locating the comment. I figured Elm was at least originally written in Haskell (don’t really know, but figured). So it doesn’t have to stay with HTML/CSS/JS manipulation, right? It’s getting kind of crazy out there. You should see the kind of stuff they’re planning with red-lang. Although not a purely functional language, imo red will upset a few applecarts…to put it mildly.

NobbZ

NobbZ

For GUIs in Elixir you can still use Erlangs wx-module. For this to work, of course, it is necessary that your Erlang release is compiled with wx included.

But for the client side I’d prefer a more lightweight solution that does not pull in a full gigabyte as runtime dependency…

This in mind, I do think, currently the best approach is a JavaScript-application which runs in the Browser and is written in a way that it can work without internet access. This could even update itself silently whenever necessary (and online). Also there are multiple tools available, that can convert HTML5/JS-Applications into native applications for iOS, Android or Win mobile. They might need additional tweaking of the source though.

But if you really want to use the same language in the complete applications stack, I heard about a language called haxe which promisses exactly that, but I never tried more than a hello-world, because I#ve no project which could make use of it.

mackenza

mackenza

if this is your goal, Elixir is not at all well suited to learn by creating GUIs. All the answers you got above are about actually creating the GUI itself in another language (Elm, JS/HTML/CSS with Electron, Java) not in Elixir. All the above answers are good, but if your stated goal is to learn Elixir by doing GUI programming (non-web), you won’t find much/anything to support that in Elixir itself.

Where Next? Top

Trending in Questions Top

stjefim
Hello! Suppose you are building workflow (order / task / payment) processing system with the following requirements: Each workflow con...
New
jonnycharles
I’m in search of an Elixir library that offers PDF generation capabilities similar to Ruby’s Prawn. While there have been discussions abo...
New
spammy
I’m looking to build a personal workflow to quickly deploy web applications written in elixir/phoenix, for local consumption (ie not on t...
New
Blokh
Hey guys, I’ve got a huge CSV ( around 10 GB ) that needs to be processed hourly Do you guys have any suggestions what is the best prac...
New
dli
Before I dive in myself, did anyone successfully sprinkle Hologram into their existing LiveView app? Looking for hints regarding: Addi...
New
roeland
Kia ora, We have been using elixir-google-api to connect to Google Drive. However, with the updates to Tesla due to CVEs this is now bro...
New
bottlenecked
Hi all, I wanted to ask how the community is dealing with post-release steps. Today we have Ecto migrations, which make sure that the db...
New

Other Trending Topics Top

JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
ausimian
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews