Après trois ans de développement, EclipseSource a sorti Tabris 1.0, un framework de développement mobile multi-plateforme pour iOS et Android. Tabris vise surtout les entreprises, et a une approche différente de toute autre solution mobile :
- La majorité du développement est faite en Java
- La logique métier, incluant la représentation de l'interface graphique du client tourne côté serveur sur Eclipse RAP.
- L'application cliente qui fonctionne sur le mobile est très légère
- Le serveur communique avec le client dans un format JSON, pour envoyer des données et des directives pour la création de l'interface graphique
- Le client génère l'interface en utilisant des composants natifs
- Le client est écrit en Objective-C pour iOS et en Java pour Android
Tabris est fourni avec un Toolkit graphique basé sur l'API Java SWT. Celui-ci ajoute deux principaux widgets: Page et Action. Page contient le contenu basique d'une application alors que Action est utilisé pour écouter les actions de l'utilisateur. Dans les captures d'écran suivantes d'une application de démonstration, les widgets Page sont affichés en rouge et les widgets Action sont affichés en vert :
Les Pages peuvent êtres chainées et sont navigables, alors que les Actions peuvent être globales (pour l'application), ou locales (pour la page courante).
Après le rendu d'un composant, la partie serveur de l'application envoie un message en JSON au client, comme celui-ci, pour créer un bouton :
L'application cliente va afficher le bouton en utilisant le composant natif d'Android ou d'iOS.
InfoQ a parlé à Holger Staudacher, Team Lead de Tabris-server à EclipseSource, pour en apprendre plus sur le framework. Selon lui, Tabris cible les entreprises et requiert une connexion permanente au serveur :
Tabris est fait pour les applications mobiles 'On-Site'. Cela veut dire qu'il fonctionne au mieux dans un environnement contrôlé. Par contrôlé j'entends une connexion réseau fixe. Nous avons des clients comme par exemple un hôpital où tous les appareils sont connectés au même réseau. Habituellement, de telles applications sont développées directement par les entreprises.
Tabris ne fonctionne pas hors-ligne. L'interface graphique mobile correspond à une session. Ainsi, si l'appareil de l'utilisateur perd sa connexion, la session devient invalide. Il est possible de gérer les erreurs sur les mobiles clients. Nous avons implémenté un gestionnaire d'erreur basique qui permet de réessayer l'envoi de requêtes http, etc. Celui-ci peut être étendu par les développeurs avec des extensions natives.
Lorsque nous avons demandé s'il est possible d'utiliser Tabris pour développer des applications pour le grand public, Staudacher nous a répondu que théoriquement c'est possible mais que ce n'est pas sa meilleure utilisation :
Une application grand public implique une charge très importante pour le serveur. Nous utilisons le standard Java EE, ce qui veut dire que pour répondre à une telle charge vous pouvez utiliser les mécanismes de clustering de Java EE. Ce n'est pas testé avec des millions d'utilisateurs, mais d'un point de vue technique cela devrait être faisable ;)
Tabris supporte plusieurs composants SWT et ajoute le support de plusieurs capteurs natifs comme l'appareil photo et la géolocalisation. Pour l'instant, les tablettes sont supportées mais une application n'affiche qu'une page à la fois. Le support pour de multiples pages sera ajouté dans le futur. Tabris peut également être étendu à d'autres plateformes mobiles, et Windows sera certainement supporté si le framework se révèle convaincant. Dans un futur proche, l'équipe de Tabris a l'intention d'ajouter les fonctionnalités suivantes :
- Support du carnet de contacts
- Support de l'orientation
- Support de script client pour gérer les événements
- Support des XCallbackUrl
D'après la FAQ, les applications créées avec Tabris peuvent être déployées sur l'App Store "tant que vous respectez les règles de l'App Store". Une application de démo pour Android peut être trouvée sur Google Play. Tabris n'est pas open-source mais les personnes travaillant en entreprise bénéficiant d'une licence peuvent demander accès au code source. Vous pourrez trouver plus de détails sur la page des tarifs d'EclipseSource.