7
votes

Distribuer des applications de Rails comme applications natives

J'aimerais distribuer une application Rails comme une application double cliquable. Lorsque quelqu'un double clique sur l'application, je pense que Mongrel devrait être démarré, puis le navigateur de l'utilisateur doit être démarré et ouvert à quelque chose comme Localhost: 3000 J'essaie de travailler à travers ce que je devrai faire cela, je pense que je vais ' m Au besoin d'inclure une copie des rails dans le projet et une copie des gemmes. Dois-je distribuer Ruby? Initialement je cherche à cibler le Mac et Linux pour la distribution. Quelqu'un a-t-il une expérience d'expérience de Packaging Rails comme celle-ci?

L'application que j'aimerais que le déploiement est un serveur de médias pour un support d'utilisateur. Malheureusement, cela signifie que je ne peux pas avoir de serveur public servant des médias. J'ai construit le serveur en utilisant Ruby sur Rails et des tâches Rake pour importer et gérer les médias. Y a-t-il un bon moyen de rendre cela facile à installer pour les utilisateurs? L'idée était avec une application double cliquable qu'il serait facile pour les utilisateurs d'apporter et de descendre le serveur.


2 commentaires

Et si l'un de vos utilisateurs se trouve être un développeur de rails et que le port 3000 est déjà utilisé?


J'avais pensé à cela, je pensais que j'utiliserais Port 8001 comme il semble assez loin à l'extérieur de la gamme de ports d'utilisation normale. Avez-vous des suggestions?


8 Réponses :


1
votes

Le Joyant Slingshot malheureux a fait exactement cela, il vous a permis d'intégrer votre application Rails comme exécutable autonome sous Windows et Mac. Il a même fourni une méthode simple mais simple pour permettre la synchronisation des données avec une version en ligne. Hélas, il n'a pas vu d'activité depuis longtemps.

https://dev.joyent.com/projects/slingshot/wiki/slingshot


3 commentaires

