samedi 31 décembre 2011

Prise de photo automatique

Prendre une photo, utiliser les timers, enregistrer des images sur la carte mémoire : voici ce que vous aurez l'occasion de découvrir à travers cet article.

L'auteur vous partage son code permettant de prendre à intervalle régulier des photos de manière automatique.

La démarche est bien expliquée, le code un peu moins.

http://mobiledevtuts.com/android/android-sdk-how-to-make-an-automatic-snapshot-android-app/



MVC Android : décryptage de l'architecture

Voici une suite d'article, dont le dernier d'une série de 9, vient d'être publier par son auteur.
A travers des exemples concrets, tel un développeur découvrant la plateforme, l'ensemble de ces articles vous fera découvrir l'architecture d'un projet Android, l'ensemble des concepts liés au MVC...

Une véritable source d'information pour les personnes désireuses de connaître la plateforme Android d'un point de vue architecture logiciel.


Utiliser Maps efficacement

Envie d'utiliser Google Maps et la géolocalisation dans votre application. Ce tutorial sera vous guider à travers toutes les étapes pour concevoir et réaliser une application contenant :
- l'affichage d'une carte Google Maps
- afficher votre positionnement

Astuce  : pensez à définir une clé d'enregistrement Maps pour votre clé de signature de debug mais également pour votre application qui sera distribuée sur l'Android Market (les signatures étant différentes, les clés maps le seront également)

http://mobile.tutsplus.com/tutorials/android/android-sdk-build-a-mall-finder-app-mapview-location/


jeudi 29 décembre 2011

Solution mobile : indispensable en entreprise

Un article publié sur "le journal de la mobilité" donne les informations sur les besoins pour une entreprise de se doter d'une vraie solution mobile, notamment pour les CRM et ERP.

Doter son personnel d'une solution mobile efficace en liaison direct avec le système d'information de l'entreprise apporte de nombreux points forts permettant une augmentation de la rentabilité et des volumes de ventes avec un gain de temps non négligeable.

Décideur, cet article est pour vous !

http://www.lejournaldelamobilite.com/2011/12/28/adopter-des-solutions-mobiles-metiers-crmerp-en-entreprise/

TechnoTalkative : une bonne source de tutoriaux Android

A plusieurs reprises, nous avons publié des articles faisant référence au site TechnoTalkative détenu par  Paresh Mayani.

Destiné à tous les types de profils de développeur, cette source sera vous apprendre de nombreuses composantes de l'API Android de manière claire et précise.

Paresh est également ouvert à tout commentaire permettant d'améliorer certains tutoriaux donc si vous souhaitez apporter votre collaboration n'hésitez pas à poster un commentaire sur l'un de ces nombreux articles, il vous répondra sans hésitation.

http://www.technotalkative.com/android/

mercredi 28 décembre 2011

Utiliser SQLite sous Android

Si vous désirez sauvegarder des données de manière persistante dans votre application vous pouvez utiliser un système de fichier simple, les SharedPreferences ou encore profiter du moteur de base de données SQLite disponible en natif sous Android (également sous iOS).

Le tutorial présenté ici sera vous donné des pistes de réflexion et d'implémentation pour vos besoins en reprenant la démarche standard. On regrettera cependant le manque de détails fourni par l'auteur.

http://agiliq.com/blog/2011/12/using-sqlite-database-with-android/


Ressources graphiques pour Android

Vous devez concevoir des interfaces pour des applications Android ? Ce lien recense un ensemble de ressources graphiques (pdf, png, psd...) que vous pourrez réutiliser à travers différents outils afin de designer l'interface graphique de votre prochaine application...
Il ne restera plus qu'à la développer :)

http://www.queness.com/community-news/10299/20-useful-tools-stencils-and-gui-kits-for-android-developers


Chargement d'images distantes

Charger des images distantes est quelque chose de courant lorsqu'on affiche des contenus distants. Pour cela, il est nécessaire d'avoir recours à des processus asynchrone afin d'éviter le blocage de l'interface graphique.

Android dispose dans son API depuis la version 1.5 (API Level 2) d'une classe nommée AsyncTask et c'est cette dernière que l'auteur du tutorial essaie de mettre en pratique par l'exemple.

Un thread n'a normalement pas accès à l'UI de l'application fonctionnant dans son propre Thread. Il est donc nécessaire (sans passer par AsyncTask) de créer un système de message et de Handler permettant d'accès à l'interface. Le code peut vite de devenir difficile à maintenir et ce que AsyncTask simplifie, sans pour autant diminuer les performances ou augmenter la mémoire.

