vendredi 2 mars 2012

#Ruby sur #android avec ruboto


Réaliser une simplement application pour android 

Remarque préalable.
Les smartphones sont divisés en deux familles les iphones sur IOS et les android.
La technologie à privilégier sur Iphone pour réaliser une application est objective-C.

Sur ANDROID , c'est le langage JAVA qui est utilisé. La pile java sur Android est différente de celle de votre PC. Sur un PC le schéma classique est le suivant: 
Confection d'un source java 
Compilation par le programme javac afin d'obtenir un fichier  de type pseudobyte  (.class) qui sera interprété par une JVM.

Sur ANDROID, le pseudobyte est à son tour compilé pour obtenir un fichier 'dex' interprété non pas par la JVM mais par un dispositif semblable : dalvik
conclusion intermédiaire: une application en  objective-c sera plus performante que son équivalant sur ANDROID. Son code est compilé, directement exécutable.
Source: 
http://www.technomicon.com/ElectroPolitics/ElectroPolitics-11-15-10.html

Installation sur le PC.
Pour ANDROID, le développement se fait sur un PC doté d'un kit de développement complété le plus souvent d'un émulateur de smartphone. Cet émulateur permet de tester très simplement et en toute sécurité vos applications sans avoir recours à un vrai smartphone.
L'outil privilégié pour réaliser tout ça est le plus souvent l'IDE éclipse avec les extensions pour ANDROID.

Il existe une solution alternative avec Ruby et RUBOTO. A l'origine tout commence par jruby, ce projet permet d'écrire des programmes en Ruby qui seront exécutés sur une JVM.  A partir d'un source Ruby, Jruby génère le bytecode qui sera interprété par la JVM. Le projet RUBOTO fourni plusieurs fonctionnalités: 
a) Génération de squelette d'application pour ANDROID
b) Outils pour créer un fichier directement en pseudo-code dex. Jruby intervient  pour la partie amont de traduction du source Ruby en pseudo-code java.  
c) Les librairies à installer sur le système ANDROID pour faire fonctionner les applications RUBOTO.

Le guide de démarrage du site RUBOTO donne la marche à suivre pour obtenir votre première application.
Les principales étapes sont les suivantes:

Les prérequis:
  • installation du
  • installation de jruby
  • SDK ANDROID
  • installation d'un émulateur ANDROID.
L'installation de jruby peut se faire avec l'utilitaire rvm (Ruby Virtual Machine). Pour le reste suivre la documentation du site RUBOTO. Tout fonctionne parfaitement sous Ubuntu
Sur votre ANDROID.

Il faudra récuperer le 'ruboto core' : c'est l'ensemble des librairies utilisées pour faire tourner vos application. L'installation se fait par l'android market. (copie d'écran) 

Un autre utilitaire sera necessaire pour faire passer votre application de votre PC à votre téléphone. J'ai utilisé l'application 'Apk Installer'  toujours par l'android market 

 Après avoir relié le smartphone au PC par le cable USB, il suffira de déposer le programme-archive (.apk)  dans l'arborescence de la SD.  L "APk installer" sera alors capable d'installer l'application comme si elle était issue de l'android market.

Un projet RUBOTO propose des dossiers pour ranger les ressources de l'application (icones).





L'application est ici: 


Elle ressemble à ceci:
L'émulateur  donne cet écran:


La doc  de Ruboto détaille comment accéder aux informations du GPS ou du wifi.

En conclusion:

Dans le cas présent on est dans le domaine des applications de type 'client lourd'.
Réaliser une application de type client léger serait encore plus simple (et plus portable)  mais il manquerait l'accès aux ressources locales (GPS, wifi etc) . L'annonce du portage de chrome sur Android est très importante. Car chrome vient avec son moteur javascript 'V8'.  L'objectif d'avoir un serveur web local léger comme node.js se rapproche.


Aucun commentaire: