# Desktop

[![Module Version](](
[![Hex Docs](](
[![Total Download](](
[![Last Updated](](

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

## 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 (experimantal) 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.

![MacOS build]( "MacOS build")

## Getting Started

Check out the [Getting your Environment Ready Guide](./guides/ and [Your first Desktop App](./guides/

## Status / Roadmap

1. Run elixir-desktop on MacOS/Windows/Android ✅
1. Run elixir-desktop on Android/iOS ✅
1. Package elixir-desktop based apps for Android/iOS ✅ (see example-app repo for iOS and Android)
1. Package elixir-destkop based apps in installers for MacOS/Windows/Linux
1. Update the desktop example app built installers for MacOS/Windows/Linux using GitHub actions
1. 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.
1. Integrate Code Signing for Windows/MacOS
1. Build a GitHub actions based auto-update flow

## Contributing and Raising Issues

Please checkout the github repo at and raise any issues. For questions and comments best to use the Elixir forum: or contact me on Slack

All suggestions are welcome!


## 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 [](./ file for more details.