Frameworks pour supports Mobiles

Le support des plateformes Mobiles est désormais incontournable pour un site Web, ou pour une marque en générale.
Deux approches son possibles pour supporter le Mobile: la WebApp, ou l’application native.
Avec les améliorations apportées par le Html5, les acteurs du Web se demandent s’il est encore pertinent de développer des applications Natives sur les plateformes mobiles.
L’application native multiplie les coûts de production et de maintenance autant que le nombre de plateformes supportées : IOS, Android, Windows Phone, RIM, ..

Les développeurs ont donc créés des frameworks adaptés aux supports cross-platform permettant de ne développer qu’une seule fois l’application, pour toutes les principales plateformes et supports physique du marché.

Cordova/PhoneGap est le leader de ce type de plateformes, et il faut bien avouer que, bien que les résultats obtenus ne sont pas encore au niveau des applications natives mobile, les librairies de contrôles utilisateur JS et frameworks JS comme Bootstrap, WinJs, IonicFramework et autre, présentent désormais un look et des fonctionnalités assez similaires aux applications natives.
Cordova emballe un navigateur web dans une application. En conséquence, les contrôles UI ne sont pas natifs, et ne sont pas toujours aussi réactifs et performants que les contrôles natifs.
Le développeur crée des pages WEB qui tournent en mode local sur le mobile. Néanmoins, le framework Cordova offre d’avantage de possibilité qu’une WEBapp classique, puisque le Framework Cordova permet par un système de plugins de supporter pleinement des capacités physiques des supports natifs (Giroscope, Podometre, Caméra, Geolocalisation, accès aux données du mobile, .. ).
L’avantage de la technologie Cordova est donc le faible effort de développement supplémentaire a ajouter à son site web deja MobileFriendly, afin de le rendre natif Android, IOS, MS WindowsPhone.
Le delta de différence de comportement entre un site Web mobile et une application Cordova est estimé a 10-15%. Le tronc commun reste donc très important, ce qui constitue des economies de maintenance majeures.

J’ai fait de l’objectif C et des applications natives pour iPhone avec l’environnement XCode, mais ce langage réclame un gros effort d’apprentissage, et surtout ceci oblige l’éditeur à développer autant de fois son application que de plateformes et de formats de devices supportés (exemple: support IOS pour iPhone, pour iPad, pour les tablettes Android, pour smartphone Android, pour WindowsPhone, …)

Finalement, j’ai testé BootStrap et IonicFramework, dont le concept, avec Sencha, me semble le plus convainquant.
Ce sont des frameworks JS permettant de gérer des contrôles utilisateurs multi-support, c’est a dire pour support Mobile et desktop.
Aussi, si l’on souhaite impérativement une application native, on peut faire du Html5 et un Framework JS comme Sencha ou BootStrap, et mettre son application web dans PhoneGap ou Titanium.


Financial Times

Pourquoi faire de applications natives pour chaque plateforme alors que le HTML 5 est universel ?

– pour plus de visibilité sur le marché (AppleStore et AndroidMarket): Vrai
– pour supporter des fonctionnalités non gérées par le HTML: ces différences sont de moins en moins marquées.
Désormais, on peut gérer la localisation et le contenu off-Line grâce au HTML5 et la gestion d’une base de données dans la navigateur.
– Pour avoir d’avantage de fluidité et de convivialité dans son application, et un look natif a chaque plateforme : en partie vrai.
Avec des efforts, on peut parvenir à des comportements pratiquement aussi bien que sur application native :
l’exemple le plus abouti est le site du FinancialTimes : http://apps.ft.com (à voir à partir d’un mobile ou d’une tablette).
C’est un site web qui se comporte pratiquement comme une application : support Offline, contrôles UI très aboutis, ergonomie très bien étudiée.

Au final, peut être peut-on arbitrer entre le langage natif et le mode hybride grâce a cette question:
Est-ce que l’application mobile, son ergonomie et fonctionnalités natives étendues sont définitivement stratégiques et des atouts essentiels à son usage, son business. La réponse peut être “OUI”, et dans ce cas justifier des coups supplémentaires pour répondre à sa stratégie.

Principaux frameworks du marché pour support mobile :

Frameworks WEB :

Material Design: http://materializecss.com/
Google’s goal is to develop a system of design that allows for a unified user experience across all their products on any platform.
http://getbootstrap.com :
c’est LE framework du moment: très polyvalent, proposé a la communauté par Twitter. Il peut s’adapter aussi bien aux supports mobiles que navigateur sur desktop.
https://facebook.github.io/react-native/: React Native enables you to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React.
http://ionicframework.com/
Un framework en plein essor, et très utilisé avec Cordova.
https://dev.windows.com/en-us/develop/winjs:
WinJS: The Windows Library for JavaScript

http://goratchet.com
Ratchet is a front-end framework for building mobile web apps in HTML, CSS, and JavaScript. This framework will probably merge with bootstrap in the next version.
http://jquerymobile.com :
C’était un des framework Mobile de référence (jusqu’en 2013), avant BootStrap et autre nouveau frameworks, et avant l’avènement du responsive UI. JQueryMobile est désormais jugé comme lourd et en perte de vitesse (Les choses changent vite en UI .. )
http://www.sencha.com : le framework Sencha Touch est en concurrence avec JQueryMobile. Il est très bien noté par les développeurs. Il s’appuie sur Ext JS, qui a une philosophie particulière, mais offre une souplesse supérieure a JQueryMobile.
http://www.telerik.com/kendo-ui :
Framework payant, mais offrant une qualité indéniable.
http://famo.us
Famo.us is the only JavaScript framework that includes an open source 3D layout engine fully integrated with a 3D physics animation engine that can render to DOM, Canvas, or WebGL.
http://jQTouch.com : c’était un bon framework avant la sortie de JQueryMobile et BootStrap. Il est désormais vieillissant
http://www.modernizr.com :
cette bibliothèque JS permet de détecter toutes les fonctionnalités du navigateur client,
et d’adapter la présentation et le comportement du site, afin d’utiliser au mieux les fonctions HTML5 et CSS3.

Frameworks applications Natives :
http://www.cordova.com : Cordova, la version Apache de PhoneGap enrobe un navigateur dans une application. On navigue sur des pages locales. Ce ne sont donc pas des controles utilisateur natifs que l’on voit. L’avantage principal de Cordova est de pouvoir produire a faible cout une application native a partir d’un site Mobile Friendly.
http://www.appcelerator.com : Titanium est similaire à Cordova/Phonegap, il est payant, mais va tout de même bien plus loin.
il possède une API propre qui permet de convertir certaines parties de son code en programme NATIF, et donc en Objective C Cocoa pour IOS, java pour Android par exemple, avec les performances natives, les contrôles utilisateurs propres à chaque plateforme, donc un résultat bien meilleur que PhoneGap si on l’utilise bien.
http://xamarin.com/
Xamarin Platform : With Xamarin, you write your apps entirely in C#, sharing the same code on iOS, Android, Windows, Mac and more. Anything you can do in Objective-C, Swift or Java, you can do in C#.

Pour les jeux:
unity3d.com

https://www.xamarin.com/university
Xamarin est un framework qui s’appuie sur la brique Mono permettant de faire tourner du code .Net C# sur les plateformes supportées par Mono.
Xamarin propose des librairies de base permettant de gérer la meme UI, la même interface d’accès aux données, au matériel du téléphone, quelque soit la plateforme: IOS, Android ou Windows Phone.

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *