Introduction à Android - Mars 2012

Aurélien Guillard
Aurélien GuillardAndroid Lead Developper à Karos
Introduction au développement d'applications mobiles
Ma formation, mon expérience, mon
entreprise
Présentation
Aurélien Guillard
Développeur Mobile multiplateforme
Android
Blackberry
iPhone
J2ME

Contact
aurelien.guillard@gmail.com
aguillard@viadeoteam.com
http://www.aurelienguillard.com
Twitter : @rorolepro (oui, je sais, ce pseudo est ridicule)
Expériences professionnelles
Acutellement : Viadeo (Android, BlackBerry)

2010 : Clicmobile (Android, iPhone, Blackberry, J2ME)

2009 : Latin 3G S.A. de C.V. (Android)

2008 : GAROS (web)

2007 : e-doceo (ActionScript)

2006 : SA2EI (web)
Viadeo
40 millions de membres
1 million de nouveaux
membres par mois
7 langues

Des locaux sur toute la planète
Paris, San Francisco, New Delhi, Beijing, Amsterdam, Madrid,
Moscou, Casablanca, Londres, Barcelone, Milan, Dakar, Mexico

400% de croissance ces 2 dernières années
400 salariés
3 marques :
Viadeo et moi
Inscrit depuis Février 2009
3500 visites sur mon profil
Environ 3 opportunités professionnelles par semaine
Mes 2 premières expériences professionnelles acquises grâce à
Viadeo !

Envie de découvrir l'envers du décor !
Un produit que j'aime
Une réussite française
Une équipe internationale

Équipe mobile créée cet été
Déjà 9 personnes !
Viadeo sur mobile
Déjà présent sur iPhone, Android, WP7, Bada et Palm
Nouveaux produits mobiles
Application
BlackBerry

Android SDK
http://dev.viadeo.com/documentation/tools-and-samples/android-sdk/

iPhone SDK
http://dev.viadeo.com/documentation/tools-and-samples/iphone-sdk/
Viadeo graph API
Le métier au quotidien
Estimation
Conception et architecture
Développement applications et librairies
Tests
Corrections et améliorations
Veille technologique
Android ?
Android
Startup rachetée par Google en 2007
OS open-source
Terminaux mobiles
Systèmes embarqués

Développement
Java/XML (SDK)
C (NDK)
Une hausse constante
Les versions
Jelly Bean
5.0 ???

Ice Cream Sandwich
4.0 – 4.0.2 – 4.0.3

Honeycomb
3.0 – 3.1 – 3.2

Gingerbread

Data collected during two weeks ending on March 5, 2012

2.3 – 2.3.2 – 2.3.3 – 2.3.7

FroYo
2.2

Eclair
2.1

Donut
1.6

Cupcake
1.5

#K4Kouign : Support the choice of
Kouign-Amann as the 'K' release of
the Android Operating System
Les smartphones

Sony
Xperia X10 Mini
240x320

HTC
Magic
320x480

Samsung
Galaxy S2
480x800

Motorola
Milestone
480x854

Samsung
Galaxy Nexus
720x1280
Les tablettes
Sony
Tablet S
1280x720

Samsung
Galaxy Tab 10.1
1920x1080

Motorola
Xoom 2
1280x720

Asus
EeePad Transformer
1280x800
Les systèmes embarquées
Sony
SmartWatch

Logitech
Revue
(Google TV)

Parrot
Asteroid

Samsung
RF4289HARS

People of Lava
Scandinavia
Boutons
Back

Menu Home Search
Hardware keys

Menu Home Back

Virtual controls
Back

Home

Recents
Android != iPhone

Tentative de
reproduction de
"controllers" iPhone...

UINavigationBarController

UITabController
Les éléments de UI (User Interface)
ScrollView + Options Menu

TextView

ScrollView

Options Menu
(clic sur le
bouton physique
"menu")
ProgressDialog

STYLE_SPINNER
Dialog

TextView
Custom dialog
EditText

Button
ImageView

TextView

ImageView

TextView
TabHost

TabWidget

FrameLayout

ListView
MapView

Pas disponible
dans le framework
standard nécessite
la lib Google APIs

com.google.android.maps.MapView
Outils de développement
Outils de développement
Eclipse
http://www.eclipse.org/downloads/

ADT plugin
https://dl-ssl.google.com/android/eclipse/

Android SDK (Windows, Linux, MacOS)
http://developer.android.com/sdk/

Téléchargement des plateformes depuis le SDK and AVD Manager
SDK Manager
Création d'émulateurs
DDMS
Composition d'un projet Android
Arborescence d'un projet

Java

Generated java files
Framework

Images

XML

Strings
Manifest
Composants d'application
Activities
Services
Broadcast receivers
Content providers
Arborescence de l'application

PhotosetListActivity

ContainerActivity

PhotosListActivity

PhotosMapActivity

PhotosActivity
Intents
Système de messages pour exécuter un composant (activity,
service, broadcast receiver)
Possibilité d'exécuter des composants d'une même application
OU/ET d'applications différentes
Android tente de répondre le mieux à chaque Intent (explicit/implicit
intents)
Activity life cycle
Manifest.xml
Numéros de versions

