Archive

Articles taggués ‘Mobile’

Développement d’applications sur Windows Phone 7

L’année dernière, pendant mon année d’alternance, j’ai travaillé sur la plateforme Windows Phone 7. Je vais essayer de partager avec vous mon expérience sur cette plateforme mobile qui reste un peu méconnue du grand public, tout en essayant d’avoir un esprit critique sur le sujet.

Dès mon arrivée en septembre 2010, j ‘ai eu la chance  de manipuler des terminaux qui n’étaient pas encore commercialisés (date officielle de sortie : le 21 octobre 2010). Voici les réactions immédiates qui me sont venues concernant le hardware. Côté design rien d’impressionnant,   les téléphones sont assez sobres mais ce qui m’a surpris ce sont les performances : une rapidité d’exécution pouvant faire pâlir certains de ses concurrents et des écrans de très bonne qualité. La gamme des téléphones est assez homogène (caractéristiques techniques moyennes : processeur 1Ghz, 512MB de RAM, capacité entre 8 et 16Go, écran 800×480pixels, APN 5mégapixels avec Flash).

Au niveau de l’OS, le premier démarrage donne vite un brin de déception : on trouve un premier bureau avec les applications épinglées (grosses icônes carrées) et un autre avec « une grosse liste horizontale de toutes les applications », autant dire qu’il ne faut pas avoir peur de slider lorsqu’on a une grosse liste d’applications… On retrouve donc une interface Metro assez basique et on se rend vite compte que, mis à part la couleur des icônes et l’épinglage d’applications, rien n’est modifiable. En ce qui concerne les applications natives, on retrouve les classiques  (« Téléphone», « Contacts », « Photos », « Musiques + Vidéos », « Internet Explorer 8 » et « Jeux » qui correspond au Xbox Live),  la suite Microsoft Office Mobile et le moteur de recherche Bing accessible à tout moment (grâce à la touche recherche). Enfin, on a le Windows Phone MarketPlace, sur lequel, j’ai pu me rendre compte tout au long de l’année, qu’on retrouve petit à petit les grands classiques des autres markets (pour n’en citer aucun).

Maintenant, que le tour de l’utilisateur lambda est fait, passons à la partie un peu plus technique.

Le développement d’application WP7 repose sur une version de Silverlight « adaptée ». En plus du framework traditionnel, on trouvera toutes les APIS spécifiques aux SmartPhones : accéléromètre,  géolocalisation, caméra, tâches : téléphoner, envoyer un message, lancer le marketplace, et d’autres encore. On trouve aussi les 2 modes de navigation propres aux applications WP7 que sont le panorama et le pivot ; dans le cadre de mon projet l’accent était mis sur l’utilisation du panorama pour garder l’authenticité de WP7 et ne pas essayer de copier la navigation par onglets des autres plateformes mobiles. Toutefois, on observe une certaine amputation au niveau des composants classiques qui composent Silverlight et celle-ci s’avère vite handicapante.

Qui dit Silverlight, dit pattern MVVM (Model View ViewModel)… Ces deux notions étaient pour moi totalement inconnues et mes premiers pas furent hésitants, mais une fois les grands principes compris, on devient très vite adepte du concept.  Pour faire simple, et sans rentrer dans les détails voici un petit schéma  qui explique le pattern:

MVVM est basé sur le principe de « Databinding » qui permet de synchroniser une propriété du ViewModel avec une propriété d’un composant graphique de la View (y compris les événements : click, changement de sélection,…).  Cette technique devient très vite appréciable : code minimal, rafraichissement  automatique  dans les 2 sens entre la View et ViewModel.

De plus, du fait de sa faible dépendance entre les interfaces graphiques et le code métier, MVVM facilite les tests de code et la séparation des taches des développeurs et des designers. J’en profite pour faire un petit point sur les outils mis à disposition. Tout d’abord, on trouve l’incontournable IDE pour les technologies Microsoft, Visual Studio auquel est associé le Windows Phone Developer Tools (SDKs + Emulateur). Pour moi, l’environnement s’est avéré être très complet : parmi les choses appréciables, on trouve un petit éditeur d’interfaces graphiques, le déploiement sur l’émulateur ou sur un device, un débuggeur pas à pas (dans les 2 cas de déploiement). Il est possible d’effectuer tout le développement dans Visual Studio, toutefois, dans le cadre d’un projet où un designer a un rôle à part entière à jouer, il peut utiliser l’outil Microsoft Expression Blend pour créer les interfaces graphiques sans se soucier du code métier qui tournera derrière. Pour ma part, je pense que Blend est un « jouet de luxe » et qu’on peut rapidement s’en passer.

