février
2013
Début Janvier, j’ai animé la formation Android « Formation complète : Initiation Avancée, Architecture et Android 4″ sur Toulouse, en partenariat avec Makina Corpus. J’ai monté en compétence Mr Vincent Miellet, de la société Ludequip.
Cela faisait quelques mois que Vincent essayait de participer à une formation Android2EE et nous y sommes enfin arrivés! Ce fut une grande semaine pour nous deux.
L’accueil de Makina Corpus fut très agréable et amical. Notre repas nous attendait tous les midis, nous permettant de manger rapidement pour s’y remettre le plus vite possible. En cas de question de logistique Jean-Pierre Oliva était là pour nous donner un coup de main. Et l’ambiance était sereine, détendue, agréable.
Vincent et moi avons bossé comme des acharnés de 9h à 19h avec une petite pause déjeuner (1/2h-3/4h). C’était ce que l’on souhaitait, Vincent avait une furieuse envie d’apprendre et moi de communiquer mon savoir en sachant que 5 jours, c’est court. Du coup, en 5 jours, on a réussi à caler 43-45h de formation soit une journée de plus de 7h. Et oui, c’est aussi ça Android2EE, une motivation partagée par les stagiaires et le formateur
Vincent fut ravi par « l’adéquation de la formation à ses attentes », « la valeur ajoutée de la formation » et « les intérêts qu’il en retire pour les projets en cours ».
Les deux premiers jours furent très denses, comme d’habitude: Nous avons abordé l’ensemble des composants graphiques, leur placement, les conteneurs évolués, les multi-screens et la fragmentation, la gestion des ressources, du cycle de vie des activités (et les fuites mémoires), la persistance des données (ContentProvider, DAO, SharePreference…), les services, la notification, les BroadcastReceivers… Et tout s’est structuré, chaque notion se rangeant où il faut, tout devenant clair. Vincent me dira plus tard « Une semaine avant la formation, le système était complexe et flou et en fin de formation, tout est clair, posé. On a en tête tous les points clefs du système, les acteurs, leurs interactions, les éléments importants et ceux qui sont anecdotiques ».
Puis, nous avons abordé les éléments qui entourent l’application et comment inter-agir avec eux; communiquer avec un serveur, capteurs, géolocalisation, Map (et cette p****n de MapV2… excusez moi, ça m’a échappé mais franchement ça me fatigue les évolutions des services Google, parfois), wifi, packaging et delivery…
Il y avait les TPs, bien sûr, pour apprendre à bien utiliser les ressources, les listViews, les menus et les fenêtres de dialogue (PremierProject), les contentProviders (utilisation de celui des contacts et mise en place de notre propre contentProvider), un service d’écoute des SMS entrants, respectant la batterie, qui affiche une notification (compatible legacy, HoneyComb et JellyBean), la mise en place d’une utilisation d’un service Rest (le Forecast de Yahoo), l’utilisation des capteurs et du WebView… « Et ouais, ça a taffé grave » dirait mon côté développeur.
Et enfin, nous avons abordé la journée d’Architecture (Jour 4) : comment mettre en place des architectures propres pour développer une application bien structurée, évolutive, maintenable, adaptée au multi-versionning, au multi-screens et qui ne génère pas de fuites mémoires.
Bon, forcement, c’est une journée essentielle qui pour Vincent était la journée de loin la plus importante, car elle oblige à prendre du recul sur ses projets, à ne plus être un simple développeur, mais à se poser des questions d’architecte. Cette journée est d’autant plus importante que, concernant Android, il y a beaucoup de choses à comprendre pour bien architecturer son application: il y a des pro-tips qui si l’on ne vous les enseigne pas, vous ne les inventerez pas, des design patterns que vous avez oubliés depuis vos études… Nous avons passé l’après-midi à réfléchir à l’architecture à mettre en place sur ses projets. C’est au cours de cet après-midi là que nous avons trouvé comment empêcher un utilisateur de sortir d’une application (avec élégance).
Le 5° jour est arrivé, consacré à HoneyComb, Ice Cream et Jelly Bean. Au cours de cette journée nous apprenons, en particulier, à bien utiliser les Fragments, l’ActionBar et la mise en place de la navigation avec l’ActionBar. Nous abordons les choses de manière à savoir couvrir toutes les versions du système (bon, non, à partir d’Eclair, j’avoue tout). Vers 19h45, quand Vincent a réussi à faire marcher son TP sur les fragments, nous nous sommes quittés, ravis de notre semaine.
Il ne restait plus à Vincent qu’à rentrer chez lui avec 6-7 heures de route sous la pluie. Je salue ici sa motivation et je l’en remercie.
De mon côté, rencontrer Vincent fut très agréable. Il est arrivé avec trois projets Android sous le bras et tout un tas de questions. J’étais ravi de bondir sur ces projets et de trouver la conception la plus judicieuse à mettre en place, tant en termes de temps de développement qu’en termes de cohérence du code.
Une de ses interrogations était de savoir comment empêcher simplement l’utilisateur de sortir d’une activité… J’ai trouvé une solution simple et efficace qui prend peu de temps à mettre en place et ne nuit pas au projet. J’y ai réfléchi un bon moment avant de la trouver !
Une autre de ses questions concernait une application qui affiche des écrans qui s’enchaînent avec des images, des vidéos et du son. Nous avons mis en place une machine à état générique pour que durant le développement, il suffise de spécifier les images, les sons ou les vidéos de l’écran en fonction de l’état du système. Ce design permet de faire évoluer le jeu facilement tout en optimisant le temps de développement.
Ensuite, nous avons réfléchi à un jeu de type client-serveur mais le temps nous a manqué pour mettre en place une conception poussée…
Cela fait quelques mois déjà que j’explique le problème lié à la communication entre les activités et les services métiers d’une application Android. J’ai alors montré à Vincent la vidéo sur les architectures à mettre en place lorsque l’on utilise un service rest dans son application. Dans cette conférence, le speaker fait référence à une classe, la classe ServiceHelper, qui permettrait de simplifier tout le pattern. Malheureusement, cette classe n’existe pas et n’a jamais était implémentée.
Du coup, cette semaine, j’ai implémenté ce ServiceHelper et j’ai déposé le projet sur GitHub : ServiceHelper Git.
J’ai travaillé sur plusieurs projets:
- ServiceHelper1 qui est le projet dans lequel je montre comment mettre en place ce design pattern
- ServiceHelperLib qui est la librairie permettant de mettre en place ce pattern à moindre frais sur vos projets
- UsingServiceHelperLib qui est le projet d’exemple d’utilisation de la librairy ServiceHelperLib
Ce travail a débuté Samedi dernier, du coup, son état est minus alpha. De nombreuses features sont à rajouter pour qu’il soit facilement utilisable. Mais mes stagiaires, eux, comprendront immédiatement de quoi je parle et la solution que j’ai mis en place. J’explique tellement de long en large ce problème et sa résolution lors des formations !
Vincent a un savoir qui m’a beaucoup plu (par exemple pourquoi l’envoie de SMS est gratuit pour les opérateurs et pourquoi 160 caractères) et a posé des questions très pertinentes sur ce que je lui racontais. J’ai ainsi pris un très grand plaisir à lui apprendre le développement Android.
Les plus d’Android2EE ont beaucoup plu à Vincent : outre l’expertise, la pédagogie et la disponibilité du formateur (moi), les supports de cours (classeurs avec plus de 500 pages), les tutoriaux (55 tutoriaux expliquant comment mettre en place telle ou telle notion proprement), les clefs USB BugDroid contenant les articles, le livre « A Quick Course ». C’est toujours un plaisir de se faire couvrir de cadeaux utiles et passionnants quand on arrive dans une formation !
Prochaines formations Android2EE sur
Paris du 18 au 22 Mars et du 15 au 19 Avril en partenariat avec Zenika (et oui, excusez du peu, ils sont sponsors DevoxxFr je rappelle:) ou
du 27 au 31 Mai sur Toulouse en partenariat avec Makina Corpus, leader dans le monde de l’open source,
Alors, vous aussi devenez un dieu en programmation Android.
A bientôt pour de nouvelles aventures !
Mathias Séguy
mathias.seguy@android2ee.com
Fondateur Android2EE
Formation – Expertise – Consulting Android.
Ebooks pour apprendre la programmation sous Android.
Retrouvez moi sur Google+
Suivez moi sur Twitter
Rejoignez mon réseau LinkedIn ou Viadeo
Référence Android
Mots-clés
Archives
- mars 2015
- février 2015
- janvier 2015
- mai 2014
- mars 2014
- janvier 2014
- décembre 2013
- novembre 2013
- septembre 2013
- mai 2013
- mars 2013
- février 2013
- janvier 2013
- décembre 2012
- novembre 2012
- octobre 2012
- septembre 2012
- août 2012
- mai 2012
- avril 2012
- mars 2012
- janvier 2012
- décembre 2011
- novembre 2011
- septembre 2011