/desktop

Elixir library to write Windows, macOS, Linux, Android apps with OTP24 & Phoenix.LiveView

Primary LanguageElixirMIT LicenseMIT

Desktop

Module Version Hex Docs Total Download License Last Updated

Building native-like Elixir apps for Windows, MacOS, Linux, iOS and Android using Phoenix LiveView!

Changes in 1.5

  • Support for iOS hibernation and wakeup

Changes in 1.4

  • Support for ~H sigil with <item onclick={...}>
  • Changed Menu XML escaping to LiveView automatic escaping logic from LiveView HTML tokenizer & engine.
  • Removed Menu.escape_attribute/1 and Menu.escape/1
  • Dropped :xmerl dependency

Changes in 1.3

  • Added Env.subscribe/1 to listen to MacOS application events such as {:open_url, url} when a url associated with the application is clicked.
  • Using (experimental) dbus support to render the systray icon on linux
  • Added Menu.escape_attribute/1
  • Added Window.url/1
  • Added Window.hide/1 and Window.is_hidden/
  • Fixed MacOS "Quit" menu item
  • Other fixes

Changes in 1.2

  • Removed the bleeding edge notices because Erlang OTP 24 is now broadly available for Windows/Linux/MacOS
  • Added build support for iOS devices
  • Moved most phoenix dependencies out to allow using Phoenix 1.6 / esbuild

Example

Checkout the Todo sample application for a starting point. https://github.com/elixir-desktop/desktop-example-app

MacOS build

Getting Started

Check out the Getting your Environment Ready Guide and Your first Desktop App

Status / Roadmap

  1. Run elixir-desktop on MacOS/Windows/Android ✅
  2. Run elixir-desktop on Android/iOS ✅
  3. Package elixir-desktop based apps for Android/iOS ✅ (see example-app repo for iOS and Android)
  4. Package elixir-desktop based apps in installers for MacOS/Windows/Linux
  5. Update the desktop example app built installers for MacOS/Windows/Linux using GitHub actions
  6. Use a repo of pre-compiled Erlang binaries for Android/iOS/MacOS/Windows/Linux when building Apps, so one call of mix desktop.deploy will create installer for all platforms.
  7. Integrate Code Signing for Windows/MacOS
  8. Build a GitHub actions based auto-update flow

Contributing and Raising Issues

Please checkout the github repo at https://github.com/elixir-desktop/desktop and raise any issues. For questions and comments best to use the Elixir forum: https://elixirforum.com/t/elixir-desktop-android-window-macos-linux-liveview-apps-with-elixir/ or contact me on Slack https://elixir-lang.slack.com/archives/C02429KJJCX

All suggestions are welcome!

Cheers!

Copyright and License

Copyright (c) 2021 Dominic Letz

This work is free. You can redistribute it and/or modify it under the terms of the MIT License. See the LICENSE.md file for more details.