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

FAQ JavaFXConsultez toutes les FAQ

Nombre d'auteurs : 4, nombre de questions : 507, derni�re mise � jour : 2 novembre 2016  Ajouter une question

 

Cette FAQ a �t� r�alis�e � partir des questions fr�quemment pos�es sur le forum JavaFX de http://java.developpez.com ainsi que l'exp�rience personnelle des auteurs.

Nous tenons � souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne pr�tend pas non plus �tre compl�te. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant r�dacteur, lisez ceci.

Sur ce, nous vous souhaitons une bonne lecture.

SommairePlateformes embarqu�es et mobilesiOS (6)
pr�c�dent sommaire suivant
 

Note : le support de JavaFX sur iOS est encore en phase pr�liminaire et exp�rimentale. Le code pr�sent� ici peut ne pas fonctionner correctement ou demander � �tre modifi� pour s'adapter aux derni�res �volutions de RoboVM.

En fait, vous n'allez pas d�velopper directement sur un p�riph�rique tournant sur iOS : vous allez d�velopper et compiler vos applications sur votre machine de bureau ou un portable. C'est aussi sur cette machine que vous effectuerez les premiers tests pour v�rifier que votre application fonctionne.

Ensuite vous d�ploierez vos applications sur l��mulateur iOS disponible dans Xcode pour les tester et v�rifier que nous n'avez pas besoin de les alt�rer pour mieux s'adapter aux contraintes du p�riph�rique telles que son espace m�moire plus r�duit, son CPU peu puissant ou sa surface d'affichage restreinte. Il faudra �galement faire attention aux diff�rentes r�solutions d��cran disponibles en fonction des p�riph�riques cibl�s.

Si vous utilisez des senseurs disponibles sur le p�riph�rique tournant sur iOS, c'est �galement sur l��mulateur iOS que vous devez tester si votre programme peut y acc�der correctement. Par contre, vous devrez inclure les biblioth�ques n�cessaires � la compilation sur votre machine de d�veloppement. De plus, RoboVM vous permet d�acc�der � l'API Cocoa d'Apple depuis le code Java.

Mis � jour le 22 septembre 2014 bouye

Nous allons lister ici les pr�requis pour d�velopper pour iOS.

C�t� machine de d�veloppement :

  • un Mac. En effet, le d�veloppement pour iOS repose actuellement sur des outils qui ne sont disponibles que dans Xcode, or Xcode n'est officiellement disponible que sur Mac OS. Le d�veloppement en JavaFX pur peut cependant �tre effectu� sur n'importe quelle machine ou syst�me d'exploitation support� par JavaFX ;
  • la derni�re version de Xcode ;
  • un IDE permettant de d�velopper en Java ;
  • le JDK appropri� pour votre machine de d�veloppement ;
  • Apache Maven ;
  • RoboVM, un compilateur Java → code natif pour processeurs ARM et x86 ; fournit �galement une interface vers Cocoa et Objective-C.


� l'heure actuelle, l'utilisation de la syntaxe Java8 et des lambda est encore en phase pr�liminaire d�int�gration, il est donc conseill� d'utiliser la syntaxe Java7.

De plus, �tant donn� que notre but est de cr�er un programme JavaFX pur, nous n'utiliserons dans un premier temps que tr�s peu l'interface Cocoa offerte par RoboVM.

Mis � jour le 22 septembre 2014 bouye

Pour cr�er une application JavaFX pour iOS, vous devez ins�rer dans votre projet une classe similaire � la classe suivante :

  • pour les anciennes versions de RoboVM :

Code Java : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package mypackage; 
  
import javafx.application.Application; 
import org.robovm.apple.coregraphics.*; 
import org.robovm.apple.foundation.*; 
import org.robovm.apple.uikit.*; 
  
public class JFXLauncher extends UIApplicationDelegateAdapter { 
  
    @Override 
    public boolean didFinishLaunching(UIApplication application, NSDictionary launchOptions) { 
        // Lancement de notre application JavaFX dans un thread s�par�. 
        final Thread launchThread = new Thread() { 
            @Override 
            public void run() { 
                Application.launch(MyApplication.class); 
            } 
        }; 
        launchThread.setDaemon(true); 
        launchThread.start(); 
        return true; 
    } 
  
    public static void main(String[] args) throws Exception { 
        System.setProperty("glass.platform", "ios"); 
        System.setProperty("prism.text", "native"); 
        // 
        try (final NSAutoreleasePool pool = new NSAutoreleasePool()) { 
            UIApplication.main(args, null, JFXLauncher.class); 
        } 
    } 
}


  • pour les versions de RoboVM post�rieures � la version 1.0.0-alpha-04 :

Code Java : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package mypackage; 
  
import javafx.application.Application; 
import org.robovm.apple.coregraphics.*; 
import org.robovm.apple.foundation.*; 
import org.robovm.apple.uikit.*; 
  
public class JFXLauncher extends UIApplicationDelegateAdapter { 
  