Voici un petite liste des concepts que j’ai pu utiliser et qu’il est judicieux d’évoquer :

  • L’ IsolatedStorage est un espace de stockage de données propres à chaque application et qui est abstrait du reste de système de fichiers et facile d’utilisation.
  • L’application possède plusieurs points d’entrées (launched ou actived) et de sorties (closed et deactivated) dans lequel on peut faire des traitements différents selon que l’utilisateur ferme ou mette en background l’application. On trouve aussi  une méthode Application_UnhandledException qui permet d’effectuer des actions importantes (sauvegarde du contexte par exemple) avant que l’application se ferme dans le cas d’une exception non traitée (donc crash) et cela s’avère très utile.
  • Dans l’attente de la gestion du multitâches, le développeur doit gérer la sauvegarde du contexte de l’application lors de sa « mise en background » et le rétablissement de ce contexte lors de la réactivation de l’application. Ce procédé appelé le tomstoning est assez fastidieux puisqu’il faut sauvegarder unitairement toutes les données nécessaires, mais il est toutefois inévitable dès lors que l’application possède des données persistantes. Dans le cadre de mon projet, c’était un point essentiel à respecter et une grande partie des tests y était consacrée.

Avec tout cela, on peut donc réaliser des applications avec des interfaces graphiques très riches sans produire beaucoup de code car le pattern MVVM très puissant quand on a compris les bonnes pratiques. J’ai pu aussi m’appuyer sur un MSDN très complet et plutôt bien présenté.

Pour moi, le principal aspect négatif est que le framework manque parfois de composants graphiques ou de propriétés dans les composants existants. Cela a entraîné que j’ai vite eu le besoin de créer des composants « custom ». Un des autres faits est que la plateforme manque encore de contributeurs. J’ai été confronté à quelques problèmes techniques qui n’ont pas trouvé de réponse sur les forums appropriés.  Enfin, j’ai pu constater qu’on obtenait vite de mauvaises performances  si l’application est mal architecturée ou si on ne se soucie pas de décharger un maximum le thread principal.

Après une  expérience de 3 mois sur un projet WPF et un peu de recul, le MVVM que j’ai pratiqué sur WP7 n’était pas optimal (trop de code behind). Il s’avère que, à l’heure actuelle, le framework Silverlight pour WP7 n’est pas complet pour pratiquer un bon MVVM et que si l’on souhaite mettre en place une vraie architecture MVVM, il faut utiliser l’outil MVVM Light Toolkit et complexifier un peu son code.

En conclusion, et pour donner un avis tout à fait personnel, le développement d’applications sur Windows Phone 7 s’appuie sur de bonnes bases (Silverlight pour des interfaces interactives riches, MVVM pattern, environnement de développement complet et pratique),  mais laisse rapidement transparaitre une grosse lacune : le framework WP7 n’est pas assez riche par rapport à ces aînés (Silverlight et .NET). Beaucoup de personnes pourront vite être repoussé par l’étiquette Microsoft, mais pour moi, le développement d’applications sur WP7 est aussi intéressant que le développement sous Android (pour avoir pratiquer les 2). Microsoft doit toutefois, selon moi,  enrichir son framework et l’interface de son OS car elle présente un excès de sobriété.

Nouvelles versions

  • Actuellement, on trouve la version de l’OS 7.5 « Mango » : Multitâches complet, IE9, copier-coller, … et la version 7.1 du SDK Windows Phone.
  • A venir, l’OS nom de code « Tango » (date inconnue) avec certainement un nouveau SDK.

Les liens utiles

Lancement d’Ice Cream Sandwich, la nouvelle version d’Android

La nouvelle version du système d’exploitation Android, nommée Ice Cream Sandwich (version 4.0) a été annoncée par Google cette semaine à Hong Kong.

