Introduction
Une version plus grande de cette réponse peut également être trouvée ICI.
jQuery Mobile n'a jamais été conçu pour être utilisé uniquement comme un framework d'application mobile hybride HTML5/CSS3. Sur une voie similaire à son grand frère jQuery et jQuery UI, il était destiné à être utilisé comme une solution robuste et responsive sur le marché des applications web mobiles en pleine croissance. Ce qu'il a pris de son grand frère, c'est un support du navigateur complet. Lancez-le sur toutes les plateformes majeures possibles et il devrait fonctionner de la même manière.
Ce support étendu des navigateurs a également posé un autre problème, à savoir l'optimisation de la plateforme. Parce que jQM ne peut pas favoriser des plateformes spécifiques, cela signifie également qu'il n'est pas optimisé pour être utilisé au maximum sur l'une d'entre elles.
Parlons aussi un peu de Phonegap. Bien que ce soit un excellent système d'emballage d'applications, cela devient un enfer lorsqu'il est utilisé avec une application plus grande de jQuery Mobile. C'est comme si deux grands parents avaient fait un enfant déformé ou que deux grands avantages ont donné un encore plus grand inconvénient.
Solutions
Comme c'est toujours le cas dans l'histoire de l'humanité, un autre groupe de développeurs est venu pour combler ce vide évident. Et c'est ainsi que sont apparus jqMobi (maintenant AppFramework), jqTouch, Zepto, Sencha Touch, Trigger.io et autres.
Avantages vs ...
Avant d'aller plus loin que jQuery Mobile, une chose doit être comprise : quoi que vous gagniez en vitesse (et croyez-moi, vous l'obtiendrez), vous perdrez en support de la communauté. Alors que chaque framework mentionné précédemment a une communauté de développeurs considérable derrière lui, tous combinés ne peuvent même pas se rapprocher de jQM.
Cela dit, plongeons dans les spécificités. De mon expérience, actuellement les deux meilleures solutions en tant que frameworks d'applications hybrides HTML5/CSS3 pour Android et iOS sont AppFramework et Sencha Touch. Premièrement, laissez-moi dire qu'ils sont rapides, plus rapides que jQuery Mobile ne le sera jamais (si les développeurs de jQ continuent sur cette voie). Le support UI est similaire, voire même meilleur dans le cas de Sencha Touch, sans parler du fait que l'UI a un aspect plus natif qu'avec jQuery Mobile. Les listes sont plus rapides, le défilement est meilleur, les transitions ne bégayent pas.
... inconvénients
Avant que quelqu'un ne demande pourquoi les gens choisissent alors d'utiliser jQuery Mobile à la place ? La raison évidente serait le support de la communauté et dans une certaine mesure, c'est la vérité. Mais il y a d'autres problèmes pressants ici. Alors que jQMoby se vend comme une alternative jQuery plus fidèle à jQuery Mobile, c'est un grand mensonge. Bien que ce soit toujours un excellent framework, ils utilisent cette déclaration comme un tour de marketing. Ils ont en effet cloné (refait) beaucoup de fonctionnalités de jQuery, mais il ne s'agit que d'un travail partiel, et les développeurs chevronnés de jQuery vont se retrouver confrontés à un problème. Ils ne pourront pas tirer pleinement parti de leurs connaissances antérieures, passant ainsi plus de temps à essayer de trouver comment faire quelque chose qui était censé fonctionner plutôt que de travailler sur une application.
D'un autre côté, Sencha Touch ne souffre pas de ce problème car il a une syntaxe différente, presque alien. Comme avec jqMoby, vous aurez besoin de beaucoup de temps pour comprendre sa syntaxe. Mais n'ayez crainte, le résultat sera satisfaisant à la fin.
Une autre chose, contrairement à jQuery Mobile et Phonegap, AppFramework et Sencha Touch ont leur propre système d'emballage d'applications natif. À mon humble avis, ce système est meilleu.