IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

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 !

Grâce à RoboVM, coder en Java devient possible pour iOS,
Le projet annonce la sortie de la version 0.0.14

Le , par Arsene Newman

83PARTAGES

6  0 
Vous avez envie de créer une application destinée à la plateforme iOS ? Mais vous ne souhaitez pas apprendre Objective C ou Swift, le nouveau langage développé par Apple.

Avec la sortie de la version 0.0.14 de RoboVM, ce genre de dilemme n'en sera plus un, le projet open-source RoboVM semble atteindre une certaine maturité pour offrir une alternative viable aux langages Objective C et Swift pour la plateforme iOS.

En effet le projet RoboVM offre la possibilité aux développeurs de créer des applications pour iOS avec le langage Java ou tout autre langage de programmation compatible avec la JVM.

Pour ce faire RoboVM repose sur l'utilisation d'une passerelle entre Java et Objective-C, ce qui permet d'appeler le framework iOS et les API natives depuis Java, en toute simplicité.

Toutefois, il existe à l'heure actuelle quelques inconvénients. Il est nécessaire de disposer d'un mac et de Xcode pour utiliser RoboVM, une restriction dûe à l’impossibilité d’exécuter le code compilé sous environnement réel ou simulé en dehors de l'architecture Mac, alors que sa compilation se fait sans aucune contrainte.

Outre l'annonce de sortie de RoboVM, les membres du projet révèlent que leur outil fait appel aux runtimes d'Android KitKat 4.4.3, à Xcode 6 beta2 et à iOS 8 Beta. Cette nouvelle version inclut aussi certains changements mineurs pour le support des nouveaux Cocoa Touch frameworks.

Au final, RoboVM augure peut être un futur plus coloré et plus varié en matière de langages informatiques sur la plate-forme iOS, de quoi réjouir plus d'un.

Consulter le code source de RoboVM

Source : Annonce de RoboVM

Et vous ?
Qu’en pensez-vous ?

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

Avatar de Mickael Baron
Rédacteur https://www.developpez.com
Le 04/07/2014 à 14:47
Étrange le nom quand même. Au début, je pensais à un SDK pour programmer sur tous les types de robots du marché ;-)

Mickael
2  0 
Avatar de adiGuba
Expert éminent sénior https://www.developpez.com
Le 04/07/2014 à 16:12
Salut,

Citation Envoyé par tchize_ Voir le message
Les machines virtuelles n'étaient pas interdites sur le store d'apple?
Il me semble que oui... mais d'après le site www.robovm.org et contrairement à son nom, ce n'est pas une JVM mais un compilateur natif.

a++
2  0 
Avatar de Aurelien Plazzotta
Membre extrêmement actif https://www.developpez.com
Le 04/07/2014 à 15:26
C'est un gros pied à Apple

Plus sérieusement, c'est une bonne nouvelle pour les développeurs Java qui génèrent de l'argent en créant des applications mobiles sous Android. Ils pourront désormais impacter un plus large segment de clientèle (possésseurs de Iphone) et augmenter leur chiffre d'affaires.

Bien sûr, je fais abstraction du modèle économique de la susdite application, quelle soit payante ou financée par la publicité.

EDIT:
Attention d'ailleurs à adapter son modèle économique en basculant sous un nouveau système d'exploitation embarqué car il semble notamment que les utilisateurs Apple soit plus enclins à consommer des applications payantes :

En 2013, 55% des applications mobiles à succès sont payantes sous iOS tandis que 41% des applis Android sont financées par la publicité.

Source :
Sixième page du diaporama, première ligne du tableau.
[ATTACH]150396d1/a/a/a" /> (document diffusé en 2013 par app-promo.com)

