JQuery pour le Mobile

JQuery, dont nous avons parlé dans un article précédent, est bien installé dans les développements Web. Fort d’une utilisation très répandue, une déclinaison de la librairie prend le pari de proposer une approche Web pour les terminaux mobiles, en partant du constat que la norme HTML5 permettra de couvrir une majorité des problématiques adressées par les applications (géolocalisation, cache local, mode déconnecté, graphisme).

Reposant sur des principes très proches, puisque étendant le comportement de la bibliothèque mère, JQueryMobile offre (encore à l’état alpha) une approche élégante pour créer des interfaces communes aux différentes plateformes mobiles (iPhone, Android, BlackBerry, Palm, Nokia, Windows Mobile 7).

Plus qu’une librairie, ce framework JavaScript fournit :

  • Une ergonomie harmonieuse inspirée de l’iPhone ;
  • Une grande diversité des rendus offerts (au travers de thèmes configurables) ;
  • Une gestion de l’historique ;
  • La soumission de formulaires par Ajax ;
  • Une bibliothèque de composants graphiques orientés ‘mobile’ (listes rétractables, …) ;
  • Un traitement des événements de défilement ;
  • Un mode plein-écran …

Pour une reproductibilité des rendus, JQueryMobile impose un paradigme de développement Web spécifique :

  • Une seule page HTML séparées en <div> ;
  • Affectation de rôles aux différentes <div> (page, header, content, footer,…) ;
  • Evénements JavaScript spécifiques (création de page, affichage de page).

On peut personnaliser à loisir les événements et les rendus, en restant dans l’esprit de la bibliothèque.

Exemple de code : appel de l’API Google Map lors de l’affichage de la page ‘localisation’