Intent filters
Activities

Permissions
Plateforme
cible
Création des vues
Une vue est décrite en XML
Assigner un layout XML à une Activity

Generated Class File

Type de ressource

Nom de la ressource
XML Inflate
Gestion des ressources
Types de ressource
anim/
color/
drawable/
layout/
menu/
raw/
values/
xml/
Drawable auto-scaling

icon
72x72

icon
36x36

icon
48x48

Même image, même nom de
fichier, mais dans des dossiers
différents, chacun lié à une
densité différente
(low, medium, high)
Resource qualifiers
MCC and MNC : mcc310 mcc310-mnc004 mcc208-mnc00 etc.
Langage and region : en fr en-rUS fr-rFR fr-rCA etc.
Screen size : small normal large xlarge
Screen aspect : long notlong
Screen orientation : port land
Dock mode : car desk
Night mode : night notnight
Screen pixel density : ldpi mdpi hdpi xhdpi nodpi
Touchscreen type : notouch stylus finger
Keyboard availability : keysexposed keyssoft
Primary text input method : nokeys qwerty 12key
Navigation key availability : navexposed navhidden
Primary non-touch navigation method : nonav dpad trackball wheel
System version (API level) : v3 v4 v7 etc.
Connexion à un WebService
Flickr API
Formats de requête
REST, XML-RPC, SOAP

Formats de réponse
REST, XML-RPC, SOAP, JSON, PHP

Flickr App Garden
http://www.flickr.com/services/api/
Couches applicatives

savePhotos(id)

Activity

getPhotos(id)

ContentManager

Java object

flickr.photosets.getPhotos

APIManager

String

WebService

File response
Réponse API Flickr
APIManager
Connexion à l'API REST
Appel non signé, sans jeton d'utilisateur
Méthode GET
ContentManager
Sauvegarde des données
Shared Preferences
Accès : privé
Type : primitif (boolean, float, int, long, string)
Format : clé/valeur

Utilisé pour sauvegarder des paramètres
Internal Storage
Accès : privé
Format : fichier
External Storage
Accès : public
Format : fichier
Nécessite des vérifications : média monté sur une
machine, absent, accessible qu'en lecteur, etc.
Sauvegarder ses fichiers dans :
/Android/data/<package_name>/files/
Databases
Accès : privé
Format : données structurées
Type : SQLite
SQLiteOpenHelper
Google Play (ex Android Market)
Client Google Play
Client Google Play
Google Play Admin
Upload Assets
Listing details
Publishing options
« If you want porn, get an Android » – Steve Jobs
Statistics
Liens
Documentation et examples
http://developer.android.com
http://developer.android.com/design/
http://android.cyrilmottier.com
http://www.androidpatterns.com

http://code.google.com/p/android-cookbook/
http://code.google.com/p/apps-for-android/
http://www.androidsnippets.org
Actualités
http://www.frandroid.com
http://www.pointgphone.com
Aide
http://stackoverflow.com/questions/tagged/android
http://www.anddev.org
http://forum.frandroid.com
http://forum.xda-developers.com

https://groups.google.com/group/paris-android-ug
Utilitaires
http://code.google.com/p/android-ui-utils/
http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html
http://www.droidthing.com
http://androiddrivers.net
Livres
Merci de votre attention !
J'ai hâte de tester vos applications;)
1 sur 73

Recommandé

