lundi 28 novembre 2011

Programmation des mobiles, et les systèmes

Comment programmer un appareil mobile? Quel framework pour faciliter la tâche? Quel langage de programmation utiliser? Peut-on rendre l'application portable? Quel système d'exploitation choisir? Nous allons tenter de répondre à toutes ces questions.
  • Le marché des mobiles.
  • Les systèmes d'exploitation et leur programmation.
    • iOS.
    • Android.
    • Tizen
    • Windows Phone 7.
    • Blackberry OS et Qnx.
  • Systèmes abandonnés
    • MeeGo.
    • Symbian.
    • WebOS.
  • Outils de développement portables.
    • Titanium.
    • Unity3D.
    • MonoTouch.
  • Les widgets.
  • La plateforme universelle: HTML 5.

 

Le marché des mobiles

Le nombre d'utilisateur de mobiles évolués, faisant tourner des applications réalisées par de tierces parties, est déjà plus important que le nombre d'ordinateurs de bureau. Il est donc évident qu'un programmeur doit maintenant privilégier ce marché.
Il ne faut pas compter sur la compatibilité avec les systèmes de bureau (même si des émulateurs sont fournis pour developper sous Windows, Mac, Linux). Les interfaces, les écrans sont différents et à moins qu'on ne se limite aux applications dans le navigateur, il faut repenser l'application, et prévoir d'utiliser des APIs différentes.

 

Les systèmes d'exploitation des mobiles et leur programmation

Les langages et les outils sont différents selon les systèmes d'exploitation. Nous allons les indiquer mais n'entrerons pas ici dans le détail des structures des applications propres à chaque système, elles sont décrites dans leurs centres de développement.

iOS

Le système de l'iPhone fonctionne de préférence avec des applications en langage C ou Objective C, ou en HTML 5.
Après avoir interdit l'utilisation de frameworks tiers (comme Flash) pour réaliser une application qui soit acceptée sur l'AppStore, le 9 septembre 2010, Apple a changé de politique et abandonné toute restriction sur les outils utilisables pour réaliser des applications pour l'iOS.
La clause 3.3.1 pour qu'une application soit incluse dans l'App Store indiquait que le logiciel devait être écrit en Objective C, C++ ou JavaScript et sans sur-couche intermédiaire avec l'API de iOS. Elle fait maintenant partie de l'histoire.

Outils

Cocoa est l'outil de développement d'Apple et des variations de langage C, avec le framework UIKit.

Android

Le système de Google est maintenant doté d'une base installée très large, égale à celle de l'iPhone aux USA et constitue donc un des deux marchés privilégiés pour le développeur.
Le SDK Android fournit les APIs pour construire des applications. Il comprend un émulateur de mobile Android pour tester l'application sous Windows, Mac, Linux.
Le plugin ADT pour Eclipse lui ajoute une IDE.
Le NDK, N pour native, permet d'ajouter du code natif, donc écrit en C, ou autre langage compilé en binaire.
Le langage de programmation originel est Java mais grâce à SL4A il est possible d'utiliser un autre langage tel que PHP.

Tizen

C'est le successeur de Meego, soutenu par Intel, Samsung, NEC et de nombreuses autres compagnies, il utilise HTML 5 comme interface et Linux comme backend. Le nom est sans doute une abbréviation de "citizen", citoyen en anglais.
Il succède aussi à Limo, une initiative de la Linux Foundation pour un système mobile basé sur Linux.
C'est une alternative à Windows 8 qui fera fonctionner sur tablettes les applications pour Linux et supportera Qt et GTK. Si Microsoft s'en tient à son intention de charger 30% des applications sous Metro, Tizen intéressera surement les éditeurs. Les applications développées en HTML 5 et WAC fonctionneront sur tous les appareils.
Sa disponibilité avec un SDK est prévue pour le premier trimestre 2012.
  • Tizen. Hébergé par la Linux Foundation.
  • WAC. (Wholesale Applications Community). "Communauté d'applications en gros". C'est à la fois un ensemble d'API et un centre de distribution pour des applications indépendantes du matériel. Il doit fournir la base de développement sur Tizen.
  • Tizen vs. Meego, Android, WP7.

Windows Phone 7

On contraire de l'iPhone, le système de Microsoft privilégie l'écriture d'application en C#, mais on peut utiliser le langage C++ également. Les applications tournent sur une version allégée de .NET.
L'interface peut être construite avec Silverlight ou XNA, un framework de jeux.

Blackberry OS et Qnx

OS 6 de RIM supporte le multitouch. La programmation se fait en Java ou avec le SDK pour les applications Web.
Qnx est utilisé sur tablette et il permet de faire tourner les applications Android pourvu qu'elles soient acceptées sur la plateforme de distribution App World.

 

Systèmes abandonnés

Inutile de développer sur ces systèmes.

MeeGo

Ce système sur Linux (et hébergé par la Linux Fundation) résulte de la fusion de Moblin d'Intel et de Maemo de Nokia.
De nombreux industriels ont rejoint le consortium Meego, système pour sur mobiles, tablettes et netbooks. Un code commun sera utilisé pour tous ces matériels.
Bien que Meego ne soit pas mature, plusieurs fabricants ont choisi ce système pour leurs nouveaux notebooks de préférence à Chrome OS dont l'orientation tout-Web ne convainc pas vraiment.
Meego utilise le framework Qt et l'on peut le programmer avec l'éditeur Qt Creator. Le MeeGo UI Toolkit est une couche ajoutée à Qt. Il est complétée par Handheld UX pour les mobiles et Neetbook UX pour les tablettes et netbooks.
Le langage de programmation est C++.

 

