Actualités

[22/05/2017] Des Smiliens récompensés lors du Hackathon Carrefour !

Notre équipe, composée en partie de Smiliens, a remporté le Prix du Code et celui de l'Incubation lors du Hackathon Carrefour, organisé ce week-end à Paris !

[18/05/2017] OpenShift, le nouveau livre blanc Smile !

Smile publie aujourd'hui un livre blanc dédié à OpenShift, le PaaS open source orienté DevOps. A télécharger dès maintenant !

[15/05/2017] Smile décroche le label HappyAtWork 2017 !

Pour la 2ème année consécutive, Smile obtient le label HappyAtWork for Starters qui récompense les entreprises où il fait bon débuter sa carrière !

Toutes les actualités picto
       

Vous avez besoin de mettre à jour votre Lecteur Flash Flash 7

Guillemet ouvrant l'actualité des solutions
et des technologies open source Guillemet fermant
picto

Pivot, la réponse de Apache à JavaFX

Apache Pivot est un framework Java de RIA (Rich Internet Application ou application Internet riche) qui permet de développer des composants offrant des caractéristiques similaires aux logiciels installés sur le poste client dans une page Web. Apache Pivot se présente donc comme une alternative Java aux projets tels Adobe Flex ou Microsoft Silverlight. Apache Pivot reprend comme base le mécanisme des applets. Les applications Apache Pivot peuvent aussi être lancées en « stand-alone »

Depuis décembre 2009, Pivot fait partie des « Top Level Project » de la fondation Apache et a quitté l'incubateur. A ce jour, la dernière version stable d'Apache Pivot est la version 1.4.

Une application Apache Pivot peut à la fois être lancée sous forme d'applet (depuis un navigateur) ou sous forme d'application autonome. Le développement d'une telle application ne nécessite que 2 connaissances :

  • Java
  • XML

Pivot inclut des fonctionnalités permettant de développer des applications graphiques simplement, comme le permet Flex ou encore Silverlight à savoir :

  • composants graphiques
  • effets, transitions
  • intégration avec des web-services
  • intégration des JSON REST Services
  • databinding
  • graphiques (JFreeChart)

Il est possible d'utiliser Maven pour le développement d'application Apache Pivot via le plugin maven-compiler-plugin pour la compilation et le plugin maven-assembly-plugin pour la génération de l'applet.

Voici à quoi pourrait ressembler un HelloWorld en Pivot.

La partie Java :

package fr.smile.blog.pivot;
 
import org.apache.pivot.collections.Map;
import org.apache.pivot.wtk.Application;
import org.apache.pivot.wtk.DesktopApplicationContext;
import org.apache.pivot.wtk.Display;
import org.apache.pivot.wtk.Window;
import org.apache.pivot.wtkx.WTKXSerializer;
 
public class HelloWorld implements Application {
    private Window window = null;
 
    @Override
    public void startup(Display display, Map<String, String> properties) throws Exception {
        WTKXSerializer wtkxSerializer = new WTKXSerializer();
        window = (Window)wtkxSerializer.readObject(this, "hello.wtkx");
        window.open(display);
    }
 
    @Override
    public boolean shutdown(boolean optional) {
        if (window != null) {
            window.close();
        }
 
        return false;
    }
 
    @Override
    public void suspend() {
    }
 
    @Override
    public void resume() {
    }
 
    public static void main(String[] args) {
        DesktopApplicationContext.main(HelloWorld.class, args);
    }
}

La partie XML :

<Window title="Hello WTKX!" maximized="true" xmlns:wtkx="http://pivot.apache.org/wtkx" xmlns="org.apache.pivot.wtk">
    <content>
        <Label text="Hello World!" styles="{font:'Arial bold 24', color:'#ff0000', horizontalAlignment:'center', verticalAlignment:'center'}"/>
    </content>
</Window>

On pourrait se demander où se positionne Apache Pivot par rapport à JavaFX. L'un et l'autre répondent à des besoins similaires mais ont une approche technique différente. Les développeurs écrivent sur la FAQ du site : « Pivot represents what we think Sun should have done instead of JavaFX ».

L'avantage de Pivot VS JavaFX :

  • le code est en Java
  • l'interface graphique peut-être définie via du XML

Apache Pivot peut aussi être comparé à GWT. Même si GWT possède des avantages, il peut souffrir dans certains cas d'inconvénients comme :

  • GWT génère du code voué à être exécuté par un navigateur (Javascript) et non du bytecode
  • les bibliothèques Java disponibles dans GWT sont celles qui ont étés développées par Google. Pas de support Java6 actuellement par exemple
  • une grosse phase de compilation pour générer le code Javascript

Sur le site du projet, un gros travail a été effectué sur la documentation des différents composants disponibles. Le développeur peut donc facilement choisir et intégrer le composant voulu.

Le projet étant encore relativement jeune, il n'existe pas de plugin Eclipse pour designer l'interface. Mais à la manière de Flash Builder, il est envisageable de voir arriver prochainement une extension pour Eclipse permettant d'aider le développeur dans la réalisation de l'IHM.

Actuellement, dans le monde Java, les frameworks principaux pour développer une RIA sont :

  • GWT
  • JavaFX

A ceux-ci, on peut ajouter Flex qui permet une interopérabilité avec des langages comme Java, PHP, .NET.

Apache Pivot se présente comme une alternative à ces 3 frameworks en essayant de tirer parti des qualités de chacun. Ce framework est donc à surveiller dans les mois à venir surtout avec l'arrivée des prochaines versions de Java qui nous promettent un démarrage de la JVM beaucoup plus rapide. Le temps d'initialisation de l'applet sera réduit et l'expérience utilisateur améliorée.

Aurélien Loth
picto

Commentaires

Soyez la premiere personne à ajouter un commentaire sur cet article.
Ecrire un nouveau commentaire