Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Faire un application bureau avec Electron ? #56

Closed
Naereen opened this issue Jun 22, 2017 · 29 comments
Closed

Faire un application bureau avec Electron ? #56

Naereen opened this issue Jun 22, 2017 · 29 comments

Comments

@Naereen
Copy link

Naereen commented Jun 22, 2017

Vu que le site est déjà une application node.js valable (package.json etc), elle devrait facilement pouvoir se transformer en une application bureau multi-plateforme avec Electron.
Est-ce que quelqu'un a déjà essayé ?

@2ec0b4 est-ce que ça te semble utile ou intéressant ?

@Naereen
Copy link
Author

Naereen commented Jun 22, 2017

Si oui, je veux bien essayer de le faire :-)

(jamais essayé, mais electron-forge a l'air de rendre les choses faciles)

@2ec0b4
Copy link
Owner

2ec0b4 commented Jun 22, 2017

Salut @Naereen
Je serais curieux de voir ce que ça donne. Peut-être peux-tu créer un dépôt et utiliser le dépôt 2ec0b4/kaamelott-soundboard en sous-module Git pour ça ?
Tiens-moi au courant ;)

@Naereen
Copy link
Author

Naereen commented Jun 22, 2017

J'ai essayé avec WebDGap et nativifier et sans bidouiller ça ne marche pas.

@Naereen
Copy link
Author

Naereen commented Jun 22, 2017

J'essaie electron-packager.

@Naereen
Copy link
Author

Naereen commented Jun 22, 2017

J'abandonne, je trouve aucune solution que je comprenne.

Le projet utilise à la fois node et bower ?

@Naereen
Copy link
Author

Naereen commented Jun 22, 2017

Si uniquement npm était utilisé, electron-packager devrait pouvoir être utilisé presque automatiquement

@2ec0b4
Copy link
Owner

2ec0b4 commented Jun 22, 2017

Le projet utilise bower pour la gestion des dépendances Web et npm pour les dépendances pour le développement, notamment pour pouvoir minifier les sources avant le déploiement.

Je te laisse encore creuser ou bien ? :)

@Naereen
Copy link
Author

Naereen commented Jun 23, 2017

OK.
Là j'aurai pas le temps avant un moment, mais j'y étais presque hier...

electron-packager est la voie à essayer, je pense.

@gromain
Copy link

gromain commented Jun 24, 2017

Bonjour,

nativefier a bien marché pour moi, avec la commande nativefier http://kaamelott-soundboard.2ec0b4.fr/ tmp/.
L'application est générée dans tmp/kaamelott-soundboard-linux-x64 et peut ensuite être packagée. Ca doit être similaire depuis windows.

@gromain
Copy link

gromain commented Jun 24, 2017

En fait, je pourrai même le faire depuis ma machine pour les autres architectures, via les flags suivants:

    -p, --platform <value>          'osx', 'linux' or 'windows'
    -a, --arch <value>              'ia32' or 'x64' or 'armv7l'

L'application est crée avec Electron 1.6.6 (à la date du jour).

@Naereen
Copy link
Author

Naereen commented Jun 26, 2017

@gromain nativifier marchait aussi pour moi, mais essaies ton application sans avoir internet et tu verras qu'elle ne marche pas (du coup ça sert à rien, autant ouvrir le site web...). (si elle marche, bravo tu as réussi, et tu peux demander à @2ec0b4 de rajouter les .exe/.dmg/.app dans les fichiers en téléchargement dans releases)

Je voulais avoir exactement pareil mais avec toutes les ressources incluses dans l'appli. C'est évidemment faisable, j'y étais presque avec electron-packager mais je suis arrivé à un bug dans le fichier js/app/main.js ("require.config is not a function", peut-être qu'il faut configurer electron-packager pour ne pas avoir de script main.js ? je sais pas, ou faire un mini script qui ne fasse qu'ouvrir la page index.html)

@Naereen
Copy link
Author

Naereen commented Jul 2, 2017

Je viens de comprendre que le soucis venait de requirejs qui est configuré avec require.config, sauf que dans node (dans electron), require est une fonctionnalité native. En utilisant requirejs.config à la place, en gros ça marche.

