Web

Web

Mobl: Un DSL pour sites web mobiles

Mobl: Un DSL pour sites web mobiles

Un article intéressant sorti cette semaine sur InfoQ présente un DSL (Domain Specific Language) spécialement adapté pour le développement de sites mobiles.

Mobl est un langage compilé et typé statiquement, il est prévu pour être utilisé travers un plugin Eclipse. Le plugin propose la coloration syntaxique, l’affichage d’erreurs, la résolution de références et la complétion de code. Le compilateur mobl (intégré à l’IDE) compile les modules mobl en une combinaison de fichiers HTML, JavaScript et CSS à chaque sauvegarde.

Les application mobl ne reposent pas sur une technologie serveur particulière, elle repose uniquement sur une gestion cliente de l’application. Le langage supporte les appels de services web JSON asynchrones.

Le langage mobl propose différentes fonctionnalités permettant d’améliorer la productivité des développeurs mobiles:

– Interfaces utilisateur spécifiées de façon déclarative.
– Gestion de la persistance de données transparantes via la déclaration d’entités. Les objets sont automatiquement sauvés en base de données, et peuvent être lues sans besoin de requêtage SQL.
– Statique en principe, le typage peut être dynamiquement typé. Le typage statique permet à l’IDe la détection rapides d’erreurs, la résolution de références, et la complétion de code. Grâce à l’inférence de type, dans la plupart des cas, il n’y a pas de besoin de déclaration explicite de types. Le type Dynamic permet l’utilisation de notions d’accès à des propriétés et méthodes de façon dynamique.
– Un scripting rédigé dans un style d’appel synchrone automatiquement transformé en appels asynchrones.

Tout ça donne l’eau à la bouche, et invite à aller creuser un peu plus ce DSL. Pour cela, je vous invite à aller jeter un coup d’oeil à l’article InfoQ qui en propose une bonne présentation/introduction: http://www.infoq.com/articles/Mobl

A quand un DSL facile et rapide à utiliser pour générer un site web mobile en Java? Bien oui, il faut bien satisfaire les java dependants ;)

Mobl propose entre autre des exemples permettant de générer des sites mobiles basés sur jQueryMobile et Sensha Touch

* Le site internet du langage: http://www.mobl-lang.org/

jQuery Mobile Gallery

jQuery Mobile Gallery

jQuery Mobile Gallery est une galerie de sites web mobiles développés, vous l’aurez deviné, avec la librairie jQueryMobile. Je vous conseille d’aller y faire un tour si vous être intéressé par cette librairie prometteuse.

On peut déjà y trouver une bonne trentaine d’exemples de site mobiles qui pourront sûrement vous aider à vous donner un bon aperçu de ce vous pouvez faire avec jQueryMobile. Un coup d’oeil au code source vous aidera à mettre rapidement le pied à l’étrier si vous souhaitez créer votre propre site mobile.

Vous pouvez visiter la galerie à l’adresse suivante: http://www.jqmgallery.com

Sortie de jQueryMobile en version 1.0alpha3 et son grand frère jQuery en version 1.5

Sortie de jQueryMobile en version 1.0alpha3 et son grand frère jQuery en version 1.5

Ces derniers jours ont été prolifiques en news au sujet de l’écosystème jQuery. Le 31 janvier est sortie la version 1.5.0 de la librairie qui nous propose différentes améliorations intéressantes et sûrement attendues depuis longtemps par bon nombre de développeurs.

Les changements principaux de cette version concernent une réécriture complète du support Ajax fournissant une API encore plus efficace et consistante, et l’intégration d’un mécanisme qui permet de chaîner différents callbacks sur des appels de fonctions qu’ils soient asynchrones ou non.

L’API Ajax fournit maintenant un object jqXHR retourné par l’appel de la méthode jQuery.ajax() qui permet de gérer de façon consistante l’objet XMLHttpRequest quelque soit la plateforme utilisée. Par exemple, il est maintenant possible d’annuler facilement une requête JSONP ce qui n’était pas le cas auparavant.