http://www.technotalkative.com/android-load-image-from-web/


mardi 27 décembre 2011

Parsing XML avec un Handler

[Débutant/Intermédiaire]
Nous avions déjà parlé du parsing XML sur Android. Voici un second tutorial complétant le premier...
Maintenant vous n'avez plus d'excuses pour ne pas parser un flux XML.

Cependant, nous tenons à préciser que pour l'échange de données avec des serveurs nous préférerons utiliser des flux JSON pour deux raisons principales :
- un flux JSON est beaucoup moins verbeux, donc moins de données en transit (tous les forfaits ne sont pas illimités en data et la difficultés de réception sur certaines zones est toujours d'actualités)
- Android dispose de classe spécifique à la lecture et écriture de flux JSON  en objet Java

http://mobile.tutsplus.com/tutorials/android/android-sdk-build-a-simple-sax-parser/


lundi 26 décembre 2011

Google Image API dans votre application

Google met à disposition des développeurs une API permettant d'utiliser leur moteur de recherche
d'image.
Le tutorial ici présenté vous aidera à utiliser la Google Image API tout en abordant des concepts tels que les tâches asynchrone (évitant un blocage de votre interface), parsing JSON et ListView.

http://www.technotalkative.com/android-google-image-search-api-example-json-parsing-web-api-call-demo/


Utiliser un sélectionneur de date

Pour permettre à l'utilisateur de votre application de sélectionner une date vous pouvez utiliser le DatePickerDialog : simple à intégrer dans votre code (Java) ce composant affiché sous forme d'une boite de dialogue disposera automatiquement des zones de saisie et boutons pour définir une date spécifique.

Sachez que vous pourrez utiliser le même genre de composant pour une sélection d'heure grâce au TimeDialogPicker.

Le tutorial contient quelques erreurs dans le code XML dans lequel toutes les majuscules ont été supprimées (TextView, Button, LinearLayout...).

http://www.technotalkative.com/android-datepickerdialog-example/





Conseils pour le développement de jeu

[Débutant/Intermédiaire/Avancé]
Développer est une chose, concevoir en est une autre. Le développement d'application est bien différent de celui d'un jeu, qui requiert d'autres approches et d'autres compétences.
Avant de développer un jeu, il faut savoir respecter les règles fondamentales de la conception d'un jeu et c'est ce vers quoi cet excellent article tente de vous amener : concevoir en bon et du forme un jeu pour mobile Android.

http://www.informit.com/articles/article.aspx?p=1806940&seqNum=1


Reverse engineering Android

Le "reverse engineering" est une méthode permettant de retrouver un code source à partir d'un fichier binaire. Ce petit article vous indiquera comment obtenir le code source d'une application APK.
Bien entendu, il n'est pas question d'utiliser cette méthode pour vous permettre de "hacker" une application. A utiliser uniquement pour récupérer un code dont vous auriez perdu le code source par exemple.

Vous verrez que cela est simple...et efficace.

http://genitravel.blogspot.com/2011/12/objective-c-from-java-developer.html


Introduction à l'objective C pour les développeurs Android

[Débutant]
Un article original sur notre blog mais que nous pensons intéressant, notamment pour vous, développeurs Java et Android, si vous avez besoin de porter une application iOS sur Android.
Bien sûr, il n'est pas question de vous former au langage de développement de la Pomme, mais de vous donner des comparaisons, par l'exemple, de bout de code iOS et Java, afin que vous puissiez vous y retrouver un minimum dans les algorithmes d'un projet iOS....bon courage !

http://genitravel.blogspot.com/2011/12/objective-c-from-java-developer.html


UX : bonne pratique Android

Un nouvel article sur les bonnes pratiques à avoir dans la conception et réalisation des interfaces homme machine de vos applications Android.
Reprenant le concept de différentes applications, cet article vous informe des composants à mettre en place pour une application réussie.

http://java.dzone.com/articles/what-should-android-apps-look

Développer un cadran téléphonique...à l'ancienne

[Intermédiaire/Avancé]
Nos smartphones et tablettes Android disposent d'un clavier (numéroté de 0 à 9...) mais il fut un temps où les téléphones disposés d'un cadran en plastique, que nous devions faire tourné selon un certain angle pour pouvoir composer un numéro de téléphone à 6, 8 puis 10 chiffres...
Ce type de cadran est disponible sous forme d'application sur l'Android Market (mais pas que)...Apprenez à réaliser ce type d'application.

http://mobile.tutsplus.com/tutorials/android/android-sdk-creating-a-rotating-dialer/


vendredi 16 décembre 2011

Utiliser un menu contextuel

[Niveau débutant]
Sur bien des systèmes d'exploitation, nous disposons de menu contextuel pour afficher des fonctionnalités liés à un composant en cours d'affichage. Il est très souvent accessible par un clic droit sur le composant visé.
Android nous propose également la possibilité de disposer de menus contextuels appelés ContextMenu et accessible par un appui long sur le composant graphique (ah bon, je ne peux pas faire de clic auriculaire??).

http://mobile.tutsplus.com/tutorials/android/android-sdk-context-menus/



Google se lance dans la formation Android

Le titre est "pompeux" :) l'équipe Android vient juste d'annoncer qu'elle allait mettre à disposition tout un tas de tutoriaux et de guide pratique pour aider les (nouveaux) développeurs à prendre en main la plateforme.