Je finis pour réussir à faire un .deb ou un .exe qui marche.

Par contre, je suis pas sûr de réussir à pouvoir faire juste un sur-module (comme @2ec0b4 proposait au début), sachant que j'ai dû changer quelques trucs :

  • index.html inclut à la main jquery.min.js et likely.js (je sais pas pourquoi ça ne marchait pas bien via requirejs)
  • js/app/share.js change la fonction getAbsoluteUrl pour partager un lien avec "http://kaamelott-soundboard.2ec0b4.fr/" + url et pas la base URL (qui est genre file:///.... quand ça tourne dans electron)
  • le package.json pour déclarer un nouveau script index.js comme point d'entrée, qui lui se charge d'ouvrir la fenêtre avec index.html dedans.

@Naereen
Copy link
Author

Naereen commented Jul 2, 2017

L'appli : nice test
Le partage qui marche comme voulu :
nice test 2

@Naereen
Copy link
Author

Naereen commented Jul 2, 2017

@Naereen
Copy link
Author

Naereen commented Jul 2, 2017

https://github.com/Naereen/kaamelott-soundboard-desktop-app/releases
Je n'aurai ni le temps de le maintenir, ni d'en faire plus...

Mais si l'appli marche pour toi @2ec0b4 et que ça t'intéresse, je pense que les quelques explications que je donne ci-dessus et ce Makefile suffiront à continuer là où je m'arrête.

@Naereen Naereen closed this as completed Jul 2, 2017
@Naereen
Copy link
Author

Naereen commented Jul 2, 2017

Est-ce que c'est utile d'avoir un .deb aussi ?

@gromain
Copy link

gromain commented Jul 5, 2017

@Naereen Super taf! C'est vrai que j'avais pas compris que tu voulais tout en interne!
Je pense qu'un deb pourrait être utile dans l'absolu.

@Naereen
Copy link
Author

Naereen commented Jul 5, 2017

@gromain bah oui le seul intérêt que ça peut avoir c'est d'avoir les sons même sans Internet.
L'inconvénient c'est l'espace de stockage et la mémoire RAM de l'application bureau (~= 60 Mo, 5 fois plus que juste les sons et l'appli, parce que ça embarque un mini navigateur Chrome).

OK Je ferai un .deb/.rpm aussi en rentrant de vacances.
Je pense qu'avoir un .exe pour Windows et un .dmg pour Mac OS ne devrait pas être dur (pour peu qu'on ait une machine Windows ou Mac OS)

@Naereen
Copy link
Author

Naereen commented Jul 5, 2017

Ah tiens, avec wine on devrait pouvoir faire un .exe pour Windows mais... depuis une machine GNU/Linux !

@Naereen
Copy link
Author

Naereen commented Jul 5, 2017

Ah bon en fait j'ai fait Windows (32/64 bits) et Linux (32/64 bits, et ARM), et Mac OS X.

https://github.com/Naereen/kaamelott-soundboard-desktop-app/releases/latest

Je testerai aussi rapidement que possible la version Windows. Connaissant la qualité du projet Electron, ça va marcher directement. Et voilà.

@Naereen
Copy link
Author

Naereen commented Jul 5, 2017

@2ec0b4 @gromain si vous pouvez tester aussi 🆘 ?

@2ec0b4
Copy link
Owner

2ec0b4 commented Jul 6, 2017

Fonctionne très bien sur macOS Sierra 🥇
J'ai juste remarqué le tri qui était différent de la version Web, bizarrement... La réplique "En plus y'en avait un il était mi-ours, mi-scorpion et re-mi-ours derrière !" arrive en premier, par exemple.
Bien joué 👍

@Naereen
Copy link
Author

Naereen commented Jul 10, 2017

@2ec0b4 Cool 👍 !

En fait, c'est pas encore 100% comme la version web...
Pour un aspect, c'est un bug et pas une erreur de compilation de ma part.
Quand je lance l'application en ligne de commande, la petite fenêtre de partage, l'icône de lecture/arrêt et l'information de survol marchent, mais quand je lance via le menu système ces 3 fonctionnalités ne marchent pas...
Je n'ai pas vraiment le temps de déboguer ça donc tant pis...

@Naereen
Copy link
Author

Naereen commented Jul 12, 2017

J'ai testé la version Windows et tout marche très bien.
demo_6
demo_7

La flemme de faire un installeur correct, je me dis qu'un truc comme ça est déjà tellement "pour les geeks" que les gens intéressé-es sauront comment faire.

@Sgtpapy
Copy link

Sgtpapy commented Nov 3, 2018

Bonjour,
étant intéresser sur ce sujet, je suis en train de bidouiller une application gratuite qui utilise electron couplé a d'autres plugin's mais seulement voila tout fonctionne, et quand je repack le tout et que je lance le .exe j'ai une erreur qui ressort et qui donc m’empêche de finir de lancer l'app, quand je regarde dans mon gestionnaire de tache, electron est exécuté 2 foies, cela fait toute la semaine que je cherche une solution et essayer des avis sur les sites anglais mais sans résultats, peu etre est-ce du a cette erreurs interne ?

TypeError: Cannot read property 'on' of undefined
main.js:53
at Object. (c:\Users\SgtPapy\Desktop\tuto bot\main.js:53:5)
at Module._compile (internal/modules/cjs/loader.js:704:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:718:10)
at Module.load (internal/modules/cjs/loader.js:605:32)
at tryModuleLoad (internal/modules/cjs/loader.js:544:12)
at Function.Module._load (internal/modules/cjs/loader.js:536:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:760:12)
at startup (internal/bootstrap/node.js:303:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:872:3)

j'ai donc aujourd'hui télécharger ta démo et elle fonctionne nickel sur window 10 64 bit, j'essai de voir si il y a des modules que je n'ai pas mis ou autre qui pourrais résoudre mon problème, Cordialement

@Naereen
Copy link
Author

Naereen commented Nov 3, 2018

Bonjour @Sgtpapy,

  • Je ne sais pas du tout, désolé…
  • Je n'ai pas développé l'application .exe pour Windows sur Windows mais sur GNU/Linux (XUbuntu).
  • Je ne connais pas assez Electron pour comprendre la trace d'erreur…

@Sgtpapy
Copy link

Sgtpapy commented Nov 9, 2018

Bonjour Naereen,
merci pour ta réponse,
electron fonctionne trés bien et sans erreurs, ton projet étant fonctionnel il m'a grandement
aider a résoudre certains soucis au niveau de mon application, j'y ai pus couplé aussi un bot
qui a plusieurs fonctionnalités, ainsi qu'un module vocale et d'autre petit scripts,
maintenant je suis en train de rajouter le moteur WebGl dessus electron pousser plus loin le potentiel
de cette application.
si tu veut que je t'envoi la démo no soucis.

je cherche a faire une application qui contient une base de donnée sur toutes les formules chimique,
un tableau de particules, et un simulateur de réaction a fusion froide sous électrolyse, le bot étant capable
de savoir qu'elle matière ou molécule il faut rajouter a une structure moléculaire inorganique pour construire cette structure, ainsi que choisir le géométrie a utiliser .

ce logiciel devrait m'aider pour mon boulot, je fait des recherches sur le recyclage des métaux(ainsi que d'autres recherches).

Cordialement.
http://www.4lph4live.com/

@2ec0b4
Copy link
Owner

2ec0b4 commented Nov 9, 2018

je cherche a faire une application qui contient une base de donnée sur toutes les formules chimique,
un tableau de particules, et un simulateur de réaction a fusion froide sous électrolyse, le bot étant capable
de savoir qu'elle matière ou molécule il faut rajouter a une structure moléculaire inorganique pour construire cette structure, ainsi que choisir le géométrie a utiliser .

https://kaamelott-soundboard.2ec0b4.fr/#son/cest_pas_faux2

(j'ai hésité avec un petit "Kamoulox" aussi, mais je suis resté dans le thème Kaamelott)

@Naereen
Copy link
Author

Naereen commented Nov 9, 2018

@Sgtpapy ravi que mon projet ai pu t'être utile.
Par contre si tu nous parles de ton application en chimie, ça devient hors de propos, je pense que ça n'a pas sa place ici, désolé. Et bonne chance avec ton projet…

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants