Créer une application Windows avec Elixir-Desktop

Maintenant que nous avons installé notre environnement Windows avec les prérequis, nous allons construire notre première application Desktop avec Elixir-Desktop.

L’idée est de valider le concept de création d’écran réalisé avec Phoenix, écrans qui seront affichés et intégré à l’application Desktop. L’application Windows dispose ainsi d’écran sans faire appel à un navigateur extérieur. Cela reprend le concept proposé par l’outil Electron qui est lui, réalisé en javascript.

Création d’une application phoenix et Elixir hello_desktop

Vérifions les outils installés

Nous allons créer l’application pour l’environnement Windows.

Shell

Pour mettre à jour Erlang et Elixir nous suivons les étapes définies dans notre article.

Shell Windows-10

Création de l’application mix phx.new

L’application Phoenix est créé sous le nom hello_desktop. Nous souhaitons une application sans base de données. Nous regardons la documentation avec la liste des options pour phx.new :

  • mix phx.new hello_desktop --no-ecto

Sur Windows-10 : mix phx.new hello_desktop –no-ecto

Shell Windows_10<br>

Le projet hello_desktop a été créé sur Windows_10. Nous pouvons maintentant réaliser les modifications permettant de transformer le projet en version Desktop. Cela se fait avec VS Code.

Sur Windows_11, nous créons le projet hello :

  • dossier : C:\Surface\Phoenix\Projets
  • création avec mix : mix phx.new hello --no-ecto
Shell Windows_11<br>

Vérification de l’application en mode serveur web

pour lancer le serveur :

  • se placer dans le répertoire du projet : cd hello_desktop
  • lancer le serveur : mix phx.server
  • visualiser le projet dans le navigateur : http://localhost:4000/
Création de l'application hello Desktop sur Windows#1-la page phoenix en mode web
Création de l’application hello Desktop sur Windows#1-la page phoenix en mode web

Nous pouvons maintenant modifier cette application pour la transformer en mode Desktop.

Adaptation de l’application avec Elixir Desktop

L’application que nous venons de créer est transformée en version Desktop pour Windows.

Le travail à réaliser pour cette transformation est décrit dans la préconisation données par Elixir-Desktop.

Les modifications sont réalisées dans VS Code. Pour ouvrir VS Code :

  • Se placer dans le dossier du projet : cd hello_desktop
  • Ouvrir VS Code et afficher le projet dans VS Code : code .

Ajout de la dépendance à Desktop

Nous modifions le fichier mix.exs :

mix.exs :

Documentation<br>

On réalise l’ajout de desktop en ligne (6). Noter la virgule à la fin de la ligne ajoutée.

mix.exs :

Elixir<br>

Ajout de la fenêtre desktop dans l’application

On ajoute la fenêtre Dektop qui affichera le contenu de l’application.

application.exs :

Documentation<br>

Il convient de remplacer :

  • ligne (6), your_app par l’identifiant de l’application. On trouve celui-ci dans mix.exs en ligne (6),
  • ligne (7), YourAppWindow par HelloDesktopWindow, YourApp étant HelloDesktop,
  • ligne (8), YourAppWeb par HelloDektopWeb,

Dans mix.exs nous avons def project et en ligne (6) : app: suivi du nom de l’application :hello_desktop

mix.exs :

Elixir<br>

lib/hello_desktop/application.ex :

Elixir<br>

Noter l’ajout de la virgule en ligne (11), et les accolades ligne (17) et (22).

Modification du Endpoint pour utiliser Desktop

On remplace Phoenix.Endpoint par Desktop.Endpoint.

endpoint.ex :

Documentation<br>

lib/hello_desktop_web/endpoint.ex :

Elixir<br>

On met en commentaire la ligne initiale

Vérification de la configuration http/port

On change la configuration du serveur pour être en local avec un port à 0.

config.exs :

Documentation<br>

Nous regardons la configuration du projet exemple sur github

Nous ajoutons ci-dessous les lignes (4) et (11)

config.exs :

Elixir<br>

Utilisation de la locale du poste qui utilisera l’application

On peut adapter l’application à la locale du poste.

application.ex :

Documentation<br>

On ajoute cette option. YourWebApp est remplacé par HelloDesktopWeb :

application.ex

Elixir<br>

Noter les lignes 20, 21 et 23. et nous ajoutons title : « HelloDesktop » en ligne 22, qui sera le titre de notre fenêtre.

Compilation et exécution de l’application

nous pouvons maintenant compiler et executer l’application.

Shell Windows-10

On execute mix deps get :

Shell Windows-10

Nous executons l’application :

  • cd hello_desktop
  • mix phx.server

l’application s’ouvre lentement.

Shell Windows-10

L’application ouvre la page Phoenix :

Une application Windows Hello Desktop#1-La fenêtre de l'application Hello Desktop
Une application Windows Hello Desktop#1-La fenêtre de l’application Hello Desktop

La fenêtre s’ouvre directement, sans avoir besoin de passer par un navigateur.

Nous avons eu l’impression qu’il était difficile de fermer l’application avec la croix en haut à droite. Nous devons refaire un essai.

Ajout des fichiers statiques

Nous pouvons ajouter les fichiers images dans l’application, en particulier les icônes de l’application.

Distribution de l’application

Pour distribuer l’application, nous devons créer un exécutable.

Conclusion

Nous avons réussi à créer l’application minimale HelloDesktop. L’application se lance avec mix phx.server

Nous devons encore :

  • regarder comment se distribue l’application.
  • voir la création d’une application avec base de données intégrées.
  • créer la même application sur Mac, Android et ios

Cela fera l’objet de nouveaux articles.

Si vous avez aimé l'article vous êtes libre de le partager :-)

Laisser un commentaire