Affichage des articles dont le libellé est android. Afficher tous les articles
Affichage des articles dont le libellé est android. Afficher tous les articles

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.


lundi 14 décembre 2009

La roue de la fortune de google



Une série de conférence à L'EFREI organisée par le club GET-CONF m'a appris beaucoup sur la stratégie de google.

Quel est le cœur de métier de Google ?: c'est son moteur de recherche associé à son service de publicité. C'est sa martingale, et elle est protégée des curieux. Par contre le reste est ouvert à tous le monde et participe à une grande roue de la fortune.
Prenons l'exemple d'ANDROI, l'OS pour les smatphones et de tout se qui est portable embarqué ( gps, autoradio, grille-pain etc) . Il est basé sur Linux, les applications se développent en Java ou en C,C++. Pour créer une application pour android, il ne faut pas grand chose :
* Un IDE comme eclipse avec le plugin pour androi .
* Des librairies.
* Un émulateur de téléphone.

C'est tout , pas besoin d'un vrai téléphone. Pour mettre à disposition une application, un droit d'inscription sur la plateforme google de 25$ est réclamé une fois pour toute.
Pourquoi google , facilite l'accès à Android ?:
1er : Ce n'est pas leur cœur de métier
2eme: Le parc de portable est 4 à 5 fois celui des PC
3eme: Il vont pourvoir drainer les recherches vers leur site.

Ainsi Google mis en marche le concept 'moins cher que gratuit'. Un fabriquant qui veut lancer un nouvel appareil, se verra aidé par google , pour lui le cout 'logiciel' sera négatif. Chaque GPS fonctionnant avec Android , rémunérera indirectement Google à chaque recherche de "Restaurants, Hotels et autres". Google se paiera sur la publicité et la vente d'affichage dans la géolocalisation.

La nombre d'application sous android est d'environ 15.000 contre 100.000 sous iphone. Malgré cet écart, Iphone va perdre la guerre pour une raison bien simple: Son voisin vend la même chose moins cher et arrive à payer les factures. Et en plus Android travaille mieux qu'Iphone, il est multitache. Par le mécanisme de intentions, il est possible de faire communiquer des applications entres elles.

La déferlante d'application pour Android arrive. D'autant qu'un élément va accélérer le processus : le marché toujours juteux des logiciels pour adultes (bref le X) sur smartphone. Apple a d'ailleurs (et c'est une première) autorisé Playboy à lancer une application sur Iphone.

Ainsi Android va bénéficier d'un coup de main inattendu pour tourner la roue de la fortune de google:



Mais google ne pousse pas vraiment à développer un parc d'applications 'autonomes' pour Android. En effet, la fragmentation des supports (avec ou sans clavier,tactile ou non etc) plaide pour un modèle client serveur. L'application sur l'Android ne servirait que de lanceur pour une application hébergée sur App-engine de Google , la boucle est bouclée , la roue peut tourner.


Par comparaison une infographie sur 'filon' Iphone: