Actualités

[08/12/2014] Lancement du « Symfony Expertise Center » by SensioLabs and Smile

SensioLabs, éditeur du framework open source Symfony et Smile annoncent un partenariat exclusif et créent le « Symfony Expertise Center » pour répondre aux demandes d'expertise sur Symfony.

[04/12/2014] Smile Maroc participe aux Assises de l'AUSIM, le rendez-vous des DSI au Maroc

Smile Maroc est partenaire de l’événement « Les Assises de l'AUSIM », sous le thème de la "Transformation digitale" à Marrakech du 03 au 05 décembre 2014.

[24/11/2014] De nouveaux locaux pour Smile Lille, Lyon et Marseille !

Trois agences de Smile ont déménagé ces deux dernières semaines. De nouveaux locaux plus spacieux ont été investit pour accompagner la croissance et le développement de ces agences Lilloise, Lyonnaise et Marseillaise.

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

       
Xavier
"L'avantage de Pivot VS JavaFX :
* le code est en Java
* l'interface graphique peut-être définie via du XML"
Avec JavaFxle code métier peut également être écrit en java "pure" si tel est le souhait du développeur. Néanmoins, Javafx apporte la possibilité de programmer avec des blocks (closure, lamba fonction, ...) comme en Groovy, Javascript, Smalltalk, ..., et offre un databinding archisimple.
Le fait sinon d'ecrire de manière déclarative une ihm en xml n'estpas pour moi un avantage, loin de là. Javafx offre une syntaxe à la json tres agreable à utiliser et intimement liée au reste du langage.
mercredi 07 avril 2010 @ 21:30
       

       
Pivot est aussi un projet du LiveLabs Microsoft : http://www.getpivot.com/
mardi 27 avril 2010 @ 8:30
       
Ecrire un nouveau commentaire