OPEN STANDARD INTERCONNECTION (OSI) LAYERS par
OPEN STANDARD INTERCONNECTION (OSI) LAYERSOPEN STANDARD INTERCONNECTION (OSI) LAYERS
OPEN STANDARD INTERCONNECTION (OSI) LAYERSBikash Bhagat
1.1K vues13 diapositives
Cheat Sheet par
Cheat SheetCheat Sheet
Cheat SheetC Russo
1.1K vues3 diapositives
Organsin Organ Systems par
Organsin Organ SystemsOrgansin Organ Systems
Organsin Organ SystemsC Russo
432 vues9 diapositives
Doctor Diagnosis par
Doctor DiagnosisDoctor Diagnosis
Doctor DiagnosisC Russo
303 vues15 diapositives
Organs par
OrgansOrgans
OrgansC Russo
209 vues10 diapositives
Geosinindo - Distributor Geosynthetic Indonesia ( Geotextile, Geogrid, Geomem... par
Geosinindo - Distributor Geosynthetic Indonesia ( Geotextile, Geogrid, Geomem...Geosinindo - Distributor Geosynthetic Indonesia ( Geotextile, Geogrid, Geomem...
Geosinindo - Distributor Geosynthetic Indonesia ( Geotextile, Geogrid, Geomem...Geosinindo | Distributor Geotextile, Geogrid and Geomembrane Indonesia
824 vues19 diapositives

Contenu connexe

En vedette

Relevant Experience par
Relevant ExperienceRelevant Experience
Relevant ExperienceThomas Kukulka
307 vues20 diapositives
Presentation הגורמים המשפיעים par
Presentation הגורמים המשפיעיםPresentation הגורמים המשפיעים
Presentation הגורמים המשפיעיםNathan Kummel
162 vues10 diapositives
Lesson Plan Organ Systems par
Lesson Plan Organ SystemsLesson Plan Organ Systems
Lesson Plan Organ SystemsC Russo
464 vues4 diapositives
lifi tech par
lifi techlifi tech
lifi techBikash Bhagat
2.4K vues15 diapositives
Возможности Орифлэйм par
Возможности ОрифлэймВозможности Орифлэйм
Возможности ОрифлэймЕкатерина Усик
2K vues34 diapositives
Korte presentatie voor Evangelische gemeente Jonah in Ede (Gld.) par
Korte presentatie voor Evangelische gemeente Jonah in Ede (Gld.)Korte presentatie voor Evangelische gemeente Jonah in Ede (Gld.)
Korte presentatie voor Evangelische gemeente Jonah in Ede (Gld.)Meindert Jorna
480 vues4 diapositives

Similaire à Introduction à Android - Mars 2012

Presentation Android par
Presentation AndroidPresentation Android
Presentation AndroidJean Collas
2.8K vues53 diapositives
SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s... par
SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s...SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s...
SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s...TelecomValley
560 vues47 diapositives
Parlons App Economie : du dev à l'usage par
Parlons App Economie : du dev à l'usageParlons App Economie : du dev à l'usage
Parlons App Economie : du dev à l'usageLaFrenchMobile
1.2K vues112 diapositives
Cours mobiles du Mastère CPM 2011 (Telecom ParisTech/INA) par
Cours mobiles du Mastère CPM 2011 (Telecom ParisTech/INA)Cours mobiles du Mastère CPM 2011 (Telecom ParisTech/INA)
Cours mobiles du Mastère CPM 2011 (Telecom ParisTech/INA)Stéphane Rouilly
1.7K vues240 diapositives
Cours mobiles du Mastère CPM 2011 (Telecom ParisTech/INA) par
Cours mobiles du Mastère CPM 2011 (Telecom ParisTech/INA)Cours mobiles du Mastère CPM 2011 (Telecom ParisTech/INA)
Cours mobiles du Mastère CPM 2011 (Telecom ParisTech/INA)Stéphane Rouilly
3.3K vues240 diapositives
Google glass droidcon - DroidCon Paris 2014 par
Google glass droidcon - DroidCon Paris 2014Google glass droidcon - DroidCon Paris 2014
Google glass droidcon - DroidCon Paris 2014Paris Android User Group
1.3K vues53 diapositives

Similaire à Introduction à Android - Mars 2012(20)

Presentation Android par Jean Collas
Presentation AndroidPresentation Android
Presentation Android
Jean Collas2.8K vues
SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s... par TelecomValley
SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s...SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s...
SophiaConf 2010 Présentation de la conférence du 05 Juillet - Android :Tout s...
TelecomValley560 vues
Parlons App Economie : du dev à l'usage par LaFrenchMobile
Parlons App Economie : du dev à l'usageParlons App Economie : du dev à l'usage
Parlons App Economie : du dev à l'usage
LaFrenchMobile1.2K vues
Cours mobiles du Mastère CPM 2011 (Telecom ParisTech/INA) par Stéphane Rouilly
Cours mobiles du Mastère CPM 2011 (Telecom ParisTech/INA)Cours mobiles du Mastère CPM 2011 (Telecom ParisTech/INA)
Cours mobiles du Mastère CPM 2011 (Telecom ParisTech/INA)
Stéphane Rouilly1.7K vues
Cours mobiles du Mastère CPM 2011 (Telecom ParisTech/INA) par Stéphane Rouilly
Cours mobiles du Mastère CPM 2011 (Telecom ParisTech/INA)Cours mobiles du Mastère CPM 2011 (Telecom ParisTech/INA)
Cours mobiles du Mastère CPM 2011 (Telecom ParisTech/INA)
Stéphane Rouilly3.3K vues
Developper une application mobile par Eutech SSII
Developper une application mobileDevelopper une application mobile
Developper une application mobile
Eutech SSII3.6K vues
Web Mobile : quelles opportunités face aux apps ? par NiceToMeetYou
Web Mobile : quelles opportunités face aux apps ?Web Mobile : quelles opportunités face aux apps ?
Web Mobile : quelles opportunités face aux apps ?
NiceToMeetYou7.4K vues
Developpement mobile vs open source par Korteby Farouk
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open source
Korteby Farouk1.2K vues
L'histoire d'html5 pour les développeurs windows phone 8 par davrous
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8
davrous1.2K vues
iPhone & iOS - Introduction au développement d'applications natives par Fabrice Delhoste
iPhone & iOS - Introduction au développement d'applications nativesiPhone & iOS - Introduction au développement d'applications natives
iPhone & iOS - Introduction au développement d'applications natives
Fabrice Delhoste2.8K vues
Cours technologie web débutant CREA Digital 2 - 10/2013 par Pierre Ammeloot
Cours technologie web débutant CREA Digital 2 - 10/2013Cours technologie web débutant CREA Digital 2 - 10/2013
Cours technologie web débutant CREA Digital 2 - 10/2013
Pierre Ammeloot3K vues

Introduction à Android - Mars 2012