Cette nouvelle version de l’OS est destinée aux tablettes et aux téléphones. Pour rappel, la précédente version, Honeycomb (3.0), avait été réalisée spécifiquement pour les tablettes. Par conséquent les mobiles Android n’avaient pas vu leur OS évoluer depuis la sortie de Gingerbread (2.3), il y a presque un an. Ice Cream Sandwich va donc permettre de fusionner les deux branches (mobile et tablette) en un seul et même système.

En plus des fonctionnalités héritées d’Honeycomb (accélération 2D matérielle, framework 3D Renderscript, etc.), les mobiles en 4.0 vont profiter des nouveautés suivantes (entre autres) :

  • De nouvelles possibilités de communications entre appareils (WiFi Direct, NFC)
  • Des outils améliorés pour la reconnaissance vocale et l’accessibilité
  • Un outil permettant de suivre et analyser la consommation data des applications
  • Des performances globales améliorées, un nouveau “launcher” d’applications
  • Des applications mises à jour : navigateur web, appareil photo, galerie…
  • Une ergonomie globalement améliorée

Et côté framework, de nouvelles API et fonctions sont fournies :

  • Une API “sociale” pour le partage de contenu avec les contacts, et l’interaction avec les réseaux sociaux
  • Une API pour accéder à l’agenda. Les applications pourront par exemple créer des évènements dans le calendrier de l’utilisateur.
  • Un nouveau type de vue (TextureView) permettant de manipuler des flux d’images (vidéos, OpenGL, appareil photo…) de la même façon qu’avec des vues classiques. Cela va notamment être très pratique pour les animations.
  • Une API pour accéder aux services de reconnaissance vocale et au dictionnaire
  • Un nouveau type de layout permettant d’organiser les vues en grille (GridLayout), à la manière des tableaux en HTML.

Pour la liste complète : http://developer.android.com/sdk/android-4.0-highlights.html

Comme pour chaque nouvelle version, la compatibilité avec les anciennes applications est respectée. Cela veut dire que la plupart des applications existantes vont fonctionner sur Ice Cream Sandwich sans que les développeurs n’aient besoin d’intervenir dans leur code. Ils seront tout de même invités à faire évoluer leurs applications ou à en créer de nouvelles pour tirer parti des nouvelles fonctionnalités offertes.

Concernant la mise-à-jour des terminaux actuels, ce nouvel OS étant assez gourmand en RAM et en ressources graphiques, seuls les smartphones haut de gamme pourront être mis à jour. Les Google Nexus S et Samsung Galaxy S II en feront probablement partie. Google a également annoncé la sortie du nouveau smartphone de la marque, le Galaxy Nexus. Ce mobile high-tech conçu par Samsung sera équipé d’Ice Cream Sandwich dès sa sortie.

Categories: Actualités, Mobile Tags: , , ,

Apple WWDC 2011 : la Keynote !

San Francisco, lundi 6 juin 2011, il est 19h heure française. La musique s’éteint, la salle s’assombrit et c’est sous une standing-ovation que Steve Jobs ouvre le bal de la WWDC 2011 avec la traditionnelle Keynote.
La WWDC, c’est 5200 tickets vendus en moins de 2h, 120 sessions, 100 ateliers pratiques (labs) et plus de 1000 ingénieurs Apple.

Cette année, la présentation était consacrée à 3 sujets:
- Mac OSX Lion, successeur du fidèle Snow Leopard
- iOS 5 : le nouvel OS mobile de la firme pour les iBidules : iPhones, iPads, iPods
- iCloud : le cloud made in Apple, amazing…

Nous allons nous concentrer sur les deux sujets les plus brûlants, à savoir iOS 5 et le iCloud. Non pas que OSX Lion n’en vaille pas la peine, mais plutôt parce que iOS est de plus en plus omniprésent et qu’Apple va apporter un grand bol d’air frais avec sa solution de cloud computing grand public.


iOS 5

Commençons par l’OS mobile de Cupertino. iOS 5, c’est 1500 APIs et 200 nouvelles fonctions. Intéressons-nous aux nouveautés qui ont été présentées.