    @Override 
    public boolean didFinishLaunching(UIApplication application, UIApplicationLaunchOptions launchOptions) { 
        // Lancement de notre application JavaFX dans un thread s�par�. 
        final Thread launchThread = new Thread() { 
            @Override 
            public void run() { 
                Application.launch(MyApplication.class); 
            } 
        }; 
        launchThread.setDaemon(true); 
        launchThread.start(); 
        return true; 
    } 
  
    public static void main(String[] args) throws Exception { 
        System.setProperty("glass.platform", "ios"); 
        System.setProperty("prism.text", "native"); 
        // 
        try (final NSAutoreleasePool pool = new NSAutoreleasePool()) { 
            UIApplication.main(args, null, JFXLauncher.class); 
        } 
    } 
}

Cette classe sert de point d�entr�e en tant qu'application native iOS. C'est elle qui d�marrera votre application JavaFX mypackage.MyApplication en l'invoquant dans sa m�thode didFinishLaunching(). � moins que vous ne soyez amen� � utiliser un des p�riph�riques ou une des fonctionnalit�s propres � votre plateforme cible (par exemple : l'appareil photo, le GPS, etc.), cette classe est la seule � utiliser l'interface Cocoa accessible par RoboVM ; tout le reste de votre application peut �tre en JavaFX pur.

Pour pouvoir compiler votre projet, vous avez �galement besoin de rajouter les d�pendances suivantes dans votre projet. Ces fichiers JAR se trouvent dans le r�pertoire lib de la distribution binaire de RoboVM :
  • robovm-rt.jar
  • robovm-cocoatouch.jar
  • robovm-objc.jar


Mis � jour le 27 octobre 2014 bouye

Commencez par cr�er un nouveau projet Java supportant Maven. Vous pouvez commencer � coder votre application JavaFX comme � l�accoutum�e et y inclure la classe permettant de lancer l'application d�crite ci-dessus.

�ditez ensuite votre fichier pom.xml et ins�rez les lignes suivantes dans la d�finition des plugins :

Code XML : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
11
<plugin> 
    <groupId>org.robovm</groupId> 
    <artifactId>robovm-maven-plugin</artifactId> 
    <version>1.0.0-alpha-04</version> 
     <configuration> 
        <config> 
            <mainClass>mypackage.JFXLauncher</mainClass> 
        </config> 
        <includeJFX>true</includeJFX> 
    </configuration> 
</plugin>

Ainsi que les lignes suivantes dans la gestion des d�pendances :

Code XML : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
<dependency> 
    <groupId>org.robovm</groupId> 
    <artifactId>robovm-rt</artifactId> 
    <version>1.0.0-alpha-04</version> 
</dependency> 
<dependency> 
    <groupId>org.robovm</groupId> 
    <artifactId>robovm-cocoatouch</artifactId> 
    <version>1.0.0-alpha-04</version> 
</dependency>


Mis � jour le 23 septembre 2014 bouye

V�rifiez que vous avez d�j� accept� la licence d'utilisation de Xcode en d�marrant son IU ou en essayant d'invoquer un de ses outils via la ligne de commande.

V�rifiez �galement que votre application JavaFX d�marre et fonctionne correctement.

V�rifiez que le r�pertoire bin de Maven est accessible sur le PATH.

Pour d�marrer votre application dans l��mulateur iOS, ex�cutez la ligne de commande suivante :

Code : S�lectionner tout
mvn robovm:iphone-sim

Cette commande t�l�chargera les d�pendances du programme et, lors du premier lancement, compilera RoboVM pour votre syst�me (la compilation initiale peut durer un certain temps). Dans un second temps, RoboVM recompilera le bytecode Java de votre application en code machine pour iOS avant de lancer votre application JavaFX dans l��mulateur iOS de Xcode.

Mis � jour le 23 septembre 2014 bouye

Dans Eclipse, allez dans le menu Help → Eclipse Marketplace..., puis tapez RoboVM dans le champ Find: et cliquez sur le bouton Go.

Dans la liste affichant les r�sultats de la recherche, cliquez sur le bouton Install de l'application RoboVM for Eclipse.

Dans l��cran suivant, v�rifiez que toutes les d�pendances sont coch�es avant de cliquer sur le bouton Confirm >.

Acceptez la licence d'utilisation et cliquez sur le bouton Finish pour proc�der � l�installation.

Note : bien qu'il soit possible d'installer ce plugin sur n'importe quelle version d'Eclipse, � l'heure actuelle, la compilation d'un projet cr�� avec ce plugin ne peut s'effectuer que sur Mac OS X.

Mis � jour le 27 octobre 2014 bouye

Proposer une nouvelle r�ponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plut�t sur le forum de la rubrique pour �a


R�ponse � la question

Liens sous la question
pr�c�dent sommaire suivant
 

Les sources pr�sent�es sur cette page sont libres de droits et vous pouvez les utiliser � votre convenance. Par contre, la page de pr�sentation constitue une �uvre intellectuelle prot�g�e par les droits d'auteur. Copyright � 2025 Developpez Developpez LLC. Tous droits r�serv�s Developpez LLC. Aucune reproduction, m�me partielle, ne peut �tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'� trois ans de prison et jusqu'� 300 000 � de dommages et int�r�ts.