EDIT 2 pour tchize_ :
Dans ce cas, qu'est-ce qui empêche Google de vendre les applications écrites en Java avec roboVM pour les utilisateurs iOS sur Google Play et s'accaparer une partie du business d'Apple ?
1  0 
Avatar de tchize_
Expert éminent sénior https://www.developpez.com
Le 04/07/2014 à 15:30
Les machines virtuelles n'étaient pas interdites sur le store d'apple?
1  0 
Avatar de Sirus64
Membre éclairé https://www.developpez.com
Le 04/07/2014 à 16:12
Ce n'est pas la seule facon de ne pas faire de l'Objective-C / Swift (qui au passage parait très prometteur après la lecture de sa doc). Pour faire du natif, il y a aussi Xamarin (C#). Sans lancer de troll, C# et Java ne sont pas très loin. Après c'est sur que Xamarin n'est pas gratuit.....
1  0 
Avatar de tchize_
Expert éminent sénior https://www.developpez.com
Le 04/07/2014 à 16:18
Citation Envoyé par adiGuba Voir le message
Salut,

Il me semble que oui... mais d'après le site www.robovm.org et contrairement à son nom, ce n'est pas une JVM mais un compilateur natif.

a++
Mais apple n'a pas non plus réputation de faire dans la dentelle quand il s'agit de mettre hors du store. J'y réfléchirais à 2 fois avant de viser ce genre d'outils.
1  0 
Avatar de Gugelhupf
Modérateur https://www.developpez.com
Le 04/07/2014 à 17:02
En tout cas si RoboVM n'est pas une VM, le nom est trompeur.
Donc si je comprend bien, tout comme Swift, RoboVM n'utilise pas de VM avec GC, mais utilise un système de type "ARC" (Automatic Reference Counting) ?

PS : Le numéro de version de RoboVM ne colle pas trop avec le terme "maturité"
1  0 
Avatar de Cyäegha
Membre régulier https://www.developpez.com
Le 05/07/2014 à 13:43
Citation Envoyé par Gugelhupf Voir le message
En tout cas si RoboVM n'est pas une VM, le nom est trompeur.
Donc si je comprend bien, tout comme Swift, RoboVM n'utilise pas de VM avec GC, mais utilise un système de type "ARC" (Automatic Reference Counting) ?
D'après ce post, RoboVM utilise un type de garbage collector appelé Boehm-Demers-Weiser (ou bien juste Boehm GC), du nom de ses auteurs, donc c'est bine un GC.

Sinon, deux remarques :
- L'utilisation ou non d'un GC n'est pas directement lié au fait de tourner dans une VM ou de compiler en langage machine. Par exemple, Objective-C 2.0 avait introduit un GC (même si Apple a ensuite choisit de privilégier l'utilisation de l'ARC) et le Boehm GC utilisé par RoboVM a à l'origine été créé pour les langages C/C++. A l'opposé, on pourrait tout à fait imaginer une VM dans laquelle on puisse gérer manuellement la mémoire (même si je doute que ça serait très utile).
- Je ne pense pas qu'on puisse implémenter une plateforme Java (que ce soit une VM ou un compilateur vers du langage machine) sans GC - pour autant que je sache, l'existence d'un GC fait partie des spécifications de Java.
1  0 
Avatar de bouye
Rédacteur/Modérateur https://www.developpez.com
Le 07/07/2014 à 13:17
J'vois pas du tout où est le soucis avec le fait d'avoir une VM sur iOS :

Citation Envoyé par iOS Developer Program License Agreement
3.3.2 An Application may not download or install executable code. Interpreted code may only be used in an Application if all scripts, code and interpreters are packaged in the Application and not downloaded. The only exception to the foregoing is scripts and code downloaded and run by Apple's built-in WebKit framework.
Ce qui est interdit, c'est de télécharger du code qui modifie l'application. Du code sous forme de script peut être utilisé si packagé d'origine dans l'application.
1  0 
Avatar de adiGuba
Expert éminent sénior https://www.developpez.com
Le 07/07/2014 à 13:40
Citation Envoyé par bouye Voir le message
Ce qui est interdit, c'est de télécharger du code qui modifie l'application. Du code sous forme de script peut être utilisé si packagé d'origine dans l'application.
Cela a peut-être changé (et même sûrement sinon RoboVM ne pourrait pas exister).
Mais à une époque il était clairement indiqué que les interpréteurs ou autre VM étaient strictement interdit, et qu'on ne pouvait utiliser que certains langages de programmation (comme Objective-C ou JavaScript dans leurs WebKit).

a++
1  0