Revoilà votre série hebdomadaire dédiée aux développeurs d’applications et professionnels d’Android. Nous espérons que vous avez passé de bonnes vacances, que vous vous êtes remis des nouveautés de Jelly Bean et que vous êtes ressourcés au maximum pour cette rentrée.

Pour ceux qui ne connaissent pas encore les Dev Sharing, il s’agit tout simplement d’un article qui recense 2 ou 3 tutoriaux découverts pendant la semaine, dont la qualité est correcte et que nous conseillons à tel ou tel profil de développeur (débutant, intermédiaire, expert, tous). Il peut s’agir également de trucs et astuces, d’une bibliothèque qui peut vous aider… Si vous souhaitez faire partager vos liens ou vos bibliothèques, n’hésitez pas à nous contacter via le formulaire dédié (http://www.frandroid.com/contact).

Bugdroid pro

Au sommaire pour cette rentrée :

  • optimisation du chargement des images,
  • gérer des interactions utilisateurs avec des composants dans les vues d’une liste,
  • partager des données entre application grâce au système des préférences,
  • une recommandation sur la bonne utilisation d’accès à la carte SD.


Charger, cacher et afficher…
Public : intermédiaire

Je vous parle bien évidemment des images dont le chargement est à optimiser si vous ne souhaitez pas fournir une très mauvaise expérience utilisateur !
Les problèmes de chargement des images vous pouvez les en rencontrer lorsque vous affichez des listes d’éléments notamment. Les problèmes peuvent être de plusieurs types :
– temps de chargement réseau (d’où l’intérêt de l’article)
– temps de rendu (utiliser alors les BitmapFactory.Options – http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html – pour optimiser le rendu)
– l’espace mémoire (vous utiliserez également des options de bitmap et penserez à bien nettoyer la mémoire de tous vos objets inutiles)

Lien : http://eclipsesource.com/blogs/2012/07/31/loading-caching-and-displaying-images-in-android-part-1/

 

Action dans la liste
Public : débutant


C’est une question que j’ai vu à plusieurs reprises sur des sites d’entraide, donc je pense que cet article devrait intéresser nombre d’entre vous, notamment les débutants sur la plateforme, et qui souhaite intégrer dans les lignes d’un Adapter des boutons, boutons radios ou cases à cocher. En effet, par défaut, si vous insérez un bouton – ou tout autre composant ayant une interaction avec l’utilisateur – ce dernier ne recevra jamais le focus et pire l’évènement de clic : la liste prenant directement le focus et empêchant le focus sur ses enfants.

http://www.dotnetcode.in/2012/08/enable-button-click-event-on-listview.html

 

La préférence est au partage
Public : débutant

Vous disposez de plusieurs applications et souhaitez partager des données simples entre elles. La première des solutions, la plus coûteuse est la création d’un ContentProvider : sa mise en place n’est pas forcément des plus aisée. La seconde, qui est présentée dans cet article, est tout simple d’utiliser le système des préférences partagées mis en place sous Android. Ceci vous permet de partager des informations entre applications avec un minimum de sécurité (comparativement à des données sauvegardées sur la carte SD par exemple). La limite se situant dans les informations que vous pourrez sauvegarder, limité à du texte dans une structure XML préformatée.

http://www.dotnetcode.in/2012/08/share-date-using-shared-preferences-in.html

Recommandation : attention à vos accès SDCard
Suite à une nouvelle modification du nom du répertoire utilisé par Android pour sauvegarder les informations sur l’espace de stockage utilisateur externe (SDCard, même s’il n’y a pas de sdcard physique), je vous rappelle que l’accès à “la carte mémoire” doit se faire en utilisant l’API et non en “hard codant” le chemin comme /mnt/sdcard ou bien encore /sdcard. La raison est simple : il s’agit ni plus ni moins d’un point de montage que les équipes de Google peuvent changer comme il l’ont déjà fait à deux reprises comme dernièrement sur Jelly Bean (passant de /mnt/sdcard à /storage/sdcard0) ! Utilisez donc de préférence la classe Environment – qui vous retournera le nom correct et éventuellement l’état du montage – présent ou non – ou appeler directement depuis un objet Context la méthode getExternalFilesDir par exemple.