Follow me
RSS feed
My sources
My Viadeo

CapApbility

Greg | 15 May 2009

projetsIl y a quelques années, Nicolas avant évoqué la possibilité de faire du RAD avec Rails. Dans le principe il s'agissait de développer une application Web, mais de la faire tourner comme une application desktop. Malheureusement, il n'a pas poursuivi son idée. Aujourd'hui on est en droit de penser que ce fut un choix raisonnable. En effet, avec la sortie de Prism et des projets tels que Titanium il semble que ce type de solution tant à se répandre de plus en plus. Pourtant, je trouve dommage que le projet de Nicolas n'ait jamais passé le statut de concept. Prism est très beau, mais il ne permet pas le fonctionnement offline des applications. Titanium est très proche de l'idée de Nicolas, mais il reste fermé sur un framework... Dommage.

Bref...

Mes derniers développements on tendance à se tourner de plus en plus vers de véritables WebApps que du développement de site internet. Et même s'il s'agissait de site classique, finalement offrir la possibilité d'installer une application Web comme utilise (et on installe) une application desktop présente de multiples avantages. Un exemple parmi tant d'autres. desktopDans la boite où je travail, nous développons des applications intranet. Lors d'un déplacement chez un client il est intéressant pour les commerciaux de pouvoir montrer ces applications. Il suffit de mettre en place un serveur de démo, me direz-vous. Oui sauf que malheureusement vous ne savez jamais dans quelle condition vous allez pouvoir faire votre démo. Il n'est en effet pas certain que vous ayez un accès internet ! Donc les commerciaux doivent installer ces applications intranet sur leur machine. Et, nous nous retrouvons alors confronté au problème du technicien qui à développer une application avec sa vision sans penser au pauvre commercial qui ne fait pas forcement la différence entre Pouvoir Du Poing et un serveur Web, un serveur de base de données... Au final, le développeur râle parce qu'il doit faire des installations sur des portables inondés de feuilles Excel, de fichiers clients et de présentations. L'horreur !

Tout cela m'a donc amené à mettre en place un nouveau projet : CapApbility. L'idée est de permettre de packager facilement une application Web pour en faire une application desktop. Ce projet est aujourd'hui en phase pre alpha, mais permet déjà de créer des applications à partir de développement Ruby (Rails, Capcode, ...) en générant des exécutables pour Mac, Windows et Linux. Il existe encore beaucoup de limitations dont la plus gênante concerne l'utilisation de la base de données. En effet, si c'est simple avec SQLite, cela demande plus de travail pour une base MySQL ou PostgreSQL1. De même avec une application Rails utilisant son propre serveur Web, c'est relativement simple. Mais avec PHP, il n'est pas question de mettre un apache dans le package !

Dans la pratique, le packaging d'une application est simple, dans la limite où vous maîtrisez bien l'ensemble des composants nécessaires. rube_goldbergJ'ai pour le moment beaucoup plus travailler sur le runtime que sur la manière de générer l'application. En effet, au final je voudrais une application à la Prism dans laquelle vous dites où se trouve votre application, comment elle fonctionne et qui se charge alors de créer le package. J'avais commencé ce travail, mais je me suis rendu compte en essayant de faire des applications avec différentes technos que j'oubliais toujours quelque chose. Pour le moment je me contente de faire les applications à la main en faisant les corrections nécessaires dans les composants spécifiques à chaque OS.

Malheureusement, je n'ai pas grand-chose à montrer pour le moment. Mais si tout va bien, la prochaine fois, nous pourrons faire notre première application ensemble.

1 ceux d'entre vous qui espèrent un support Oracle, SQL Server, DB2 ou autre seront libre de contribuer ;)

Copyright © 2009 - 2011 Grégoire Lejeune.
All documents licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License, except ones with specified licence.
Powered by Jekyll.