Sur ce qui est déjà en place, il ne s'agit ni plus ni moins d'articles déjà existants dans les différentes pages de developer.android.com, remises au goût du jour...mais d'autres articles devraient venir prochainement alimenter cette source "officielle" de formation :)

https://developer.android.com/training/index.html

Drag and Drop dans vos applications

[Intermédiaire]
La version 3.x d'Android (Honeycomb) a apporté la gestion du drag and drop (cliquer / déplacer) au niveau de l'API OnTouchListener.

Ce tutorial simple vous indiquera comment mettre en oeuvre cette fonctionnalité dans vos applications (Android 3 et supérieures uniquement).

http://www.javacodegeeks.com/2011/12/android-drag-and-drop-tutorial.html


jeudi 15 décembre 2011

Parser vos contenus XML

Android dispose des librairies SAX et DOM pour le parsing de flux XML.
Les performances de SAX ne sont plus à démontrer. Sous Android c'est la même chose et il s'agit tout simplement de la librairie de la fondation Apache.
Apprendre à parser son flux XML par l'exemple

http://examples.javacodegeeks.com/android/core/xml/parsing-xml-with-sax


Conseils de publication d'une application sur le market

Développer une application de qualité ne fera pas forcément un grand nombre de téléchargement. L'utilisateur ne pourra tester votre application que s'il souhaite la télécharger. Les informations de description de votre application, l'icône, les captures d'écran doivent avoir un impact sur l'utilisateur !
Pensez donc à soigner votre publication...
Quelques conseils (loin d'être complets) :
http://www.broculos.net/en/article/android-101-publish-android-market

Créer un Dashboard Android

De nombreuses applications reprennent en page d'accueil un affichage sous forme de tableau de bord, nommé Dashboard, présentant sous forme d'icône les grandes fonctionnalités disponibles dans l'application.

Bien que les équipes d'Android est recommandé ce type de présentation dans un article, il n'existe aucun composant intégré dans la plateforme permettant de générer de ce type d'écran simplement. Il est donc nécessaire de devoir le développer. Pourquoi ne pas se créer une petite librairie, que vous pourrez par la suite réutiliser sur tous vos projets ?

Il sera d'abord nécessaire de pouvoir générer ce type d'écran quelque soit la définition de l'écran...Voilà, qu'un tutorial très bien détaillé vous aidera à réaliser ce que vous souhaitez.

http://www.androidhive.info/2011/12/android-dashboard-design-tutorial/


Développer un widget StackView pour Honeycomb

La version 3.x (dédiée aux tablettes) a inclus de nouveaux composants graphiques qu'il est possible d'intégrer dans ses widgets (applications que vous installez directement sur le bureau du téléphone, Home).

L'un d'entre eux est appelé StackView (documentation officielle) et sa représentation graphique est la suivante :

Vous trouverez un tutorial complet vous décrivant mettre en oeuvre ce type de composant et interagir avec l'utilisateur, en intégrant un service de contrôle.



mercredi 14 décembre 2011

Tester l'accéléromètre et le sensor dans votre émulateur

Bien que le SDK Android comporte de nombreux outils permettant de tester et optimiser ses applications, et que ces derniers évoluent de version en version (comme l'intégration de la gestion d'une webcam pour émuler l'appareil photo d'un matériel Android) il manque toujours la possibilité de tester tout ce qui touchent les capteurs de type accéléromètre, compass...

OpenIntent a créé au début du lancement d'Android un programme Java à faire tourner sur votre environnement de développement et qui enverra les informations à l'émulateur en cours d'éxecution.
Une mise à jour du programme venant de voir le jour, c'était l'occasion d'en parler

http://www.openintents.org/en/node/23


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