$(‘#localisation’).live(« pageshow », function() {

navigator.geolocation.getCurrentPosition(function(position){ initialize(position.coords.latitude,position.coords.longitude);
}

Voici quelques exemples opérationnels :

    Un affichage des articles de notre blog à partir du flux RSS

Pour cette page, on gère une mise en cache locale du flux, grâce au plugin storage de JQuery.

$.storage = new $.store();
var listeRss= $.storage.get(« listeRss »);

    Une géolocalisation et une interaction avec Google Maps

Reste ensuite à mettre à disposition les données du côté du serveur. Spring MVC, par exemple, avec les facilités offertes par la v3.0 pour construire une architecture REST, est une solution particulièrement pertinente : avec la création d’un contrôleur dédié, on envoie facilement une représentation JSON de nos objets.
Par exemple

@RequestMapping(value = « /json », method = RequestMethod.GET)
public ModelAndView list(@RequestParam(value= »filtre ») String filtre) {

List fac = Items.findAllItemsByFiltre(filtre);

//Création du JSon avec flexjson (par exemple)
……
Map modelMap = new HashMap(2);
modelMap.put(« json », json.toString());

return new ModelAndView(« jsonView », modelMap);
}

Conclusion
JQueryMobile propose une méthode pour s’abstraire de développements spécifiques, à l’heure où la multiplicité des plates-formes représente un coût difficilement acceptable. Ce constat est d’autant plus vrai que beaucoup d’application proposent des fonctionnalités simples ne faisant pas appel aux spécificités de chaque terminal.
De ce fait, le développement mobile dispose d’une alternative WEB qu’il faudra prendre en compte à l’heure de se lancer dans la création d’une nouvelle application.

Toutefois, il y aura toujours une place pour des applications dédiées à chaque plateforme, ne serait-ce que pour accéder de manière aussi large et optimisée aux ressources du terminal.



Mise en œuvre d’une GED avec le framework Symfony

Infotel a réalisé une application de GED en PHP dans le cadre d’un forfait.

Contexte :
Le client souhaite :

  • moderniser l’identité de son site ;
  • migrer vers une technologie web pérenne que ses équipes pourront prendre rapidement en charge si besoin (facilité de maintenance) ;
  • permettre l’administration du contenu du site par des non informaticiens.

Proposition d’Infotel :
Plusieurs propositions techniques étaient envisageables. Toutefois, les besoins spécifiques exprimés par le client nous ont amenés à lui proposer la mise en œuvre d’un CMS (Content Management System) au moyen du Framework PHP Symfony et d’un plugin dédié aux fonctionnalités CMS : SimpleCMS.

Facteurs de réussite du projet :

  • Respect des délais ;
  • Respect de la « philosophie » du framework Symfony via l’utilisation du plugin SimpleCMS ;
  • Transfert de compétences effectué avec succès auprès des équipes du client ;
  • Migration technique au sein du SI du client (interfaçages SOAP via PHP avec d’autres applications).


Les portails JEE

La réalisation d’un applicatif web JEE est une opération souvent coûteuse et relativement complexe où s’articulent différents frameworks aux versions variées et dont la combinaison peut être source de nombreuses difficultés.

Ainsi, Infotel a réalisé de nombreuses applications web à base de frameworks JEE connus et réputés pour leur fiabilité tels que Struts 1 et 2, JSF, Spring, Hibernate…

Toutefois, mêmes s’ils possèdent une importante communauté et bénéficient d’un capital confiance significatif (et parfaitement justifié), ils ne constituent pas la seule possibilité pour la mise en œuvre d’un applicatif web.

En effet, les portails JEE peuvent représenter une alternative séduisante suivant les contextes. Ces portails se présentent sous la forme d’une application web procurant « nativement » un certain nombre de fonctionnalités : page d’accueil, habilitations, création et organisation des pages, gestion de contenu, accés au LDAP… Mais l’intérêt principal de ces portails réside en leur capacité à « accueillir » des (mini) applications appelées portlets. Il est ainsi possible d’augmenter les fonctionnalités offertes par un portail en intégrant des portlets au sein des pages du portail.

La définition (et le développement) de ces portlets respecte un certain nombre de normes. En effet, soucieux de rationaliser les portails basés sur des architectures JEE, Sun a publié les normes JSR-168 et JSR-286. Ainsi, théoriquement, un portlet développé en respectant les normes Sun peut fonctionner sur tous les portails JEE s’y conformant.

Toutefois, malgré ces avantages, il est important de préciser que la prise de connaissance sur ces portails représente une charge potentiellement significative et les gains apportés par les fonctionnalités natives déjà présentes peuvent être rapidement absorbés par les éventuelles adaptations à opérer au sein du portail. Et ce, particulièrement lorsque le besoin exprimé s’éloigne des standards proposés par les portails.

Dans le cadre de plusieurs études internes, Infotel a mis en œuvre le portail Liferay. Sorti en 2000, il offre des fonctionnalités et des possibilités de « customisations » séduisantes. Sa prise en main est relativement aisée même si une personnalisation avancée requiert une bonne connaissance de l’outil.

Ses qualités en font un choix particulièrement pertinent pour des applicatif web de rédaction et diffusion d’information.



Forfait – CMS eZPublish

Pour l’un de ses clients, Infotel vient de réaliser un projet au forfait.
L’objectif était de migrer un site existant fonctionnant sous une technologie propriétaire vers un site PHP/MySQL.

Contraintes du projet :

  • Migration Iso fonctionnelle ;
  • Conservation de la charte graphique de l’existant ;
  • Mise à disposition d’une interface d’administration du contenu utilisable par différents profils (dont des non informaticiens) ;
  • Technologie imposée par le client : plateforme ezPublish.

Facteurs de réussite du projet :

  • Respect des délais ;
  • Développement de nouveaux plugins pour ezPublish afin de répondre au besoin du client ;
  • Un besoin claire et complet ;
  • Un trés bon niveau d’échange avec un client impliqué ;
  • Un taux d’anomalies trés faible.