es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Creando aplicaciones de escritorio en Elixir.

Antecedentes

En mi búsqueda por crear una aplicación de escritorio con Elixir para Windows (he dejado la idea de hacer aplicaciones multi-desktop por ahora), estoy tratando de crear una aplicación de escritorio HelloWorld.

Esta aplicación es básicamente lo que obtienes al ejecutar mix phx.new hello.
Estoy usando la última versión de Phoenix, así que no tengo que lidiar con SASS ni nada parecido, lo cual es una bendición, ya que esto significa que no tengo más problemas con node-gyp.
Hacer que sea amigable para el escritorio

Como algunos de ustedes pueden haberse dado cuenta, simplemente creando un proyecto de Phoenix no lo convertirá en una aplicación de escritorio.
Aquí es donde entra el proyecto de Escritorio:
– https://github.com/elixir-desktop/desktop

Esta es una dependencia que te permite hacer que tus aplicaciones sean como aplicaciones de escritorio.
Como ya he ejecutado la aplicación de ejemplo en el pasado:
– https://github.com/elixir-desktop/desktop-example-app

Decidí intentar desmenuzarla y tratar de lanzar la aplicación HelloWorld más simple y tonta que pudiera.
Básicamente, cuando ejecuto mix iex -S en lugar de abrir una ventana en mi navegador, quiero que abra una aplicación de escritorio.

Problema

He agregado todas las dependencias y tengo una estructura de proyecto algo similar a la que tiene la aplicación de ejemplo:

mix.exs

defmodule Hello.MixProject do
  use Mix.Project

def project do
    [
      app: :hello,
      version: "0.1.0",
      elixir: "~> 1.12",
      elixirc<em>paths: elixirc</em>paths(Mix.env()),
      compilers: [:phoenix, :gettext] ++ Mix.compilers(),
      start_permanent: Mix.env() == :prod,
      aliases: aliases(),
      deps: deps()
    ]
  end

def application do
    [
      mod: {Hello.Application, []},
      extra<em>applications: [:logger, :runtime</em>tools, :inets, :observer, :wx]
    ]
  end

defp elixirc<em>paths(:test), do: ["lib", "test/support"]
  defp elixirc</em>paths(_), do: ["lib"]

defp deps do
    [
      {:phoenix, "~> 1.6.2"},
      {:phoenix<em>html, "~> 3.0"},
      {:phoenix</em>live<em>reload, "~> 1.2", only: :dev},
      {:phoenix</em>live<em>view, "~> 0.16.0"},
      {:floki, ">= 0.30.0", only: :test},
      {:phoenix</em>live<em>dashboard, "~> 0.5"},
      {:esbuild, "~> 0.2", runtime: Mix.env() == :dev},
      {:swoosh, "~> 1.3"},
      {:telemetry</em>metrics, "~> 0.6"},
      {:telemetry<em>poller, "~> 1.0"},
      {:gettext, "~> 0.18"},
      {:jason, "~> 1.2"},
      {:plug</em>cowboy, "~> 2.5"},

<pre><code>  {:desktop, github: &quot;elixir-desktop/desktop&quot;, tag: &quot;v1.3.1&quot;},
  {:credo, &quot;~&gt; 1.5&quot;, only: [:dev, :test], runtime: false}
]
</code></pre>

end

defp aliases do
    [
      setup: ["deps.get"],
      "assets.deploy": ["esbuild default --minify", "phx.digest"]
    ]
  end
end

Sin embargo, cualquier cosa que haga no funciona. No hay errores en la consola, pero la aplicación de escritorio no se iniciará.
Estoy dispuesto a desechar todo, todo lo que quiero es tener una manera de abrir esto en una ventana de escritorio.

Creo que podría haber un problema de configuración, pero no puedo estar seguro ya que la aplicación de ejemplo se hace con una versión anterior de Phoenix que usa SASS.

Pregunta

¿Alguien puede ayudarme a descubrir cuál es el problema para que esto abra una ventana de escritorio?

He compartido el proyecto de código abierto aquí:
– https://github.com/Fl4m3Ph03n1x/hello-desktop

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en Elixir, wxWidgets, Phoenix Framework y Phoenix Live View, recomiendo verificar la configuración de su aplicación de escritorio en el archivo mix.exs. En la función de aplicación, asegúrese de que el valor de la tupla mod apunte al módulo GenServer correcto que inicia la aplicación de escritorio. Además, asegúrese de utilizar la tarea mix de la aplicación de escritorio para iniciar la aplicación de escritorio en lugar de mix phx.server o mix iex -S. Puede consultar el Phoenix Desktop Example App para obtener orientación sobre cómo configurar su aplicación. Además, asegúrese de que sus dependencias para escritorio y wxwidgets estén actualizadas a las últimas versiones. Si el problema persiste, intente revisar los registros o ejecutar la aplicación de escritorio en modo de depuración para identificar la fuente del problema.

Comments are closed.