// Assign handlers immediately after making the request,
// and remember the jxhr object for this request
var jxhr = $.ajax({ url: "example.php" })
.success(function() { alert("success"); })
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });

// perform other work here ...

// Set another completion function for the request above
jxhr.complete(function(){ alert("second complete"); });

Une explication complète du mécanisme appelé: ‘Deferred Objects‘ est disponible sur le site de jQuery.

jQuery expose maintenant, par le biais de la méthode jQuery.sub() un moyen simple de créer et modifier un clone de jQuery dans la même page sans pour autant interférer avec la déclaration par défaut. il est ainsi possible d’overrider des méthodes natives jQuery sans craindre d’incompatibilité avec d’autres scripts d’une même page basée sur jQuery. Cela rend aisé l’écriture d’API basées sur jQuery sans risquer une collision de namespaces.

(function(){
var sub$ = jQuery.sub();

sub$.fn.myCustomMethod = function(){
      return 'just for me';
    };

sub$(document).ready(function() {
      sub$('body').myCustomMethod() // 'just for me'
    });
})();

typeof jQuery('body').myCustomMethod // undefined

Cette version inclut également des améliorations de performance puisque la gestion de certaines méthodes de traversée de l’arbre DOM ont largement été optimisées comme les méthodes: .children(), .prev(), and .next(). Ces améliorations sont particulièrement importantes sous webkit (Chrome et Safari), mais elles sont également intéressantes sous Internet Explorer, puisqu’elles permettent de faire décoller un peu les performances de notre cher navigateur.

A ce jour quelques 4500 tests passent avec succès sur un nombre impressionnant de browsers (dont IE6, mais également Firebox 4 beta), ce qui pousse au respect au vue de l’hétérogénéité de ce joyeux petit monde.

Pour finir sur une note intéressante, le système de build de jQuery est maintenant basé sur l’environnement serveur JavaScript: NodeJS, ce qui est plutôt original, mais qui permet au navigateur de réduire sa dépendance envers Java/Rhino, et de se tourner vers de nouvelles solutions JavaScript innovantes.

Une road map de la librairie est disponible à l’adresse suivante: http://docs.jquery.com/Roadmap.

Presque 3 longs mois après la sortie de la version précédente, jQuery Mobile vient de sortir sa troisième version alpha, accompagnant à une semaine d’intervalle la release de son grand frère jQuery en version 1.5.0. L’attente ne fut pas vaine, puisque de nombreuses améliorations sont au rendez-vous:

  • Quelques 150 bugs fixés, environs 250 nouveaux tests unitaires
  • Une amélioration substantielle de la navigation et du core de la librairie
  • Un support de première classe pour de nouveaux browsers mobiles: Firefox Mobile (Fennec), Opera Mobile / Mini. Un support de première classe est également proche pour les plateformes Windows Phone 7 et Nokia.
  • Un support amélioré des browsers des plateformes iOS, Android, BlackBerry 6, Palm WebOS, et de nose browsers de bureau.
  • La prise en charge d’un date picker, non packagé dans la version. La prise en charge de nouveaux composants devrait arriver dans les prochaines versions (Progress Bar, Spinner, Time Picket)
  • La prise en charge du clavier a été améliorée et permet de mieux simuler un comportement natif au sein du navigateur.
  • De très nombreuses autres améliorations ont été intégrées à cette version. Une liste exhaustive peut être trouvée sur le blog de jQuery Mobile.

Ce qu’il faut retenir également, c’est l’annonce d’une bêta dans le mois qui va suivre, puis la sortie de la release 1.0 dans la foulée. Les objectifs fixés sont d’améliorer les performances générales de la librairie,
d’améliorer l’expérience utilisateur et la réactivité, et de fournir un support à un nombre plus important de browsers et plateformes mobiles. Bien que le sujet ne soit pas vraiment abordé dans le billet de l’annonce de cette sortie, on devrait également voir dans un avenir proche, une meilleure prise en charge de nos chères tablettes: iPad, PlayBook, et compagnie (après la sortie de la 1.0 ?).