Cela ressemble exactement à ce que je cherche, mais cela n'a pas été mis à jour depuis plus d'un an. :( Avez-vous entendu parler de tout remplaçant pour cela? Je me demande à quel point il serait difficile d'échanger des versions de rails plus récentes et des autres actifs qu'il contient. C'est une source ouverte ...


En théorie, cela ne devrait pas être si difficile, du moins sur OSX --it intégré à son propre interprète Ruby et à son propre référentiel GEM.


J'ai vu cela, Pantulis, je suis curieux s'ils avaient apporté des modifications à l'interprète de rubisier. On dirait de certains de leurs messages de validation qu'il y avait une modification intéressante de créer leur "vm".



1
votes

SPICEWORKS est une application de rails déployés dans un bureau, ou du moins c'était quelques années. il y a. C'est un téléchargement gratuit (Ad-supporté).


1 commentaires

On dirait une application intéressante, qu'ils avaient plus d'informations sur la manière dont ils accomplissaient la configuration de l'application locale.



-1
votes

Si vous souhaitez écrire des applications Desktop, Write Desktop Apps, si vous souhaitez écrire des applications Web, écrire des applications Web.


5 commentaires

Je pense que dans la plupart des cas, vous avez absolument raison, mais je pense que mon cas peut être unique et je voudrais le voler par vous. Je construis une application qui sert de média sur un réseau local d'un utilisateur via un serveur Web. Donc, l'utilisateur peut venir écouter leur musique directement dans leur navigateur. Je souhaite que cela soit aussi facile à installer et à utiliser le plus possible afin que l'idée soit d'avoir une application double cliquable qui lance leur serveur multimédia pour son réseau. Cela a-t-il un sens pour avoir un lancement d'applications Web en tant qu'application de bureau? Pouvez-vous penser à une meilleure approche pour cela?


@nixterrimus: cool idée, et je vois où vous allez avec elle, mais je vais devoir être d'accord avec @Railsninja ici: je ne pense pas à essayer de tourner une application de rails en une application de bureau est la voie à suivre aller avec ça. J'irais personnellement avec un environnement de programmation orienté sur ordinateur tel que C # à la place, mais vous pouvez toujours écrire votre application avec RUBY et la compiler dans un exécutable (je sais qu'il y a des compilateurs Python comme celui-ci autour, mais je ne sais pas de rubis , alors tu es seul). Écrivez simplement une petite enveloppe autour de Mongrell ou du serveur que vous souhaitez utiliser.


Je ne dis pas n'utilise pas de rubis, vous pouvez certainement l'utiliser pour une application de bureau, mais des rails comme une application de bureau est une situation de trou rond dans la cheville carrée.


Cette réponse est inutile et égarée. Il y a beaucoup d'avantages potentiels pour écrire une application de bureau à l'aide d'une pile Web emballée. Comme un développement inter-plateforme facile. Comme être capable de migrer l'application sur un serveur si cela devient une fonctionnalité nécessaire. Comme ne pas avoir à s'inquiéter d'un grand nombre de problèmes de stabilité qui accompagnent le développement de toutes les applications de fonctionnement longues. Comme être capable d'utiliser les technologies que vous connaissez déjà.


Comme essayer de deviner un tas d'exigences que vous n'avez pas encore encore? C'est le conseil que je pense que vous trouverez est égaré.



0
votes

Hey, jetez un coup d'œil à Shopify et leur application de créateurs à thème. http://vision.shopify.com/ Est à peu près exactement ce que tu parles. Tout ce qu'ils ont fait, c'est écrit un talon pour les deux plates-formes qui lancent le projet Rails. Vous pouvez consulter le code qui vérifie le projet de projet Rails dans le contenu de l'emballage de l'application Vision.


1 commentaires

Ce genre de chose est vraiment écrit pour les développeurs. Pouvez-vous imaginer essayer de parcourir des utilisateurs via une installation de passager Apache / Nginx + ou pire les aidant à surveiller leur instance de Mongrel? Non merci.



3
votes

J'ai décidé d'utiliser Jruby et de regarder dans l'emballage de l'application comme application Java.


2 commentaires

Si vous allez emballer, c'est une voie assez décente. Je pense toujours que vous êtes un peu élevé, mais au moins vous lui donnez une pensée. J'éspère qu'il va bien.


Merci, Railsninja, je pense que c'est le moyen le plus stable de le distribuer. J'apprécie vraiment toute votre aide et inciter.



0
votes

Je suis d'accord avec les affiches précédentes concernant les applications de bureau, mais je me trouve écrire des applications Web pour le bureau (principalement des widgets à l'aide de fluide), donc je comprends le problème. Quelqu'un a-t-il consulté Titanium Desktop de Appelerator ( http://www.appelerator.com/ )? Je l'ai essayé initialement et il y avait un peu de fidélité requis, mais le résultat final était plus ou moins une application de bureau.


1 commentaires

Semble intéressant mais c'est une direction différente de celle que je vais. L'application que je travaille sur les utilisateurs permet de servir les médias sur leur réseau, de sorte que l'application doit exécuter local et avoir accès aux ressources locales (mais très limitées). Merci pour la tête à ce sujet, cependant, j'ai peut-être besoin d'un besoin à l'avenir.



0
votes

À l'avenir, je pense que MacRuby fournira un excellent moyen d'exécuter Web-applications sur le bureau (Eh bien, je peux dire OS X Desktop) - vous pouvez en théorie, faire une application de rails, puis avoir un point WebView à la Application de rails. Actuellement, ils se concentrent toujours sur la fabrication de MacRuby un citoyen de première classe de l'écosystème OS X, mais le soutien des rails est sur la feuille de route.

MacRuby est également excitant en raison des travaux sur le compilateur AOT < / a>, avec lequel vous pouvez compiler le code de rubis au code de la machine.


1 commentaires

J'attends avec impatience ce jour-là lorsque MacRuby peut conclure une application Rails. J'aimerais cibler uniquement le Mac pour mes versions, mais je suis sûr que c'est raisonnable en ce moment.



1
votes

Appelerator Titanium prend en charge de manière native les applications de bureau à base de clients / de bureau à l'aide de Ruby.


0 commentaires