Cette présentation a été faite en Mai 2012 au CocoaHeads Toulouse par Mathias Seguy de l'entreprise Android2EE.
Elle présente de manière très générale Android à des développeurs iOs.
Cette présentation est une présentation d’Android2EE, entreprise spécialisée dans l’expertise, le consulting et la formation Android. Vous souhaitez apprendre la programmation Android, Android2EE vous accompagne au-travers ses EBooks ou ses formations.
Laissez moi vous raconter mon histoire concernant cette entreprise. En 2010, je me suis penché sur la technologie Android, j’ai écrit trois EBooks sur l’art de la programmation Android (disponible sur Android2EE). J’ai quitté ma précédente entreprise et j’ai créé l’entreprise Android2EE (Android To Enterprise Edition) dont l’objectif est la formation, l’expertise et le consulting Android. J’ai quelques contrats en tant que consultant et aussi en tant que formateur. J’ai monté un ensemble de formations Android pour les entreprises:
Formation Initiale : Devenir autonome (3j).
Formation Approfondissement (2j).
Formation Spécificité Tablette et Graphisme(2j).
Formation Applications complexes (2j).
Formation chef de projet - responsable technique (1j).
Formation Mutlimédia (2j).
Formation sur mesure (2 à 3j).
Je pratique ces formations en donnant des cours dans les universités et les écoles d’ingénieurs de Toulouse ainsi que dans de grandes conférences Java:
CESI-EXIA, EPITECH, Sup-Info, IUP ISI, InfoSup, IUP SI, IUP ISI, IngeSup, INSA
Et bien sûr: Devoxx France (LA conférence Java française de 2012), Mercredi 18 Avril 2012,
Et
JCertif Afrique 2012 (LA conférence Java du continent Africain) Septembre 2012 Conférence et Cours
Enfin, j’ai investi l’espace numérique, voici quelques uns des ces sites:
http://www.android2ee.com/
http://mathias-seguy.developpez.com/
http://blog.developpez.com/android2ee-mathias-seguy/
http://android2ee.blogspot.com/
La critique de mon livre « Android A Complete course » par developpez.com (dont je ne suis pas peu fier, quand même):
http://android.developpez.com/livres/#L9791090388000
J’ai des articles sur Developpez.com concernant Android.
Ah oui, j’oubliais, mon cv se trouve ici (si jamais) : http://mathias-seguy.developpez.com/MathiasSeguyCV201106/
2. •Qui est Android •Un cas concret:
•Android et le monde de l’IT •Projet initial
•Invasion de la mobilité •Le code
•GooglePlay moteur de l’adoption •Amélioration
•The patents war •Le code
•Programmation Android •La diversité
•Règles •Multi-screens
•Acteurs principaux du système •Hétérogénéité
•Structure d’un projet
2
3. Formateur Consultant Expert Android
mathias.seguy.it@gmail.com (mail)
@android2ee (twitter)
Auteur d’EBooks sur la programmation Android (Android2ee.com)
Conférencier et Enseignant Android
Docteur en Mathématiques Fondamentales
Expert Technique de l'Agence Nationale de la Recherche
Rédacteur sur Developpez.com
Blogs Android : Android2EE sur DVP et Android2ee sur BlogSpot
Doctorat
Mathématiques Naissance
Fondamentale Via CapGemini Via Sopra Android2EE
Siemens Magnus DGA CNES Airbus Airbus Airbus STI Android2
VDO EE
03 04 05 06 07 08 09 10 11 12
Java J2EE
Android
Leader Manager Manager Leader Directeur Fondateur
IHM Leader Leader Manager Technique Technique Android2EE
Développeu Développeu
r r Technique Technique
Master Informatique Chez STI
de l’ENSEEIHT
3
8. Invasion de la mobilité via les
smartphones:
Le taux de pénétration des
smartphones est exceptionnel,
tant part sa valeur actuelle que
par la rapidité de sa
progression.
• 486M de smartphones vendus
en 2011.
• 27% du parc mondial.
Android, l’OS Winner !
En quatre ans, Android est
devenu leader mondial du
système d’exploitation des
smartphones, en terme de stock
et en terme de vente.
8
9. GooglePlay (AndroidMarket) versus AppleStore,
la guerre du Market.
• Le nombre d’applications sur GooglePlay est en hausse
permanente.
• + 17 391 % en 3 ans
• + 320 % en 1 an
• Le nombre d’applications téléchargées a pour unité le
milliard.
• +500% sur 1 an
• 10 000 000 000 de downloads !
Cette dynamique est la clef de réussite de la plateforme, le
facteur d’adoption.
9
10. La guerre des brevets fait rage dans les grands comptes de l’IT. Depuis
l’été 2011, cette guerre fait des ravages dans le monde entier. Le système
Android est attaqué par le trio Microsoft-Apple-Oracle et se défend:
Apple versus Android : La guerre froide
Ces deux-là se mènent une guerre non frontale: Apple attaque les
constructeurs et Google rachète Motorola pour 8.6B$.
Apple versus HTC et Samsung: La guerre des tribunaux.
Interdiction du GalaxyTab en Australie, plainte en Europe et aux Etats
Unis… (Depuis peu demande un accord « amiable » entre 5 et 15$ par
unité).
Microsoft versus Android: La guerre des gangs.
Microsoft a su imposer une redevance (5$) à Samsung et à HTC pour
chaque unité Android vendue.
Oracle Versus Android : l’open-guerre
Quand l’open source fait la guerre à
l’open source…
Plainte déposée par Oracle en 2010 (le procès
Est en cours… à suivre).
Vidyanand Kamat/Forbes India
10
12. Respecter ses données,
Respecter sa confidentialité.
Respecter le CPU,
Respecter la batterie,
Respecter la mémoire.
Respecter la charte graphique Android,
Respecter les bonnes pratiques du système.
…
12
13. : Ce sont les programmes vu par l’utilisateur. : Les services ont une durée de vie potentiellement
Ils possèdent une I.H.M. infinie (contrairement aux activités et aux fournisseurs de
données). Ce sont des processus qui tournent dans la
: Ils offrent un niveau d’abstraction même Thread que l’application sans IHM.
pour l’accès à toutes les données stockées sur : Ce sont des messages systèmes qui servent de
le terminal. Les données sont identifiées au support événementiel pour permettre le dialogue entre
moyen d’URI (Unified Ressources Identifier). applications. On répond et on envoie des intentions qui
lancent ou communiquent avec les activités.
Listen Service
Listen
BroadCastReceiver Bind
Activity
StartActivity ContentResolver.action(URI,…)
CRUD
operation
return
URI
ContentProvider
Send
Intent Find ContentProvider
13
14. Un projet Android simple contient les dossiers:
pour les sources Java
pour les sources générées à partir du dossier res
pour les dossiers de ressources:
pour les images
pour la définition des composants graphiques
pour les chaînes de caractères
ainsi que le fichier qui est le centre névralgique de votre
application. Il décrit les besoins de votre application, en termes de SDK, de
compatibilité matérielle, d’API utilisées et d’utilisation de services du
système. Il décrit ce qu’offre votre application au système (Activity,
ContentProvider, Service…), et les éléments auxquels votre application
réagit au moyen des IntentFilters et d’URI ainsi que les permissions
nécessaire pour les utiliser.
14
16. Cette application permet d’ajouter des items à une liste d’items.
Il y a :
• Un titre
• Une zone d’édition
• Un bouton Ajouter
• Une liste contenant les éléments ajouter
Allons voir le projet:
• Le fichier des layouts qui définit l’IHM,
• La classe Java
• Le fichier Manifest
16
17. On obtient simplement cette application, en ajoutant à l’application précédente:
• Une gestion des couleurs
• Une gestion des dimensions
• Une gestion de la forme des éléments graphiques
• Une gestion des styles
Allons voir le fichier:
• Des dimensions et celui des couleurs
• Des styles
• Des formes
17
19. Le problème est simple : 4 densités d’écran différentes pour 4 tailles d’écran différentes soit 16 configurations.
Il faut alors:
•Définir les composants dans des tailles indépendantes de la densité de l’écran;
•Définir pour chaque image, 4 tailles d’image différentes (3|4|6|8);
•Définir des layouts différents en fonction des tailles des écrans.
LDPI MDPI HDPI XHDPI
LDPI MDPI HDPI XHDPI ≈120DPI ≈160DPI ≈240DPI ≈320DPI
≈120DPI ≈160DPI ≈240DPI ≈320DPI Small
1.7% 2.4%
Screen
Small
QVGA (240×320) 480x640 Normal
0.7% 18.5% 66.3% 2.5%
Screen Screen
WQVGA400 Large
Normal (240×400) HVGA (320×480)
WVGA800(480×800)
Screen
0.2% 2.8%
WVGA854(480×854) 640x960
WQVGA432 HTC-GI
Screen (240×432)
600x1024
Extra Large
4.9%
WVGA800** WVGA800* Screen
Large (480x800) (480×800) TV720p TV1080p
WVGA854** WVGA854* (1280×720) (1980×1080) http://developer.android.co
Screen (480x854) (480×854) m/resources/dashboard/scr
eens.html
Extra Large WXGA (1280×800) 1536x1152 2048x1536
1024x600 1024x768 1920x1152 2560x1536
Screen 1280x768 1920x1200 2560x1600
http://developer.android.co
m/guide/practices/screens_
support.html
Exemple:
480*800 HDPI GalaxySII
1280*800 Galaxy Note WXGA
1024*600 WSVGA Galaxy Tab
19
20. L’hétérogénéité des versions et des appareils génère la problématique rencontrée par les développeurs pour couvrir
l’ensemble des versions du système, des appareils du marché, avec une même application, un même code…
C’est l’enfer :
• De l’apprentissage des nouvelles API, des bonnes pratiques qui s’enchainent,
• De la mise à jour des applications existantes, des tests et des refactoring…
• Des bugs spécifiques à un appareil, à une version…
• De la complexité du code qui s’envole pour couvrir tous les cas.
Effectivement, c’est l’horreur surtout depuis la rupture HoneyComb.
D’un autre côté, c’est la conséquence directe:
• De l’adoption d’Android par un grands nombre de constructeurs,
• Du dynamisme des développeurs Google du SDK d’Android qui cherchent à atteindre la perfection.
Alors arrêtons de nous plaindre. C’est une opportunité, sachons en profiter.
http://developer.android.com/resourc
es/dashboard/platform-versions.html
20
23. Cette conférence utilise les références suivantes:
• Les EBooks et tutoriels d’Android2ee : http://www.android2ee.com
• Les sites de référence Android:
• http://developer.android.com/index.html
• http://android-developers.blogspot.fr/
• http://www.google.com/events/io/2011/sessions.html
• La charte graphique Android (Android Design): http://developer.android.com/design/index.html
Sur Android2ee, vous trouverez les tutoriels libres suivants pour approfondir les notions présentées:
• Les capteurs
• Les thread de traitement (Handler et fuite mémoire)
• Les AppWidgets
• Construction dynamique d’IHM
• Service REST
• Lecteur de flux RSS
• Le fichier POM pour mavéniser vos projets
• Comment préparer ses livraisons sur GooglePlay
Sur developpez.com vous trouverez les articles suivants:
•Déployer son application Android et obtenir sa clef MapView.
•Construire dynamiquement ses IHM Android
•Les capteurs Android
•Thread, Handler, AsyncTask et fuites mémoires
•Investir l'écran d'accueil Android avec les AppWidgets
•Android, Livrer son projet sur GooglePlay
23
24. .
Merci pour votre attention.
android2ee.com. Et rendez-vous à :
#android2ee L’Eclipse Day Toulouse le
24 Mai
mathias.seguy.it@gmail.com Ou à Brazzaville
MySensors, MyLight et MyTorch En Septembre
disponible sur GooglePlay
24