Java sur iPhone – Utopie ou réalité ?

A lire : Le but de cet article est de présenter brièvement tous les moyens possibles de faire du Java sur iPhone, avec leurs avantages et inconvénients. J’aimerais le faire évoluer assez régulièrement, grâce à vos commentaire et remarques. Si vous avez de nouvelles informations, ou que vous connaissez des solutions non citées, merci de m’en avertir.

Vous êtes certainement au courant que Steve Jobs a d’ores et déjà annoncé que Java ne serait jamais nativement présent sur iPhone, iPod, & Cie, son principal argument étant – et je vous conseille de vous asseoir pour lire la suite – que “plus personne n’utilise Java”. C’est décidé, après avoir écrit cet article, je me reconvertis dans l’Objective C ! Ce cher Steve a décidement beaucoup d’humour.

Ne tournons pas autour du pot pendant des heures. Oui ! Il est quand même possible de faire du java sur iPhone. Quoi ? Vous le saviez déjà ? Ah… Ok, mais connaissez-vous les solutions suivantes ?

Une machine virtuelle sur Iphone : JamVM

Si vous voulez faire tourner nativement du java sur votre iPhone, il existe un moyen d’installer une machine virtuelle directement sur votre iPhone, et ainsi faire tourner quelques application Java. Malheureusement, il n’est possible d’installer JamVM que sur un iPhone Jailbreaké. Je ne parlerai donc pas dans cet article de la manière de l’obtenir, ni de l’utiliser.

Points positifs

  • Permet de développer ses applications Java
  • Très léger (environ 200ko)
  • Supporte la totalité de la spécification Java (Blue Book)

Points négatifs

  • Besoin de Jailbreaker son iPhone

iPFaces : Des servlets et JSP sur iPhone… pour applications riches

iPFaces est un framework vous permettant de développer vos applications iPhone en Java. Le principe est simple : il s’agit simplement d’une application client/server. Coté server, vous développez une simple application JEE en utilisant les taglibs iPFaces dans vos JSP. Coté client (sur votre iPhone), l’application iPFaces Client transforme le flux envoyé par votre server en interface graphique native à l’iPhone. Ce système permet donc de développer des applications riches… avec du Java EE !

Points positifs

  • Permet de développer des applications Java au rendu graphique natif à l’iPhone
  • Très simple d’utilisation
  • Permet un découplage totale de la technologie mobile (on développe en Java EE, pas en Java ME)
  • Support de Spring, Hibernate, Struts, etc. (La seule restriction étant d’utiliser un set bien défini de taglibs dans les JSP, le reste du traitement métier peut se faire avec n’importe quel framework).

Points négatifs

  • Une application cliente générique à installer sur l’iPhone. On ne peut donc faire fonctionner qu’une seule application iPFaces à la fois. Pour changer d’application, il faut que l’utilisateur reconfigure lui-même sur application cliente pour lui dire des se connecter à une autre adresse web.
  • Un server web (conteneur de servlet au minimum) est requis, alors qu’une application équivalente développée en Objective C n’en aurait pas besoin.

Liens utiles et interéssants :

Un convertisseur Java –> Objective C : XmlVm

Dans une autre catégorie, on trouve les convertisseurs Java –> Objective C. XmlVm vous permettra d’écrire une application Java standard, qui sera intégralement transformée en Objective C, et donc exécutée nativement sur votre iPhone. Le principe est simple : XmlVm lit le byte code de votre application Java, et le transforme en XML. A partir de là, le XML étant lisible par n’importe quel language, il est possible de re-créer un code source en Objectif C. Vous pouvez donc même porter une application androïd sur votre iPhone !

Mais XmlVm ne s’arrête pas là. Il est aussi possible de développer en .NET ou Ruby, et de convertir votre code en C++ ou Python.

Points positifs

  • Développement directement en Java
  • Application finale native à l’iPhone (car générée en Objective C)
  • Emulateur fourni dans l’application, vous permettant de tester très rapidement votre code
  • Logiciel libre

Points négatifs

  • Bien qu’assez puissant, XmlVm éprouve des difficultés pour transformer certains codes. Ce n’est donc pas encore recommandé pour une utilisation commerciale

Liens utiles et interéssants :

  • Site officiel XmlVm (en anglais). Vous y trouverez aussi la vidéo de présentation, en anglais également.

Un autre convertisseur Java –> Objective C : iSpectrum

iSpectrum permet lui aussi de passer facilement du Java à l’Objective C et semblent un peu plus avancés que leur concurent, car ils permettent maintenant de créer des applications en 3D. Cependant, iSpectrum requiert Mac OS X et Xcode, car il se base sur le SDK Apple pour iPhone.

iSpectrum est utilisable sous forme de plug-in Eclipse.

Points positifs

  • Développement direct en Java via Eclipse
  • Application finale native à l’iPhone (car générée en Objective C)
  • Emulateur fourni dans l’application, vous permettant de tester très rapidement votre code

Points négatifs

  • Payant
  • Requiert Mac OS X
  • Seul un plug-in pour Eclipse existe. Il n’est donc pas possibe de se servir d’iSpectrum avec NetBeans ou bien Intellij Idea

Liens utiles et interéssants :

J2ME sur iPhone : alcheMo for iPhone

alcheMo est une suite de logiciels permettant de développer sur plusieurs environnement différents. alcheMo for iPhone permet de transformer vos applications J2ME en applications iPhone. La majorité des JSR pour mobiles sont supportées.

Points positifs

  • Développement direct en Java
  • Possibilité de porter vos anciennes application J2ME sur iPhone
  • Possède un débugguer et un émulateur intègré

Points négatifs

  • A priori très peu documenté
  • Support simplement les application J2ME

Liens utiles et interéssants :

N’hésitez pas à me laisser vos remarques sur ces solutions, que je puisse améliorer cet article régulièrement.

Tweet about this on TwitterShare on FacebookGoogle+Share on LinkedIn

3 réflexions au sujet de « Java sur iPhone – Utopie ou réalité ? »

  1. Bonjour,

    Sympa comme article car je ne connaissais pas les convertisseurs java -> ObjectiveC. Cela m’aurait peut etre evité de passer quelques weekends et soirée à apprendre ce f… langage. Je veux dire ce fameux langage qu’est ObjectiveC. Je ne suis pas là pour faire de la pub pour ce langage mais je pense que beaucoup de java-istes devraient le regarder pour ne pas oublier que la gestion de la mémoire c’est pas gratuit même dans un JVM 🙂

    Plus sérieusement c’est possible de convertir une app Android ???

    Merci beaucoup

    1.  Merci.

      Il semble effectivement qu’il soit possible de porter une application Android sous iPhone (avec pas mal de contraintes quand même, à mon avis). Il se peut que je fasse d’autres articles en creusant plus en profondeur certaines de ces solutions, pour en tester l’utilité et leurs limites.

  2. Cloud browser permet de faire du flash et du java! On l’obtient sur installous (jailbreak necessaire). En fait on passe par firefox au lieu de safari. Pour moi, le jailbreak est necessaire car beaucoup trop de choses sont bloquées avec le iphone. Si vous ne voulez pas du jailbreak, allez vers un telephone android (open source!) qui fait bien plus de choses pour moins cher. Le temps ou l’iphone etait loin devant est defenetivement revolu

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *


*