Initiation avancée à Android et Architecture
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).
Comprendre le concept des langages orientés objet et connaître le langage JAVA
- 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.
Logiciels utilisés
- Android 4.1 (Level 16)
- Eclipse Indigo
- plugin ADT v 19
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