Bien que l’annonce de cette release soit réjouissante pour le monde des développeurs mobiles, il n’en reste pas moins vrai que le niveau de performance souffre encore fortement la comparaison avec les applications natives (Gestion de liste), et la gestion de la navigation entre les différents écrans présente encore quelques dysfonctionnements. Il n’y a pas de doute que ce type de défauts seront rapidement gommés avec la sortie des prochaines versions.

Vous pouvez retrouvez ces informations sur le site de jQuery Mobile, leur blog et les suivre sur twitter via le compte: @jquerymobile.

Annonce de jQuery Mobile

Annonce de jQuery Mobile

C’est une nouvelle qui va à coup sûr faire du bruit dans un monde du développement mobile déjà bouillonnant, puisque vient d’être annoncé la sortie pour la fin d’année de la version mobile du framework jQuery. Et ce n’est pas par la petite porte que le célèbre framework web souhaite faire son entrée, puisque contrairement à ses concurrents déclarés, tels que jQTouch ou bien Sensha Touch, jQuery Mobile se veut être un framework JavaScript ciblant la quasi totalité des plateformes mobiles web actuelles (Blackberry, Windows Mobile, iOS pour l’iPhone et l’iPad, Android, Symbian, Bada, …), et permettant de développer des interfaces riches capable de faire rougir bon nombre d’interfaces graphiques natives.

Avec l’avènement d’HTML5 (WebStorage, WebSockets, Vidéo, Géolocalisation, …), du CSS3, et des navigateurs mobiles dernière génération proposant des moteurs JavaScripts performants, la guerre du web semble se trouver un nouveau terrain de bataille, et le web mobile aura sous peu toutes les armes nécessaires pour déstabiliser le business modèle à peine naissant des Markets, tel que l’iTunes App Store ou bien l’Android Market. Le marché des applications mobiles semble donc suivre la voie de son grand frère, celui des applications PC, et proposera à terme de nombreuses applications riches directement par le web.

L’annonce parue sur le site de jQuery Mobile indique que l’un des objectifs du framework est de pouvoir développer une application unique pour toutes les plateformes mobiles. Ce concept, ne semble pas nouveau puisque l’objectif de J2ME sorti il y a 10 ans déjà était bien de développer une solution unique, rappelez-vous: « Write Once, Run everywhere ». Le slogan semble être ici: « Write Less, Do More », mais l’objectif de fond est bien le même.

Palm avec sa plateforme WebOS et Firefox sont déjà sponsors du projet. Bien qu’encore en développement intense, la sortie première sortie du framework est prévue pour fin 2010. Ce framework pourrait bien être une des grandes surprises mobile de 2010, et pourrait devenir très rapidement un framework incontournable pour le développement web d’applications riches pour mobile.

Pour en apprendre plus sur cette déclinaison de jQuery, vous pouvez suivre les liens suivants et apprécier les designs présentés :

Intégration de Grails avec Google App Engine

Intégration de Grails avec Google App Engine

En navigant sur le blog « Le Touilleur Express« , je suis tombé sur un article passionnant décrivant l’intégration de Grails avec Google App Engine. Bien que l’article ait quelques mois, il n’en reste pas moins intéressant, et permet de se faire une bonne idée de la chose.

Une vidéo issue des « Google IO 2009 » présente Groovy, Grails, ainsi que son intégration avec le Googles App Engine. La vidéo parle d’elle même. Si vous connaissez déjà Groovy, vous pouvez sauter le premier tiers de la vidéo pour se focaliser sur l’intégration avec GAE.

Le lien vers l’article de Grails + Google App Engine:

Une introduction à Grails:

Un tutorial en trois parties basée sur une démo originale de Wicket:

Liens:

Si vous avez déjà créer une application basée sur Grails et tournant sur Google App Engine, n’hésitez pas à en faire part dans les commentaires.

Ajout du flux Twitter

Ajout du flux Twitter

Vous pouvez maintenant suivre mes Tweets depuis la sidebar du blog.

