Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

RoboVM disponible en version stable
Et permet de développer en Java des applications Android et iOS

Le , par Olivier Famien

43PARTAGES

2  0 
Depuis que le kit de développement JavaFX est passé en format open source, plusieurs projets ont vu le jour. De ce nombre, nous avons RoboVM qui a été initié par l’entreprise Trillian Mobile depuis 2013 afin de créer des applications Java natives fonctionnant sous iOS et bien évidemment Android.

Après avoir traversé plusieurs phases, RoboVM vient de passer un cap très important dans son cycle de développement avec la sortie de la version finale 1.0. À partir de cette étape, toutes les fonctionnalités du produit sont disponibles et utilisables en production sans risques majeurs de bogues.

Il faut relever que RoboVM est une machine virtuelle compilant les bytecodes Java en codes natifs afin de les faire fonctionner sur les différentes plateformes Android et iOS. Pour les projets visant la plateforme iOS, les développeurs n’ont plus besoin d’apprendre Objective C ou Swift, car le compilateur se charge de transformer le code java en code natif compatible iOS.

En outre, nous soulignons que RoboVM ne se préoccupe pas du langage Java à partir duquel le code est écrit. Qu’il soit écrit en Java, Scala, Groovy, Kotlin, Clojure ou n’importe quel autre langage, RoboVM accepte le bytecode généré pourvu qu’il soit compatible avec le compilateur JVM.

Pour obtenir l’exécutable, RoboVM va donc analyser le bytecode reçu en utilisant le framework Soot et le transformer en code intermédiaire 3AC appelé Jimple. Après avoir effectué plusieurs optimisations sur Jimple, une transformation sera appliquée afin que le code obtenu soit compatible avec les caractéristiques de Java 8 et la passerelle de RoboVM appelée Bro. Ce dernier facilite l’interface entre les langages C et Objective C à partir de Java. Enfin, le code Jimple modifié est traduit dans un langage de bas niveau similaire au langage assembleur appelé LLVM IR qui finalement permettra de compiler un fichier pour les architectures ARM et x86.

Il faut également préciser que RoboVM n’utilise pas de compilateur Just-in-Time (JIT), mais AOT (Ahead of time) qui est une exigence de la plateforme iOS, de même qu’un ordinateur Mac pour compilation des applications iOS. Pour mieux comprendre le processus complet de compilation, on peut se référer à schéma suivant.


RoboVM fonctionne parfaitement avec les IDE Eclipse et Intellij et les outils tels que Maven, Gradle, JUnit. Son noyau est gratuit et permet de creér les applications sans limites. Son code source est disponible en open source. Cependant, pour bénéficier de certaines facilités du support technique, vous devez avoir recours à une licence commerciale.

Par ailleurs, une réduction de 50 % est accordée à ceux qui ont testé les versions bêta et qui aujourd’hui désirent acquérir les licences annuelles pour les versions solo et startup.

Nous souhaitons une bonne arrivée à cet outil et espérons qu’il trouvera sa place dans le monde très concurrentiel des outils multi-plateforme.

Source : Blog RoboVM

Télécharger le code source

Et vous ?

Que pensez-vous de ce compilateur multiplate-forme ?

L’avez-vous déjà testée ? Quel commentaire pouvez-vous en faire ?

Pensez-vous qu’il pourra se faire un nom face aux autres outils déjà présents sur le marché ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de aoo06
Membre à l'essai https://www.developpez.com
Le 19/03/2015 à 8:48
ou je sais plus lire? En voulant télécharger la version FREE, un des pré-requis est d'avoir un Mac...
Pour un outil en Java qui vise plusieurs plateformes, je trouve ça un comble...
Je passe mon tour
1  0 
Avatar de fr1man
Expert confirmé https://www.developpez.com
Le 19/03/2015 à 9:41
Si tu veux du natif, c'est la contrainte.

Même si je trouve le travail louable, je n'en vois pas trop l'intérêt.
L'API a l'air calquée sur celle d'Apple. Si c'est pour ne viser que la plateforme iOS, autant apprendre Objective C ou Swift, ce n'est pas le plus compliqué.
J'ai cru comprendre qu'ils visaient aussi Android, mais est-ce disponible, je n'ai pas l'impression.
1  0 
Avatar de 36942
Membre du Club https://www.developpez.com
Le 19/03/2015 à 10:17
L'intérêt?

