mercredi 14 décembre 2011

Pourquoi Android est plus lent que iOS ?

Récemment un client me remontait le fait qu'il trouvait Android plus lent que iOS. Il a fait cette comparaison entre son iPad2 et une Galaxy Tab 10.1. Donc deux modèles que l'ont peu objectivement comparer.
Il utilise l'iPad depuis 2 ans et arrive tout juste sur Android. Il fait la comparaison sur son utilisation habituelle, la navigation, les menus. Et je suis d'accord avec lui, Android semble moins optimisé que iOS qui fonctionne uniquement sur un voire deux types de matériel d'un même constructeur.
Ce ressenti utilisateur est principalement lié aux performances de l'interface graphique.
L'équipe Android, ou du moins une partie de la team de Google, avoue des problèmes de performance de l'IHM, dûes à un problème de conception du framework.
La discussion était plublique sur Google+ et vous pourrez retrouver un résumé des débats sur :
http://blog.crazybob.org/2011/12/truth-about-android-ios-ui-performance.html

jeudi 8 décembre 2011

Vos gradients plus jolis

Lorsque vous souhaitiez appliquer des gradients vous aviez pour habitude de créer une image avec votre outil de composition graphique favori. Avec Android, après avoir étudié sagement et assiduement (si, si!) la documentation, vous vous êtes aperçu que vous aviez la possibilité de définir vos gradients directement dans un fichier XML.

En effet, la création d'un fichier XML dans un répertoire de type drawable dont l'élément root est défini comme shape, vous autorise à générer un ensemble de forme (carré, rectangle, bord arrondi, cercle...) en y appliquant des couleurs de fonds, bordures et autre gradient.

La génération du gradient n'avait pas un très bon rendu sur certains matériels. Pour corriger cela, il est nécessaire d'appliquer, dans le code de votre Activity
@Override
public void onAttachedToWindow(){
    super.onAttachedToWindow();
    getWindow().setFormat(PixelFormat.RGBA_8888);
http://crazygui.wordpress.com/2010/09/05/high-quality-radial-gradient-in-android/


mercredi 7 décembre 2011

Créer un widget pour la homescreen

[Intermédiaire/avancé]
Android dispose d'une fonctionnalité de Widget. Il s'agit de la possibilité d'afficher sur le launcher (homescreen) de petites applications (horloge, contenu d'un flux rss, ...) accessibles sans ouvrir l'application.

Un tutorial pour tout savoir sur les widgets, leur implémentation et leurs mises à jour.
http://www.vogella.de/articles/AndroidWidgets/article.html

mardi 6 décembre 2011

Conseils en développement

Un article sur 10 points qu'il est nécessaire de connaître et de respecter lorsque l'on développe des applications mobiles Android :
http://www.developer.com/ws/android/programming/10-android-app-performance-tips-for-developers.html

(à lire mais aussi à retenir :))

Comprendre les fragments sous Android 3.x et supérieur

Face à l'espace disponible sur les écrans des tablettes, l'ergonomie des applications a été repensée pour un affichage sur des dalles de 7 pouces et supérieures. Bien que l'on trouve, encore aujourd'hui, des tablettes sous Android 2.x, Google et son équipe Android a toujours dit que la plateforme n'était pas faite pour cet usage.

Les équipes de Google ont donc sorti en 2011 une version 3.0, nommée Honeycomb, dont l'ergonomie est dédiée aux grandes surfaces (tablettes, mais aussi TV). Cet version d'Android a intégré un composant nommé Fragment qui permet de disposer au sein d'un même écran de plusieurs activities possédant leur propres vues et leur propre cycle de vie.

Bien que vous puissiez faire la même chose sans cette API et bien qu'une application Android 2 (même Android 1) puisse fonctionner sur un environnement Android 3.x (bon il risque d'y avoir de la casse quand même :)), cela simplifie le travail du développeur et l’interaction entre les différents composants utilisés à l'écran.

http://www.broculos.net/en/article/android-101-use-fragments-handle-different-screen-orientations




Testez vos applications !

Les outils fournits par le SDK Android est très complet et vous pouvez obtenir quelques choses de très proches de la réalité grâce à l'émulateur fourni.

Cependant, il est nécessaire, si vous ne souhaitez pas avoir de surprise de tester sur un vrai matériel ! Certainement plusieurs : différents constructeurs, différents opérateurs, différentes versions...Et au fil du temps, on s'aperçoit vite que l'open source n'a pas que du bon (aïe pas la tête !)

Pour vous aider, car vous ne pourrez sans doute pas acquérir tous les matériels du marché, il existe des solutions. Certaines très complètes et touchant toutes les plateformes (Perfecto Mobile) J'en citerais 3 dans cet article, dédiés à Android :


Liste autocomplétée : introduction

Il existe un composant nommé AutoCompleteView qui permet, sous Android mais aussi d'autres systèmes, de pouvoir filtrer le contenu présent dans un ensemble de données, en fonction de ce qu'est entrain d'écrire l'utilisateur dans une zone d'édition.

Ici l'exemple se base sur une partie serveur JSON/Struts, mais vous pouvez réaliser la même chose avec un fichier, une base de données...

Le principe de fonctionnement est ici :
http://www.grobmeier.de/android-autocomplete-with-json-data-served-by-struts-2-05122011.html