- les notifications ont été revues
Apple a voulu éliminer 2 défauts de la gestion actuelle des notifications sur iOS : la non persistance et les interruptions à répétitions pour l’utilisateur à chaque nouvelle réception. J’ai donc nommé : Notification Center, un endroit où se trouve toutes les notifs, et qui apparait comme sous Android, en glissant depuis le haut de l’écran. Le fonctionnement est le même que sur Android.
Finis les alertes au milieu de l’écran, une petite fenêtre apparait en haut de l’écran sous la forme d’un toast qui disparaitra de lui-même.
Autre bon point : les notifications apparaissent désormais listées sur l’écran verrouillé. Il était temps!

- NewsStand
Un endroit qui rassemble les publications sur abonnement. Il s’agit d’une sorte d’AppStore de magazines sur abonnement, avec une application dédiée et des téléchargements automatiques en fond de tâche.

- Intégration de twitter
Twitter est intégré à iOS, ce qui évite de se connecter dans chaque application.
Il est intégré dans toutes les applications Apple. On peut par exemple « twitter » une photo en deux taps, avec sa position.

- Safari
La nouveauté principale pour Safari est l’apparition de la longtemps attendue navigation par onglets pour l’iPad.
Safari intègre désormais son propre système permettant de se constituer une liste de pages à lire plus tard et de les classer, à la manière d’un Read It Later, le tout branché sur le iCloud, vous comprendrez pourquoi plus tard…

- Reminders
Un gestionnaire de tâche assez simple mais qui faisait défaut dans les versions précédentes et qui permet notamment de fixer un rappel lorsqu’on arrive à un endroit ou qu’on en part.

- Photos
Il est désormais possible de prendre une photo depuis l’écran verrouillé. On peut prendre une photo avec les boutons de volume. La gestion de l’exposition et le zoom, ont été revus : on peut sélectionner la zone sur laquelle l’appareil doit se baser et zoomer en écartant les doigts. On peut également éditer ses photos depuis l’iPhone avant de les envoyer.

- iMessage
iMessage, qui permet de s’envoyer des messages, photos, vidéos, contacts, etc. entre les iPad, iPhone,… C’est une sorte de Blackberry Messenger made in Apple.

iOS 5 est prévu pour l’automne. Apple annonce une compatibilité à partir de l’iPhone 3GS, c’est plutôt une bonne nouvelle.


Au niveau des APIs, on notera les ajouts majeurs suivants:
– Automatic reference counting : une gestion de la mémoire injectée lors de la compilation afin de simplifier le travail du développeur. Jusqu’à présent, il fallait gérer la mémoire à la main sur iOS. Apple apporte ici un compromis intéressant entre le garbage collecting (c.f. Java) à mon sens peu adapté à l’embarqué et la gestion manuelle de la mémoire. Reste à voir les résultats obtenus avec ce nouvel outil…
– Storyboards : auparavant, on utilisait un fichier XIB pour chaque viewController, maintenant, on peut regrouper tout le flow d’écrans d’une application ainsi que les transitions au même endroit. Pourquoi pas…
– NewsStand Framework : pour créer son propre magazine sous la forme d’une application iOS. Le fonctionnement a l’air relativement simple et le résultat séduisant. Il suffit de tourner la page d’un livre pour comprendre la qualité d’animation mise en oeuvre. On peut même ne soulever qu’un coin de page pour se référer à celle de derrière, comme si on feuilletait un ouvrage papier.
– AirPlay : pour présenter du contenu (web, multimedia) depuis son iDevice vers une AppleTV
– GLKit : pour faciliter le développement en OpenGL ES 2.0
– CoreImage : pour la manipulation avancée d’images et de videos accélérée matériellement. On y trouve de nombreux filtres, dont un détecteur de visages
– Twitter : et oui, Twitter est maintenant intégré à l’OS. L’utilisateur pourra contrôler quelle application peut accéder à Twitter depuis les préférences de l’appareil. Ce framework s’appuie sur une autre API: Accounts
– Accounts : framework qui gère le process de certaines authentifications SSO afin de simplifier le travail du développeur et d’améliorer la User Experience, notamment en fournissant une IHM intégrée, plus besoin, donc, de créer des écrans de login pour ces services.
– La customisation des contrôles graphiques arrive enfin, en fournissant un mécanisme semblable aux CSS. Ceci permet de simplifier la gestion des thèmes au sein d’une application, au plus grand bonheur des développeurs.
– iCloud Storage APIs : 2 APIs pour parler avec les nuages, ce qui offre de nombreuses possibilités. L’une d’elles permet de stocker des documents sur le compte iCloud de l’utilisateur, l’autre permet de partager des petits volumes de données entre plusieurs instances d’une application.