Pour accéder directement à mon flux Twitter, c’est par ici:

  • http://twitter.com/alexiskinsella

Vous pourrez y retrouver entre autre des tweets techniques ou bien des bonnes adresses. Ce widget Twitter vient compléter le widget Delicious qui recense déjà bon nombre de bookmarks techniques et de trouvailles du web.

Le blog devient polyglotte

Le blog devient polyglotte

Quelques nouveautés ont fait leur apparition sur le site depuis peu pour améliorer le contenu du blog ainsi que son ergonomie.

Ainsi le contenu des articles et le thème du blog sont maintenant proposés en français, mais également en anglais. Un sélecteur dans la sidebar du thème permet de choisir la langue de lecture du blog.

Les articles qui n’ont pas été traduits en anglais, peuvent l’être maintenant grâce à un lien « Google Translate » proposé dans l’en-tête du contenu de l’article.

Cette internationalisation du blog est possible grâce au thème multilingue  « Arras » (Pour lequel il a quand même fallu adjoindre et mettre à jour un fichier de traduction disponible ici), ainsi qu’au plugin ZdMultiLang qui permet d’internationaliser les catégories, le contenu des articles, les tags, etc…

Ressources Android sur le Web. Ca s’organise …

Ressources Android sur le Web. Ca s’organise …

Afin de compléter un peu la liste des ressources que j’ai pu trouver sur Internet à propos d’Android, je vous propose de nouvelles :

Le point commun de ces différents sites est la langue, ils sont tous 3 anglophones. Les sites anglophones ont tendance à fleurir souvent bien plus vite, cependant PointGPhone (http://www.pointgphone.com) est un site francophone qui semble plutôt bien fait, je vous conseille donc d’aller y faire un tour si l’anglais vous donne mal à la tête ! Le site présenté sous forme de blog fait une assez bonne synthèse des infos à propos d’Android. Il semble déjà avoir un lectorat régulier. Cerise sur le gâteau, il a design agréable et moderne.

PointGPhone.jpg

La blogosphère, Internet et Android

La blogosphère, Internet et Android

Je suis parti à la recherche des site intéressants (Blog et autre) sur Android. Pour l’instant la pêche n’a pas donné grand chose à part un site qui peut se révéler intéressant s’il est suivi, puisqu’il se nomme : http://www.androidfrance.com .

J’imagine qu’il se veut sérieux s’il se nomme ainsi, on verra avec le temps!

Edit: Je suis tombé sur un autre site sur Android mais Anglophone cette fois: http://androidwiki.com/, qui se veut être comme son nom l’indique un Wiki sur Android. Je trouve que ça fait un peu double emploi pour le moment avec le site officiel, mais pourquoi pas!

Edit 2: Encore un site intéressant sur lequel je viens de tomber: http://www.android-freeware.org , le site répertorie les différentes applications existant pour Android.

ExtJS, une API de RIA sérieuse?

ExtJS, une API de RIA sérieuse?

Le framework ExtJS, est une librairie JavaScript destinée à la création d’interfaces utilisateur dont le résultat visuel est assez proche de celui d’Apollo. Ce framework présente l’avantage de ne reposer que sur des technologies standard W3C, donc nul besoin de runtime flash ou java. Cette librairie est sortie récemment en version 2 et semble très bien finie.

Un petit tour sur le site de l’éditeur vaut bien mieux qu’un long discours, je vous invite donc à aller y faire un tour :

Cette librairie est d’autant plus intéressante qu’elle propose une licence LGPL v3, ce qui facilite son inclusion dans de nombreux projets.

Je ne connais pas assez ce type de librairies, mais il se pose à mon avis le problème du référencement du contenu d’applications exploitant ce type de technologies, attention donc à l’utilisation que vous souhaitez en faire.

A mon avis cette librairiea un grand avenir, c’est à mon avis la meilleur librairie de RIA JavaScript à l’heure actuelle.

extjs.JPG

Parmis les autres librairies JavaScript incontournables du momenton notera également JQuery, Prototype ou bien encore Scriptaculous.