0
Introduction à Android

Informatique mobile, ubiquitaire et diffuse
Ma formation, mon expérience, mon
entreprise

Informatique mobile, ubiquitaire et diffuse

2
Présentation
●

Aurélien Guillard
●

Développeur Mobile multiplateforme
–
–

●

(Android, iPhone, Blackberry)
Lead Develop...
Formation
●

2010 : Ingénieur Réseau et Multimédia
●

●

2007 : DUT SRC
●

●

Ecole Supérieure d'Ingénieurs de Luminy

IUT...
Expériences professionnelles
●

Actuellement : Clicmobile (Android, iPhone, Blackberry)

●

2009 : Latin 3G S.A. de C.V. (...
Clicmobile
●

Conseils stratégiques

●

Création et développement

●

Marketing et promotion

●

Statistiques d'usage

Inf...
Clicmobile web framework
●

Genération de backoffice d'applications

●

Génération de WebServices
●

JSON

●

XML

●

PLIS...
Clicmobile Analytics

Informatique mobile, ubiquitaire et diffuse

8
Le métier au quotidien
●

Estimation

●

Conception et architecture

●

Développement applications et librairies

●

Tests...
Android ?

Informatique mobile, ubiquitaire et diffuse

10
Android
●

Startup rachetée par Google en 2007

●

OS open-source
●
●

●

Terminaux mobiles
Systèmes embarqués

Développem...
Une hausse constante

Informatique mobile, ubiquitaire et diffuse

12
Les versions
●

3.0 : Honeycomb

●

2.3 : Gingerbread

●

2.2 : FroYo

●

2.1 : Eclair

●

1.6 : Donut

●

1.5 : Cupcake

...
Les terminaux
Un parc très varié : smartphones, tablettes, tv, autoradio...

Sony
Xperia X10 Mini
240x320

HTC
Magic
320x4...
Boutons physiques

Back

Menu

Informatique mobile, ubiquitaire et diffuse

Home

Search (optionnel)

15
Android != iPhone

Tentative de
reproduction de
"controllers" iPhone...

UINavigationBarController

UITabController

Infor...
Les éléments de UI (User Interface)

Informatique mobile, ubiquitaire et diffuse

17
ScrollView + Options Menu
TextView

ScrollView

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

Informatique mobile, ub...
ProgressDialog

STYLE_SPINNER

Informatique mobile, ubiquitaire et diffuse

19
Dialog

TextView
Custom dialog
EditText

Button

Informatique mobile, ubiquitaire et diffuse

20
ImageView
TextView

ImageView

TextView

Informatique mobile, ubiquitaire et diffuse

21
TabHost
TabWidget

FrameLayout

Informatique mobile, ubiquitaire et diffuse

ListView

22
MapView

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

com.google.android.maps.MapView

Informat...
Outils de développement

Informatique mobile, ubiquitaire et diffuse

24
Outils de développement
●

Eclipse
●

●

ADT plugin
●

●

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

Android SDK (Windows...
SDK and AVD Manager

Informatique mobile, ubiquitaire et diffuse

26
Création d'émulateurs

Informatique mobile, ubiquitaire et diffuse

27
DDMS

Informatique mobile, ubiquitaire et diffuse

28
Composition d'un projet Android

Informatique mobile, ubiquitaire et diffuse

29
Arborescence d'un projet
Java

Generated java files
Framework

Images

XML

Informatique mobile, ubiquitaire et diffuse

S...
Composants d'application
●

Activities

●

Services

●

Broadcast receivers

●

Content providers

Informatique mobile, ub...
Arborescence de l'application
PhotosetListActivity

ContainerActivity

PhotosListActivity

PhotosMapActivity

PhotosActivi...
Intents
●

●

●

Système de messages pour exécuter un
composant (activity, service, broadcast
receiver)
Possibilité d'exéc...
Activity life cycle

Informatique mobile, ubiquitaire et diffuse

34
Manifest.xml
Numéros de versions

Intent filters
Activities

Permissions
Plateforme cible

Informatique mobile, ubiquitair...
Création des vues

Informatique mobile, ubiquitaire et diffuse

36
Une vue est décrite en XML

Informatique mobile, ubiquitaire et diffuse

37
Assigner un layout XML à une
Activity

Generated Class File

Type de ressource

Informatique mobile, ubiquitaire et diffus...
XML Inflate

Informatique mobile, ubiquitaire et diffuse

39
Gestion des ressources

Informatique mobile, ubiquitaire et diffuse

40
Types de ressource
●

anim/

●

color/

●

drawable/

●

layout/

●

menu/

●

raw/

●

values/

●

xml/
Informatique mobi...
Drawable auto-scaling
icon
72x72

icon
36x36

Même image, même nom de
fichier, mais dans des dossiers
différents, chacun l...
Resource qualifiers
●

MCC and MNC : mcc310 mcc310-mnc004 mcc208-mnc00 etc.

●

Langage and region : en fr en-rUS fr-rFR f...
Connexion à un WebService

Informatique mobile, ubiquitaire et diffuse

44
Flickr API
●

Formats de requête
●

●

Formats de réponse
●

●

REST, XML-RPC, SOAP

REST, XML-RPC, SOAP, JSON, PHP

Flick...
Couches applicatives
savePhotos(id)

Activity

getPhotos(id)

ContentManager

Java object

flickr.photosets.getPhotos

API...
Réponse API Flickr

Informatique mobile, ubiquitaire et diffuse

47
APIManager
Connexion à l'API REST
● Appel non signé, sans jeton d'utilisateur
● Méthode GET
●

Informatique mobile, ubiqui...
ContentManager

Informatique mobile, ubiquitaire et diffuse

49
Sauvegarde des données

Informatique mobile, ubiquitaire et diffuse

50
Shared Preferences
●

Accès : privé

●

Type : primitif (boolean, float, int, long, string)

●

Format : clé/valeur

●

Ut...
Internal Storage
●

Accès : privé

●

Format : fichier

Informatique mobile, ubiquitaire et diffuse

52
External Storage
●

Accès : public

●

Format : fichier

●

●

Nécessite des vérifications : média monté
sur une machine, ...
Databases
●

Accès : privé

●

Format : données structurées

●

Type : SQLite

Informatique mobile, ubiquitaire et diffuse...
SQLiteOpenHelper

Informatique mobile, ubiquitaire et diffuse

55
Android Market

Informatique mobile, ubiquitaire et diffuse

56
Client Android Market

Informatique mobile, ubiquitaire et diffuse

57
Client Android Market

Une seule page par application
Promotional Graphic (or icon)
Description (4000 chars)
Screenshots (...
Android Market Admin
Peu de statistiques...

Informatique mobile, ubiquitaire et diffuse

59
Upload Assets

Android Market web ?
Google TV ?

Informatique mobile, ubiquitaire et diffuse

60
Listing details

Informatique mobile, ubiquitaire et diffuse

61
Publishing options
« If you want porn, get an Android » – Steve Jobs

Informatique mobile, ubiquitaire et diffuse

62
Liens

Informatique mobile, ubiquitaire et diffuse

63
Documentation et examples
●

http://developer.android.com

●

http://code.google.com/p/android-cookbook/

●

http://code.g...
Actualités
●

http://www.frandroid.com

●

http://www.pointgphone.com

Informatique mobile, ubiquitaire et diffuse

65
Aide
●

http://forum.xda-developers.com

●

http://www.anddev.org

●

http://forum.frandroid.com

●

https://groups.google...
Utilitaires
●

http://code.google.com/p/android-ui-utils/

●

http://android-ui-utils.googlecode.com/hg/asset-stud

●

htt...
Livres

Informatique mobile, ubiquitaire et diffuse

68
Merci de votre attention !
J'ai hâte de tester vos applications;)

Informatique mobile, ubiquitaire et diffuse

69
Upcoming SlideShare
Loading in...5
×

Introduction à Android - Janvier 2011

109

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
109
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Introduction à Android - Janvier 2011"

  1. 1. Introduction à Android Informatique mobile, ubiquitaire et diffuse
  2. 2. Ma formation, mon expérience, mon entreprise Informatique mobile, ubiquitaire et diffuse 2
  3. 3. Présentation ● Aurélien Guillard ● Développeur Mobile multiplateforme – – ● (Android, iPhone, Blackberry) Lead Developer Android Contact ● aurelien.guillard@gmail.com aurelien@clicmobile.com ● http://www.aurelienguillard.com ● Twitter : @rorolepro (oui, je sais, ce pseudo est ridicule) Informatique mobile, ubiquitaire et diffuse 3
  4. 4. Formation ● 2010 : Ingénieur Réseau et Multimédia ● ● 2007 : DUT SRC ● ● Ecole Supérieure d'Ingénieurs de Luminy IUT de Laval 2005 : BAC S option SI ● Lycée d'une petite ville près de Nantes Informatique mobile, ubiquitaire et diffuse 4
  5. 5. Expériences professionnelles ● Actuellement : Clicmobile (Android, iPhone, Blackberry) ● 2009 : Latin 3G S.A. de C.V. (Android) ● 2008 : GAROS (web) ● 2007 : e-doceo (ActionScript) ● 2006 : SA2EI (web) Informatique mobile, ubiquitaire et diffuse 5
  6. 6. Clicmobile ● Conseils stratégiques ● Création et développement ● Marketing et promotion ● Statistiques d'usage Informatique mobile, ubiquitaire et diffuse 6
  7. 7. Clicmobile web framework ● Genération de backoffice d'applications ● Génération de WebServices ● JSON ● XML ● PLIST Informatique mobile, ubiquitaire et diffuse 7
  8. 8. Clicmobile Analytics Informatique mobile, ubiquitaire et diffuse 8
  9. 9. Le métier au quotidien ● Estimation ● Conception et architecture ● Développement applications et librairies ● Tests ● Corrections et améliorations ● Veille technologique Informatique mobile, ubiquitaire et diffuse 9
  10. 10. Android ? Informatique mobile, ubiquitaire et diffuse 10
  11. 11. Android ● Startup rachetée par Google en 2007 ● OS open-source ● ● ● Terminaux mobiles Systèmes embarqués Développement ● Java/XML (SDK) ● C (NDK) Informatique mobile, ubiquitaire et diffuse 11
  12. 12. Une hausse constante Informatique mobile, ubiquitaire et diffuse 12
  13. 13. Les versions ● 3.0 : Honeycomb ● 2.3 : Gingerbread ● 2.2 : FroYo ● 2.1 : Eclair ● 1.6 : Donut ● 1.5 : Cupcake Data collected during two weeks ending on January 4, 2011 Informatique mobile, ubiquitaire et diffuse 13
  14. 14. Les terminaux Un parc très varié : smartphones, tablettes, tv, autoradio... Sony Xperia X10 Mini 240x320 HTC Magic 320x480 Motorola Milestone 480x854 Informatique mobile, ubiquitaire et diffuse Samsung Galaxy Tab 600x1024 14
  15. 15. Boutons physiques Back Menu Informatique mobile, ubiquitaire et diffuse Home Search (optionnel) 15
  16. 16. Android != iPhone Tentative de reproduction de "controllers" iPhone... UINavigationBarController UITabController Informatique mobile, ubiquitaire et diffuse 16
  17. 17. Les éléments de UI (User Interface) Informatique mobile, ubiquitaire et diffuse 17
  18. 18. ScrollView + Options Menu TextView ScrollView Options Menu (clic sur le bouton physique "menu") Informatique mobile, ubiquitaire et diffuse 18
  19. 19. ProgressDialog STYLE_SPINNER Informatique mobile, ubiquitaire et diffuse 19
  20. 20. Dialog TextView Custom dialog EditText Button Informatique mobile, ubiquitaire et diffuse 20
  21. 21. ImageView TextView ImageView TextView Informatique mobile, ubiquitaire et diffuse 21
  22. 22. TabHost TabWidget FrameLayout Informatique mobile, ubiquitaire et diffuse ListView 22
  23. 23. MapView Pas disponible dans le framework standard nécessite la lib Google APIs com.google.android.maps.MapView Informatique mobile, ubiquitaire et diffuse 23
  24. 24. Outils de développement Informatique mobile, ubiquitaire et diffuse 24
  25. 25. Outils de développement ● Eclipse ● ● ADT plugin ● ● https://dl-ssl.google.com/android/eclipse/ Android SDK (Windows, Linux, MacOS) ● ● http://www.eclipse.org/downloads/ http://developer.android.com/sdk/ Téléchargement des plateformes depuis le SDK and AVD Manager Informatique mobile, ubiquitaire et diffuse 25
  26. 26. SDK and AVD Manager Informatique mobile, ubiquitaire et diffuse 26
  27. 27. Création d'émulateurs Informatique mobile, ubiquitaire et diffuse 27
  28. 28. DDMS Informatique mobile, ubiquitaire et diffuse 28
  29. 29. Composition d'un projet Android Informatique mobile, ubiquitaire et diffuse 29
  30. 30. Arborescence d'un projet Java Generated java files Framework Images XML Informatique mobile, ubiquitaire et diffuse Strings Manifest 30
  31. 31. Composants d'application ● Activities ● Services ● Broadcast receivers ● Content providers Informatique mobile, ubiquitaire et diffuse 31
  32. 32. Arborescence de l'application PhotosetListActivity ContainerActivity PhotosListActivity PhotosMapActivity PhotosActivity Informatique mobile, ubiquitaire et diffuse 32
  33. 33. 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) Informatique mobile, ubiquitaire et diffuse 33
  34. 34. Activity life cycle Informatique mobile, ubiquitaire et diffuse 34
  35. 35. Manifest.xml Numéros de versions Intent filters Activities Permissions Plateforme cible Informatique mobile, ubiquitaire et diffuse 35
  36. 36. Création des vues Informatique mobile, ubiquitaire et diffuse 36
  37. 37. Une vue est décrite en XML Informatique mobile, ubiquitaire et diffuse 37
  38. 38. Assigner un layout XML à une Activity Generated Class File Type de ressource Informatique mobile, ubiquitaire et diffuse Nom de la ressource 38
  39. 39. XML Inflate Informatique mobile, ubiquitaire et diffuse 39
  40. 40. Gestion des ressources Informatique mobile, ubiquitaire et diffuse 40
  41. 41. Types de ressource ● anim/ ● color/ ● drawable/ ● layout/ ● menu/ ● raw/ ● values/ ● xml/ Informatique mobile, ubiquitaire et diffuse 41
  42. 42. Drawable auto-scaling icon 72x72 icon 36x36 Même image, même nom de fichier, mais dans des dossiers différents, chacun lié à une densité différente (low, medium, high) icon 48x48 Informatique mobile, ubiquitaire et diffuse 42
  43. 43. 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. Informatique mobile, ubiquitaire et diffuse 43
  44. 44. Connexion à un WebService Informatique mobile, ubiquitaire et diffuse 44
  45. 45. Flickr API ● Formats de requête ● ● Formats de réponse ● ● REST, XML-RPC, SOAP REST, XML-RPC, SOAP, JSON, PHP Flickr App Garden ● http://www.flickr.com/services/api/ Informatique mobile, ubiquitaire et diffuse 45
  46. 46. Couches applicatives savePhotos(id) Activity getPhotos(id) ContentManager Java object flickr.photosets.getPhotos APIManager String Informatique mobile, ubiquitaire et diffuse WebService File response 46
  47. 47. Réponse API Flickr Informatique mobile, ubiquitaire et diffuse 47
  48. 48. APIManager Connexion à l'API REST ● Appel non signé, sans jeton d'utilisateur ● Méthode GET ● Informatique mobile, ubiquitaire et diffuse 48
  49. 49. ContentManager Informatique mobile, ubiquitaire et diffuse 49
  50. 50. Sauvegarde des données Informatique mobile, ubiquitaire et diffuse 50
  51. 51. Shared Preferences ● Accès : privé ● Type : primitif (boolean, float, int, long, string) ● Format : clé/valeur ● Utilisé pour sauvegarder des paramètres Informatique mobile, ubiquitaire et diffuse 51
  52. 52. Internal Storage ● Accès : privé ● Format : fichier Informatique mobile, ubiquitaire et diffuse 52
  53. 53. 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/ Informatique mobile, ubiquitaire et diffuse 53
  54. 54. Databases ● Accès : privé ● Format : données structurées ● Type : SQLite Informatique mobile, ubiquitaire et diffuse 54
  55. 55. SQLiteOpenHelper Informatique mobile, ubiquitaire et diffuse 55
  56. 56. Android Market Informatique mobile, ubiquitaire et diffuse 56
  57. 57. Client Android Market Informatique mobile, ubiquitaire et diffuse 57
  58. 58. Client Android Market Une seule page par application Promotional Graphic (or icon) Description (4000 chars) Screenshots (8) Avis Applications semblables Informations sur le développeur Contenu Android Market Informatique mobile, ubiquitaire et diffuse 58
  59. 59. Android Market Admin Peu de statistiques... Informatique mobile, ubiquitaire et diffuse 59
  60. 60. Upload Assets Android Market web ? Google TV ? Informatique mobile, ubiquitaire et diffuse 60
  61. 61. Listing details Informatique mobile, ubiquitaire et diffuse 61
  62. 62. Publishing options « If you want porn, get an Android » – Steve Jobs Informatique mobile, ubiquitaire et diffuse 62
  63. 63. Liens Informatique mobile, ubiquitaire et diffuse 63
  64. 64. Documentation et examples ● http://developer.android.com ● http://code.google.com/p/android-cookbook/ ● http://code.google.com/p/apps-for-android/ ● http://www.androidsnippets.org Informatique mobile, ubiquitaire et diffuse 64
  65. 65. Actualités ● http://www.frandroid.com ● http://www.pointgphone.com Informatique mobile, ubiquitaire et diffuse 65
  66. 66. Aide ● http://forum.xda-developers.com ● http://www.anddev.org ● http://forum.frandroid.com ● https://groups.google.com/group/paris-android-ug Informatique mobile, ubiquitaire et diffuse 66
  67. 67. Utilitaires ● http://code.google.com/p/android-ui-utils/ ● http://android-ui-utils.googlecode.com/hg/asset-stud ● http://www.droidthing.com Informatique mobile, ubiquitaire et diffuse 67
  68. 68. Livres Informatique mobile, ubiquitaire et diffuse 68
  69. 69. Merci de votre attention ! J'ai hâte de tester vos applications;) Informatique mobile, ubiquitaire et diffuse 69
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×