iCLOUD

iCloud, c’est LE nouveau mot à Cupertino. iCloud va envoyer vos données à tous vos périphériques, automatiquement, y compris les calendriers, les données des applications et même vos sauvegardes!
MobileMe, le service de synchro d’Apple vit donc ses derniers jours. Les abonnés actuels voient leur abonnement maintenu gratuitement jusqu’en juin 2012 afin d’amorcer la transition en douceur.

Les applications qui supportent le cloud sont les suivantes:
– l’AppStore : un téléchargement sur l’iPhone va déclencher un téléchargement sur vos autres appareils
– iBooks : même chose, vous achetez un livre sur l’iPhone, il va être automatiquement synchronisé sur votre iPad.
- Sauvegarde automatique des iPhone/iPad via le cloud en WiFi : préférences, photos, apps, iBooks…
– Documents : pour retrouver nos documents synchronisés sur tous nos devices. Une nouvelle version de iWorks devrait voir le jour.
– PhotoStream : PhotoStream permet de synchroniser automatiquement ses photos entre le Mac et les périphériques iOS. Les photos vont rester dans le Cloud pendant 30 jours, le temps de synchroniser tous les appareils.
– iTunes : si vous achetez un morceau de musique sur iTunes, celui-ci sera automatiquement copié sur vos autres appareils : Mac, iPad, iPhone, iPod.

La synchronisation est entièrement automatique et transparente pour l’utilisateur. Cela fonctionne sur 10 appareils maximum pour un même compte. Tout ceci est entièrement gratuit.

iCloud ne fonctionnera qu’à partir de iOS 5, il faudra donc encore patienter. Vous aurez droit à 5Go de stockage, sachant que les apps, photos, livres et musiques ne comptent pas dans ce volume. Il sera toutefois possible d’acheter de l’espace « iCloud » pour les plus gourmands.


One More Thing!
iTunes Match : pour profiter du cloud avec les musiques qu’on n’a pas achetées sur iTunes et synchroniser toute sa musique. Ce service est cependant payant: $25,99 par an.

Categories: Mobile Tags: , , ,

HTML5 : quels enjeux pour la mobilité et le RIA ?

3 nouveaux séminaires techniques organisés et animés par Objet Direct, en juin :
« HTML5 : quels enjeux pour la mobilité et le RIA ? ».

Etat des lieux du marché, retours d’expérience et démonstrations au cours de ces séminaires Objet Direct, avec le témoignage de Speedinfo : Venez découvrir les nouveaux usages et les perspectives ouvertes par les applications HTML5 mobiles.

=> le 16 juin à Grenoble, le 23 juin à Lyon, le 28 juin à Paris, 9h-11h (accueil petit déjeuner)
Evénements gratuits, sur réservation ferme.
En savoir plus et s’inscrire en ligne sur le site d’Objet Direct.

Smartphone : et l’informatique devint mobile ! Présentation disponible

Objet Direct a sponsorisé la 1ère conférence Mix-IT le 5 avril à Lyon. A cette occasion, Christian Demoustier, Directeur Technique d’Objet Direct Lyon, a animé une conférence sur le thème :
« Smartphone : et l’informatique devint mobile ! »

La présentation est proposée au téléchargement ici.

OBJET DIRECT sponsorise la 1ère conférence Mix-IT le 5 avril à Lyon

Les passionnés de Java et de nouvelles technologies et les agilistes de la région Rhône-Alpes se retrouveront à la Conférence Mix-IT, organisée à Lyon le 5 avril prochain.

Parmi les temps forts de cette journée, Christian Demoustier, Directeur Technique d’Objet Direct Lyon, animera une conférence sur le thème : « Smartphone : et l’informatique devint mobile ! »

Les associations Lyon JUG et Club Agile Rhône-Alpes s’unissent pour proposer, à toutes les personnes et entreprises qui veulent en savoir plus sur l’agilité et/ou les technologies Java/JEE, une journée exceptionnelle qui met en avant l’innovation, les bonnes pratiques et la découverte.