Symbian (En cours d'abandon)

Symbian 3 est une plateforme open source. Le PDK (Product Development Kit) peut être téléchargé pour construire une application. L'ADT (Application Developent Kit) contient les outils pour développer une application fonctionnant sur Symbian.
Les langages utilisables sont C++ avec Carbide, Java ME avec Eclipse Mobile ou NetBeans Mobility, Python avec PyS60, Ruby avec Symbian Ruby, Flash avec Flash Lite, des widgets utilisant HTML 5. Le support .NET est incertain.
Avec le Nokia Qt SDK, on peut développer et tester des applications sur ordinateur de bureau qui fonctionneront sur Symbian et Meego.
Symbian sera progressivement remplacé par Windows Phone 7 et sans doute par un nouveau système basé sur Linux pour les modèles à bon marché. Le développement de Symbian a été transféré à une société tierce, Accenture en juin 2011.

WebOS (Abandonné)

WebOS est souvent considéré comme le meilleur OS pour smartphone. La société Palm a été reprise par HP et l'on s'attendait à ce que webOS ait un grand avenir car HP affirmait que l'OS est la principale raison pour le rachat, elle voulait d'ailleurs l'utiliser aussi sur netbooks et tablettes et à partir de 2012 l'installer comme système alternatif sur chaque ordinateur (elle en vend 60 millions par an).
Cependant il s'avère plutôt lent sur tablette.
Mais le 19 août 2011, HP annonce la fin de l'utilisation de WebOS sur smartphones et tablettes.
WebOS pourrait être racheté, d'autant que Google est devenu compétiteur sur le marché d'Android et Microsoft se rapproche de Nokia ce qui fait qu'Android et WP7 deviennent moins intéressants pour les fabricants. Cependant ils peuvent aussi se tourner vers Meego, lequel commence déjà a équiper des netbooks.
Basé sur Linux, il supporte la plupart des outils pour Linux dont SDL pour les jeux. WebOS supporte HTML 5, JavaScript, CSS. Il est multitâche.
Le PDK permet d'introduire du code C ou C++ dans les applications. Le SDK inclut un simulateur pour tester les applications sous Windows ou Linux, et Mojo, un framework Ajax comprenant des widgets. On peut ajouter ses propres widgets.
Mojo est en cours de remplacement par Enyo, un framework plus rapide et compatible HTML 5, convenant pour les tablettes.

 

Les outils de développement portables

On peut maintenant les utiliser sur iPhone tant que les applications ne chargent pas de code exécutable comme peut le faire Flash.

Titanium

Interface de developpement pour Android ou les applications locales. Il dispose de son propre SDK, interface aux APIs du système, qui facilite le port d'une plateforme à l'autre.

Unity3D

Unity est une plateforme de développement et Unity3D une version spécialisée pour les jeux. L'API peut être programmée en JavaScript ou C#.
Ces langages sont compilés en langage natif (ARM) pour les mobiles.
Les mêmes applications peuvent fonctionner sur un navigateur grâce à un plugin. Elles fonctionnent aussi sur Windows et Mac, sur .NET.

MonoTouch

Produit par Novell, c'est une version pour IPhone et iPad du framework Mono. Les applications écrites en C# sont compilées et liées à l'API du mobile ou la tablette.
Elles ne seront pas distribuées sur l'App Store.

 

Les widgets

Ce sont des applications simplifiées, fonctionnant directement dans l'interface du mobile ou dans d'autres applications.
Ne pas les confondre avec les widgets des frameworks, qui sont des composants d'interface.
La façon de créer et installer des widgets dépend de chaque système.

 

La plateforme universelle: HTML 5

HTML 5 reste la plateforme universelle, fonctionnant sur tous les mobiles sans aucune adaptation du code mais avec des limitations.
Nokia propose un outil de développement pour des applications portables sans code natif.
  • Mobile boilerplate. Une application en prêt à porter avec CSS et JavaScript.
  • Tutoriel Canvas. Apprenez à mettre des graphismes dans le navigateur.
  • AppMobi. Des outils et librairies pour HTML 5. DirectCanvas permet d'accélérer les applications dans Canvas. MobiUs est un navigateur qui donne accès aux ressources du système.
  • jQuery Mobile. Framework Ajax pour aider à réaliser des applications compatibles.
  • WebAPI. Projet de Mozilla d'une API pour tous les systèmes et navigateurs et destiné surtout aux applications sur mobiles.
  • HTML 5 for mobiles. Liste d'astuces pour adapter une application aux mobiles.
L'AppStore de l'iPhone a inclu Opera Mini, une version allégée du navigateur, dédiée aux mobiles. Il semble cependant que ce navigateur, ne soit pas une plateforme d'application Web. En effet, Opera Mini 5, s'il supporte SVG et CSS 3, n'a pas de support pour des composants essentiels: Formulaires de HTML 5, Ajax.
Firefox 4 pour Android reconnaît quand à lui 100% de HTML 5. De même le navigateur natif.

 

Liens utiles :

  • Ovi Store. Télécharger des applications pour Nokia.
  • App Store. Applications pour iPhone. (185 000 applications au 04/2010).
  • Android Market. Applications pour Google Android. (38000 au 04/2010).
  • Thoughts on Flash. Steve Jobs explique pourquoi Flash ne sera pas sur iPhone et clame sont attachement à HTML 5.
  • NetBeans for mobiles. Pour créer des applications Java pour les appareils mobiles.
  • Mokk.me. Très utile pour savoir à quoi ressemblera une application avant de la programmer: permet de créer facilement une interface dans un mobile factice. Vous pouvez récupérer le code HTML et CSS de l'interface.
  • Six leçons par une légende du design. Web design pour mobile. (Anglais)

    Source : http://www.scriptol.fr

Aucun commentaire:

Enregistrer un commentaire