Initiation avancée à Android et Architecture

Durée: 
5 jour(s)
Nombre de personnes: 
6 maximum
Lieu (ville ou aglomération): 
Nantes
Public (niveau): 
Développeurs voulant programmer des applications Android efficientes
Société dispensant la formation: 
Société agrée centre de formation
Conditions d'annulation: 
S'il y a moins de 3 personnes, la formation pourra être annulée par l'entreprise la donnant, en respectant un délai de 15 jours minimum avant la date prévue.
Objectifs: 

Objectif de l'initiation avancée

  • Être autonome dans la programmation Android
  • Maitriser les éléments du système (Activité, Service, Content Provider,…)
  • Utiliser les composants graphiques pour mettre en place des IHMs attractives
  • Savoir communiquer entre les différentes briques applicatives
  • Savoir communiquer avec les API système
  • Savoir communiquer avec des serveurs http via des services REST ou le bus http
  • Avoir les bonnes pratiques de programmation Android (Architecture,…)
  • Connaitre les évolutions du système

Objectifs de l’architecture

L’objectif de cette formation est de vous permettre de maitriser la mise en place de l’architecture d’un projet Android. Ainsi vous saurez :

  • Architecturer une application Android adaptée aux multi-screens et à la fragmentation ;
  • Connaitre les bonnes pratiques d’architecture du système pour obtenir des applications performantes, sensibles, fluides, sécurisées.

L’étude d’une application réelle permettra de comprendre et d’assimiler les différentes notions présentées.

Cette formation est compatible de Froyo (Level 8) à Ice Cream Sandwich et HoneyComb (Level 11 à 15). Toutes les explications sont compatibles avec ces différentes versions du système. Les travaux pratiques s’effectuent sous Gingerbread (Level 10).

Pré-requis: 

Comprendre le concept des langages orientés objet et connaître le langage JAVA

Méthode/Outils pédagogiques: 
  • Un formateur, Mathias Séguy, speaker Android international reconnu (Devoxx France, JCertif Africa, Eclipse Day,…), enseignant à l’université et dans les écoles d’ingénieurs, architecte Java (10 ans d’expérience), rédacteur sur Developpez.com.
  • Le eBook « Android A Complete Course » est offert à chaque participant.
  • Le support de cours (un classeur de cours rédigé) est offert à chaque participant.
  • L’ensemble des 30 projets « Android A Complete Tutorials Set » est offert à chaque participant.
  • Le soutien du formateur pendant un mois.
Outils utilisés: 

Logiciels utilisés

  • Android 4.1 (Level 16)
  • Eclipse Indigo
  • plugin ADT v 19
Programme détaillé: 

Initiation avancée

Première partie : ActivitéAndroid et le monde de l’IT

Qui est Android (Open Handset et versions du SDK)

  • Les chiffres principaux
  • La guerre des brevets

La programmation Android sous Eclipse

  • Mise en place de l’espace de travail
  • Le SDK Manager et l’AVD
  • Les différents wizards et outils Wysywyg
  • La perspective DDMS en détail
  • Utilisation du DebugMode et des trackers (Heap, Thread, Allocation, CPU)

Premiers pas

  • Règles de programmation Android
  • Vision globales des acteurs du système (Activity, Service, Intent, ContentProvider, BroadcastReceiver)
  • Structure d’un projet
  • Le fichier Manifest.xml
  • Le fichier des layouts, des strings
  • Code Java d’une activité et cycle de vie
  • Tester son développement

Eléments graphiques

  • Les éléments graphiques usuels (TextView, EditText, Button,…)

Les layouts (LinearLayout, RelativeLayout, TableLayout)

  • Les éléments graphiques complexes (ListView, SliddingDrawer, Gallery, GridView, Spinner, AutoCompleteText, ViewFlipper,)
  • Les fenêtres Dialog et Toast et customisation
  • Les menus contextuels et menus principaux

Gestions des activités

Cycle de vie des activités

  • Threads (Handler et AsyncTask)
  • Communication par Intents
  • Les ressources (String, Layout, Drawables, Xml, Raw, Dimensions, Couleur, Animations, Styles et thèmes)
  • Caractéristique de l’appareil et choix des ressources

Travaux pratiques

  • Mise en place de l'espace de travail.
  • Utilisation de la perspective DDMS
  • Mise en place d'une activité simple
  • Mise en place d'une activité complexe (avec thread, gestion des ressources, utilisation des styles,...)

Seconde partie : Autour de l’activité

Persistance des données

  • Gestion des préférences
  • Le système de fichier
  • Fichiers Xml
  • Utilisation des ContentProvider natif
  • Base de données locales SQLite
  • ContentProvider
  • Utilisation d’OrmLite

Services

  • Mise en place d’un service en mode start et en mode bound
  • La notification

Les permissions

  • Demande
  • Mise en place et sécurisation de son application
  • La classe Application
  • Travaux pratiques
  • Mise en place d'un ContentProvider lié à une base de données
  • Mise en place d'un service d'écoute de SMS.
  • Utilisation d'un ContentProvider natif (les Contacts)

Troisième partie : Autour de l’application

Communication avec un serveur web

  • via un web Service REST
  • via l'utilisation du bus HTTP
  • via la WebView

Quelques API du système

  • Les Capteurs
  • La géolocalisation et l’alerte de proximité
  • Le MapView
  • La gestion du Wifi

Packager l'application

  • Construire, signer et déployer son application
  • Bien écrire son fichier Manifest.xml

Un peu d’architecture :

  • Quelques DesignPattern
  • Les bonnes pratiques
  • Gérer le multi-screens
  • Résoudre la fragmentation

Rapide présentation des nouveautés d’HoneyComb et d’IceCreamSandwich

  • Fragments
  • ActionBar
  • SocialAPI
  • CalendarApi
  • WifiDirect
  • Home screen Widget
  • GridLayout

Travaux pratiques

  • Mise en place d'une activité écoutant un web Service REST
  • Une activité basée sur la webView
  • Construire et Déployer son application

Architecture

Architecture notions élémentaires

  • Design Patterns
  • Architecture d’application Stand Alone

Architecture Android Mettre en place une architecture pertinente :

  • Design Applicatif
  • Le modèle N-tiers Android
  • Le modèle MVC Android
  • Lutter efficacement contre la fragmentation
  • La classe Application
  • Un service Android est-il un service ?
  • Les Threads et FeedBack
  • Découpler vos dépendances
  • La gestion des exceptions

Protips Android

  • Les meilleurs ProTips des GoogleIO pour obtenir des applications d’excellence.

Étude de cas (TP) : Compréhension de la mise en place d’une bonne architecture au travers de l’architecture de l’application JCertif :

  • Installation du projet
  • Explication de l’architecture (étude du dossier d’architecture)
  • Les mains dans le code
  • Mise en place d’évolutions

Travaux pratiques

  • Mise en place et étude des différents patterns au niveau de l’application