OBJET DIRECT, sera présente parmi les conférenciers et dans l’espace partenaires pour faire gagner, aux visiteurs les plus motivés, leur place à une formation HTML 5 qui se tiendra en 2 soirées les 19 et 24 mai.

Frais d’entrée 20€ – Inscriptions sur le site : http://www.mix-it.fr/

Son service sur mobile sans passer par une application native

Avoir son service sur mobile est devenu presque obligatoire vu le nombre en constante augmentation de personnes ayant un smartphone.

Le premier réflexe est de se lancer dans une application native. Cependant vu la disparité des plateformes (Iphone, Android, BlackBerry, Windows Mobile …), ce choix est actuellement extrêmement coûteux si vous voulez atteindre le plus grand panel de clients.

Or je pense que la plupart des applications natives sont souvent un portage simple de services en ligne. Il existe d’ailleurs des moyens d’afficher une page web dans un simple conteneur natif (c’était la logique des tous premiers iPhone). A coté de ça, les navigateurs embarqués sur les smartphones sont souvent très avancés et gèrent aussi bien Javascript que le standard W3C qui monte, c’est à dire HTML 5 !

De nombreux projets commerciaux ou open source, se sont d’ailleurs lancés sur le sujet afin d’offrir des solutions portables sur n’importe quel navigateur embarqué.

