Exposé de la première séance de formation en programmation mobile sous Android, animée par Med Hossam (Elève Ingénieur en GLSI à l'ISI)
[Atelier Mobile]
Mobilisez-vous, le web est de plus en plus ... Mobile - Petit déjeuner du 27 ...
Formation Android (Initiation à la programmation sous Android)
1. Initiation à la Prog. Sous Android
(Session 1)
med.hossam@gmail.com
2. Plan
Statistiques
Différences entre Mobile App, Mobile Site et Web App
Développement pour terminaux mobiles
Outils de développement pour Android
Android : Architecture générale
Premier Projet Android
Composants d'une application Android
Bonnes Pratiques
16 Mai 2015 med.hossam@gmail.com 2
6. Différences entre Mobile App, Mobile Site et Web App
Qu’est ce qu’une application mobile ?
Une application mobile est une application développée
spécifiquement pour une plate-forme.
• Par exemple: une application iPhone sera développée en utilisant un
langage de développement propre à Apple et disponible uniquement
sur l’App Store.
16 Mai 2015 6med.hossam@gmail.com
7. Différences entre Mobile App, Mobile Site et Web App
Qu'est ce qu'une Web App ?
Une Web App est un site mobile enrichi.
L’ergonomie est de meilleure qualité afin de rivaliser avec celle
obtenue via les applications mobiles.
Les Web Apps sont encore très peu connues du grand public mais, ont
un potentiel de croissance intéressant, car elles permettent d’avoir une
application disponible sur plusieurs plates-formes.
16 Mai 2015 7med.hossam@gmail.com
8. Différences entre Mobile App, Mobile Site et Web App
Qu'est ce qu'un Site Mobile ?
Un site mobile est un site internet qui est optimisé pour les
smartphones. Afin de consulter un site mobile, on doit être connecté à
l'internet et on y accède via le navigateur web du smartphone.
Le référencement est primordial, de la même manière qu'un site
web. Le langage de développement est également similaire à celui
utilisé pour développer un site internet.
16 Mai 2015 8med.hossam@gmail.com
9. Pourquoi développer une application mobile ?
Pour les novices et passionné(e)s
• Maîtrise de nouveaux langages de programmation
• Développer des nouvelles compétences
• Développer sa propre application
• Obtenir une rémunération ponctuelle ou récurrente
16 Mai 2015 9med.hossam@gmail.com
10. Pourquoi développer une application mobile ?
Pour les professionnels
• L’application augmente l’accessibilité au site
• L’application permet de générer du trafic
• Le marché est en pleine croissance
• Une application contribue à l’image de marque
16 Mai 2015 10med.hossam@gmail.com
11. Comment réussir son application mobile ?
Les règles d’or à retenir :
• Définition de la cible marketing
• Définition du concept
• La richesse et l'intérêt du contenu
• Originalité de l'application
• Le côté addictif (pour les jeux)
• La force de la communauté, la sécurité, le confort d’utilisation.
16 Mai 2015 11med.hossam@gmail.com
12. Développement pour terminaux mobiles
• Historiquement, développement en code C/C++ de bas niveau
oBesoin de comprendre et connaitre le HW
• J2ME
oJVM fournit une abstraction du HW
o(+) Développement en externe
o(–) Accès restreint au HW
16 Mai 2015 med.hossam@gmail.com 12
13. Développement pour terminaux mobiles : Android
• Android fait partie d’une nouvelle vague de système d’exploitation
conçus pour du HW plus performant
16 Mai 2015 med.hossam@gmail.com 13
14. Android déjà 8 ans !!
Annoncé officiellement le 5 novembre 2007
16 Mai 2015 14med.hossam@gmail.com
15. Android EN QUELQUES MOTS
• Plate-forme complète Open Source pour appareils mobiles (Smartphones,
PDA, tablettes...)
o code source disponible : http://source.android.com/
o fork de la SDK sous licence : http://developer.android.com/sdk/terms.html
o Android n'est pas complètement libre (utilisation de bibliothèque propriétaire)
• Conçu par Android en 2003, une startup rachetée par Google en 2005, et
annoncé officiellement en 11/2007.
• Basé sur le noyau Linux
16 Mai 2015 15med.hossam@gmail.com
18. Plate-forme de téléchargement
• Android Market (Play Store)
• Crée par Google depuis le 22 octobre 2008
• 1.43 Millions d’application en 2014
16 Mai 2015 18med.hossam@gmail.com
19. Modèle économique
• $25 pour un compte développeur.
• Revenues d’applications payantes divisés :
• 70% au propriétaire
• 30% à Google.
• Les revenus redistribués via « Google Checkout ».
16 Mai 2015 19med.hossam@gmail.com
21. Outils de développement pour Android
• Android SDK
o Google a fournit un kit de développement (SDK) gratuit qui permet de
développer des applications spécifiques de la téléphonie mobile à mettre
en œuvre sur la plate-forme.
• Android Studio
o Environnement de développement intégré dédié au développement des
applications Android, annoncé officiellement le 16 mai 2013 à la
conférence Google I/O. Disponible gratuitement sous la licence Apache 2.0
16 Mai 2015 21med.hossam@gmail.com
22. Autre IDE
16 Mai 2015 med.hossam@gmail.com 22
• Eclipse : libre, extensible, universel et polyvalent, permet de créer des projets
de développement mettant en œuvre n'importe quel langage de
programmation.
• IntelliJ IDEA : Apporte un support avancé pour la gestion de projet sous
Android. Langage Java.
• MoSync : IDE basé sur Eclipse, permet de pouvoir gérer des projets sous
différents OS Mobiles comme Android, iOS, BB. Langage C++,HTML 5 Javascript
• Titanium Studio : Basé sur Aptana (Eclipse), intègre facilement les
bibliothèques JS, supporte le PHP et Ruby. Langage: JavaScript.
• Visual Studio : l’IDE populaire de Microsoft, supporte le développement des
applications Android dès la version 2015. Langage : HTML5, JavaScript, C#.
23. Emulateurs pour Android
• Android Virtual Device (AVD)
o Emulateur basique, intégré avec le Android SDK. Son inconvénient majeur
est la rapidité de fonctionnement.
• Genymotion
o Emulateur Android très rapide et fluide, se fonctionne avec Virtual Box.
o Préférable et recommandé pour tester vos applications Android.
16 Mai 2015 23med.hossam@gmail.com
24. JVM vs Dalvik VM
16 Mai 2015 med.hossam@gmail.com 24
27. Composants d'une application Android
• Activity
• Service
• Content Provider
• Intent
• Broadcast Receiver
• Notification
16 Mai 2015 med.hossam@gmail.com 27
28. Intent ?
16 Mai 2015 med.hossam@gmail.com 28
Activity
Correspond à un écran
Service
Processus de fond
Broadcast Receiver
Intercepte les évènements
Content Provider
Accès aux données & res
Intent
30. Cycle de vie d’une Activity
16 Mai 2015 med.hossam@gmail.com 30
Source : http://developer.android.com/training/basics/activity-lifecycle/starting.html
34. Bonnes Pratiques (Best Practices)
• Utilisation de l'Action Bar
• Utilisation de la Navigation
• Utilisation des Notifications ( ne pas en abuser)
• Ajouter des animations
• Ajouter une SearchView si possible.
• Utilisation des Gestures
• Le Thread UI doit pouvoir répondre à tout moment
• Supporter les différentes tailles d'écrans
• Utilisation des tâches de fond (Service, Thread) pour les traitements lourds
• etc.
16 Mai 2015 med.hossam@gmail.com 34
All List at : http://developer.android.com/training/best-ux.html
35. Bonnes pratiques : Tailles des écrans
16 Mai 2015 med.hossam@gmail.com 35
Source : http://developer.android.com/design/style/iconography.html