RoboVM est par exemple utilisé par LibGDX, framework Java de jeux vidéos multiplateformes. LibGDX permet de sortir un livrable sous la forme d'un Jar pour les desktops, d'une application Android, d'une application web via GWT et d'une application iOS grâce à RoboVM. Un seul langage, un tas de plateformes!

Pour une application standard, embarquer de l'HTML5 permet d'avoir le même résultat, mais c'est pas forcément adapté à tous les cas. Pour beaucoup de jeux les perfs seraient trop faibles.
1  0 
Avatar de bouye
Rédacteur/Modérateur https://www.developpez.com
Le 19/03/2015 à 11:41
Le fait que ça réclame un Mac n'est en rien lié à Java. C'est lié au fait que RoboVM nécessite Xcode (le SDK fourni par Apple pour compiler des apps pour MacOS et iOS) pour pouvoir compiler des choses pour iOS (et à l'origine RoboVM ne supportait que iOS et pas Android). Or Xcode n'est dispo que sur Mac. Et pis c'est tout. S'il faut se plaindre auprès de quelqu'un c'est auprès d'Apple, pas d'Oracle, ni de RoboVM.

Par contre aucune idée si la compilation pour Android fonctionne aussi sur d'autres plateformes ou pas.

Pour le reste pour compiler pour du Java iOS depuis windows, vous avez la solution CodenameOne qui repose sur une compilation Cloud (la compilation se fait sur les Mac chez CodenameOne). En mode gratuit vous avez 5 compilations par mois (vous avez 100 crédit de compilation mais une compilation iOS en consomme 20 - contre 1 pour les autres OS - car ça coûte cher d'avoir des Mac) donc en général vous testerez votre code localement sur votre ordi dans le simulateur fourni avec les outils de CodenameOne et vous ne l’enverrez sur le Cloud pour la compilation finale que quand vous êtes sur que tout fonctionne sur le simulateur.
1  0 
Avatar de philou44300
Membre habitué https://www.developpez.com
Le 19/03/2015 à 11:56
Cela m'intéresse mais selon sa difficulté de prise en mains, un petit tutoriel serait bien pour les novices vous ne pensez pas?
1  0 
Avatar de tchize_
Expert éminent sénior https://www.developpez.com
Le 21/03/2015 à 12:14
C'est marrant, c'est qu'il y a 5 ou 6 ans, j'ai vu passer sur DVP le même genre de projet: cross compilation multi device mobile, ca s'appelait code name one. A la différence qu'on n'avait pas besoin d'avoir un mac, ils avaient eu le bon gout de fournir un service distant dans une ferme où ton code était balancé pour être compilé. Parce qu'exiger de dev sur un mac pour faire la version IOS c'est bien, mais ça va galérer le jour ou faudra être cross compatible ios / windows mobile

Et puis entre aller payer un mac à 1000$ pour faire du dev ou payer 10$ / mois pour avoir un serveur de compilation.....
1  0 
Avatar de Traroth2
Membre chevronné https://www.developpez.com
Le 18/04/2016 à 10:35
On attendait ça d'un jour à l'autre depuis le rachat de Xamarin par Microsoft. Voire depuis le rachat de RoboVM par Xamarin, si on est mauvaise langue...
0  0 
Avatar de epsilon68
Membre éprouvé https://www.developpez.com
Le 18/04/2016 à 12:36
RobotVM avait l'air intéressant, heureusement que je n'ai pas plus dépensé de temps dans cet outil.
Je me demande finalement sur quels outils / quelles librairies on peut encore se lier pour faire nos applications (long terme).
0  0 
Avatar de Traroth2
Membre chevronné https://www.developpez.com
Le 18/04/2016 à 15:51
Le fork de la dernière version open-source : http://bugvm.com/
0  0 
Avatar de Salathiel Genese
Membre à l'essai https://www.developpez.com
Le 21/04/2016 à 18:16
Microsoft phagocyte tout ce qui peut être une menace pour eux!
Ils reconnaissent les patterns qui ont été les leurs: mais qui apportent des correcctifs up to date...

C'est le monopole qu'ils veulent - toutefois, le grand mur les attend de pied ferme
0  0