Certains sont simplement une librairie Javascript permettant de gérer les évènements tactiles (http://xuijs.com/docs/event par exemple). D’autres se chargent de donner un large accès aux API natives du framework (http://www.phonegap.com/about par exemple).
Suivant la nature du besoin, vous ferez glisser votre choix entre ces deux types.

Pour le service que je comptais faire passer en version mobile, le choix s’est porté sur des frameworks situés au milieu en particulier Sencha Touch et JQuery Mobile. Tous les deux se basent sur HTML 5 pour faciliter la version mobile.

Sencha Touch est assez avancé dans ses possibilités (surtout qu’il est possible de le combiner avec PhoneGap) mais c’est un framework nécessitant une réelle prise en main. Au contraire, JQuery Mobile permet de facilement passer son site en version mobile. De plus la réputation de la librairie JQuery et sa connaissance répandue permettent de travailler rapidement avec JQuery Mobile.

Voila le résultat d’un prototype obtenu en quelques jours. Le design est encore perfectible mais nous avions le cœur du service largement utilisable sur un mobile.

Pour moi, c’est vraiment une solution efficace pour un coût tout à fait raisonnable afin de porter son service sur mobile.

Pleins d’autres exemples concrets sur ce site : http://www.jqmgallery.com/

Categories: Mobile Tags: ,

Smartphone : et l’informatique devint mobile… Présentation disponible !

Objet Direct a présenté les nouveaux usages et les perspectives ouvertes par le développement mobile, avec le retour d’expérience de CARL Software, à l’occasion de trois séminaires animés par Christian Demoustier le 19 octobre à Lyon, le 20 octobre à Grenoble et le 21 octobre à Paris : Smartphone : et l’informatique devint mobile…

La présentation est proposée au téléchargement ici.

Quelle place pour le smartphone dans l’informatique d’entreprise ?

3 nouveaux événements techniques organisés et animés par Objet Direct, en octobre :
« Smartphone : et l’informatique devint mobile… ».

Venez découvrir les nouveaux usages et les perspectives ouvertes par le développement mobile, à partir des retours d’expérience concrets d’Objet Direct qui a conduit pour ses clients plusieurs projets très innovants.

=> le 19 octobre à Lyon, le 20 octobre à Grenoble, le 21 octobre à Paris, 9h-11h (accueil petit déjeuner)
Evénements gratuits, sur réservation ferme.
En savoir plus et s’inscrire en ligne sur le site d’Objet Direct.

Présentation Android

Ce billet présente mon retour sur la demi journée de séminaire que j’ai pu suivre mardi chez nos confrères de Valtech Training animé par Olivier Penhoat.

Le marché du smartphone.

Android arrive sur un marché difficile étant donné la place prépondérante des OS historiques. Là où l’iPhone a percé avec insolence, révolutionnant les standards, Android peine à démarrer.

Dans un premier temps, n’oublions pas que l’on parle de deux sujets différents : d’un côté il y a toute une stratégie marketing avec un OS destiné à un objet unique, et de l’autre un OS disponible sur de multiples plateformes intégrant chacune des périphériques différents qu’il faut pouvoir orchestrer de façon identique.

De plus, cet OS n’est pas destiné spécifiquement aux smartphones comme on aurait tendance à le penser en premier lieu mais à une multitude d’appareils mobiles (tablettes, GPS, ordinateur de bord automobile, …).

Contrairement à ce que l’on peut penser à première vue, il semblerait que le marché à venir concerne ces divers appareils encore plus que les smartphones !

Google nous propose donc ici un système qui se veut ouvert :

  • Applications (internes et tierces) toutes logées à la même enseigne (accès à toutes les ressources)
  • Personnalisation poussée du bureau
  • Applications modérées à postériori
  • Pas d’IDE/OS imposé pour les développements
  • Développement sur des standards du marché (Java/XML)

Comment cela se présente-t-il ?

Le système

L’architecture est basée sur un noyau Linux récent, agrémenté des divers drivers fournis par les constructeurs. Ensuite il y a une couche de libraires dont le « runtime Android » contenant une VM optimisée (Dalvik), puis une couche identifiée comme le SDK Android permettant un accès via le langage Java aux développeurs.

Attention néanmoins, la VM Dalvik est assez spécifique :

  • Bytecode propriétaire
  • Fonctionne sur un registre et non une pile pour optimiser la mémoire.
  • Une instance de VM par processus.

L’outillage

Il est plutôt complet, on note entre autres :

  • Android Debug Bridge : envoi de commandes sur l’appareil (ou son émulation).
  • Un émulateur (permettant de simuler les différentes versions, matériels) avec déploiement à chaud.
  • Dalvik Debug Monitor Service : affiche notamment les logs de la VM.
  • Android Development Tools : plugin pour IDE au choix permettant de gérer une structure de projet Android et de mettre en place les IHM visuellement.

Composition d’une application

Le fichier manifest

Il sert de contrat pour l’application. Toutes les ressources que l’application va utiliser doivent y être déclarées : géolocalisation précise ou non, accéléromètre, appels, …

Une orchestration via des « intentions »

Les intentions sont très similaire à REST, il s’agit d’une ressource identifiée par son URI liée à une action simple (MAIN retourne à l’accueil, PICK sélectionne la ressource, EDIT …).

4 composants proposés comme cadre :

  • Les activités : le cœur de l’application, en général une activité est fortement liée à un écran.
  • Les fournisseurs de contenu : le nom est plutôt explicite, il va géré les accès aux différents contenus pour  donner un accès simplifié à l’application.
  • Les services : ce sont les processus lancés en tâche de fond, tournant même quand l’application n’a plus la main.
  • Les récepteurs d’intention : prennent en compte des évènements extérieurs (appel entrant).

Limites

La fragmentation

La première limitation vient de l’objectif même d’Android : la multiplication des appareils sur lesquels il est amené à fonctionner et donc des configurations différentes à gérer par le développeur, notamment les tailles d’écran, présence d’accéléromètre, …

On appelle cela la fragmentation et elle se multiplie encore avec les différentes versions d’Android proposées par les constructeurs : v1.5 : 30%, v1.6 : 54%, v2.0.1 : 15% …

Il faudra donc composer avec toutes ces configurations !

Android Market

La place de marché pour les applications Android, mis en place par Google souffre de nombreuses lacunes mettant un frein à son développement :

  • Mauvaise gestion des commentaires
  • Achat uniquement via le système de paiement Google (Checkout)

Conclusion

Olivier nous a fait une démonstration rapide et efficace de la mise en place d’une application Android. Le résultat est flagrant, il parvient très rapidement à afficher une carte Google Maps avec notre dernière position géographique donnée par le GPS …

Pendant la session, il nous a confirmé plusieurs fois que le développement était très simple malgré la fragmentation, qui est plutôt bien gérée par le SDK, pour faire des choses simples. Le pendant de ce système ouvert reste sa complexité quant on veut faire des choses qui sortent du cadre.

De plus, il ne faut pas oublier que l’on déploie une application sur un mobile et non un serveur d’application ! Il faudra donc, même si l’on travaille en Java, repenser notre façon de développer afin d’optimiser certaines structures de code.

Categories: Actualités, Mobile Tags: ,