SlideShare una empresa de Scribd logo
1 de 38
Introduction au développement Android
Introduction Situation du développement mobile Les outils pour le développement Android Architecture des applications Android Le processus de publication Bien gérer la multitude des appareils Questions 2 Agenda
Tout d’abord permettez-moi de me présenter Steve Tremblay Directeur du CETI - Nurun Montréal Chez Nurun depuis 9 ans, à titre d’architecte organique Java Fervent promoteur du logiciel libre depuis autant d’années Passionné de nouveau gadgets et de nouvelles idées Gadgets + Open Source ? Android bien sûr ! Chargé de projet technique pour le projet de Tremblant iConcierge, application iPhone et Android lancée cet automne de façon simultanée sur les deux plateformes  3 Introduction
4 Introduction – 10 ans d’histoire en 30 secondes
5 Introduction – 10 ans d’histoire en 30 secondes
6 Introduction – 10 ans d’histoire en 30 secondes
2011 : l’année du mobile ? Depuis plusieurs années, nous nous attendons à une éclosion des demandes au Québec pour des services en mobilité À chaque année, on a donc l’impression que la prochaine sera vraiment «l’année du mobile» Les demandes d’applications mobiles sont toutefois vraiment en grande augmentation cette année et plusieurs clients arrivent maintenant avec de l’intérêt pour la mobilité La question se pose donc, 2011 sera-t-elle l’année du mobile ? 7 Statut du développement mobile
Le développement mobile se décline maintenant de plusieurs façons : Développement de sites Web mobiles indépendants du site traditionnel exploitant les données ou le cms du site traditionnel Développement d’applications natives sur les différents systèmes d’exploitation :  iOS Blackberry OS Android Windows Phone 7 Développement d’applications en HTML5 pour les différents systèmes d’exploitation basés sur Webkit 8 Les types de développement mobile
Plusieurs fonctionnalités sont présentement populaires sur les différentes plateformes mobiles : Géo-localisation de l’utilisateur ou des différents points d’intérêt Partage d’information avec les utilisateurs à proximité Intégration avec les plateformes sociales Micro-transactions Reconnaissance des images prises avec la caméra Réalité augmentée 9 Fonctionnalités en vogue
Même si les applications mobiles peuvent nous paraître simples, il y a plusieurs enjeux à considérer : Courbe d’apprentissage importante pour tous les rôles : architectes organiques et fonctionnels, architectes d’information, analystes, développeurs, etc. Multiplication des appareils à supporter tant pour le développement que pour les essais Changements important dans les systèmes d’exploitation d’une version à l’autre qui peuvent créer des problèmes dans les applications La qualité de nos applications est jugée rapidement par les utilisateurs, une petite erreur peut être fatale 10 Un marché qui a ses propres enjeux
Les principaux outils utilisés lors du développement sur la plateforme via le SDK d’Android fourni par Google: SDK et Device Manager Eclipse avec le plugin ADT Émulateur Android Débogueur SQL Lite 11 Les outils pour le développement Android
Permet de télécharger les différents versions du système d’exploitation et des APIs de google Permet également de créer, modifier et démarrer les appareils virtuels 12 SDK et Device Manager
Accès aux outils du SDK directement via Eclipse Assistant étape par étape (« wizard ») pour la création de nouveaux projets Android Éditeurs de code et de fichiers XML selon les standards de la plateforme Support pour le processus de compilation et de déploiement 13 Eclipse avec le plugin ADT
Permet de sélectionner les attributs principaux de l’appareil : Identifiant unique Version du système d’exploitation  Taille de la carte SD Skin ou résolution d’écran Paramètres de configuration technologique (support caméra, quantité de mémoire, présence du GPS, etc.) 14 Émulateur Android
Quelques raccourcis importants :  Faire pivoter l’écran : CTRL-F12 Permuter l’activation de la simulation du réseau cellulaire : F8 Permuter le profilage de code : F9 Quelques paramètres de démarrage intéressants :  -netdelay <delay> : simuler de la latence réseau -netspeed <speed> : simuler un certain débit réseau -cpudelay <delay> : simuler un ralentissement du processeur 15 Émulateur Android
Dalvik (la JVM Android) Debug Monitor Server – DDMS Sur Android chaque application roule sa propre instance de Dalvik avec son propre port pour le débogueur 16 Débogueur
Les principales fonctionnalités supplémentaires du débugueur :  Exploration complète de l’empreinte mémoire / CPU de l’appareil Prise de captures d’écrans de l’émulateur ou d’un appareil Simuler des appels et des SMS sur l’émulateur pour tester le comportement de l’application Explorer les fichiers de l’émulateur ou d’un appareil Voir les processus en cours sur l’émulateur ou un appareil (ps) Voir les journaux de l’émulateur ou d’un appareil 17 Débogueur
Il s’agit de la base de données au cœur des applications de la plateforme L’outil permet également d’explorer les bases de données du téléphone à distance pour pouvoir débugger à distance les opérations sur la base de données Permet par exemple de charger des données de test Il est aussi possible de télécharger le fichier de base de données et utiliser un logiciel libre graphique de navigation dans la base de données 18 SQL Lite
19 Architecture des applications Android
20 Activity ,[object Object]
Il s’agit de la représentation d’un interface utilisateur pour supporter un but précis pour l’utilisateur
On peut le comparer à la partie contrôleur d’une application MVC
 Le contenu de l’écran supportant une activité est défini par les vues tandis que le traitement sous-jacent est supporté par le modèle, encore une fois dans la lignée du MVC,[object Object]
22 Activity - Exemple public class InformationListActivityextendsListActivityimplementsOnClickListener { @Override     public voidonCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.information_list); TextView tt = (TextView) findViewById(R.id.label);         if (tt != null) { tt.setText(getText(R.string.informationTitleBar));         } }    public voidonListItemClick(ListView parent, View v, int position, long id) {  	   …          }
23 Services ,[object Object]
Il peut s’agir par exemple de jouer de la musique en arrière plan ou encore du calcul de données en arrière plan pour être par la suite présentées à la vue lorsque disponibles
Le service expose un interface comme par exemple pour le lecteur de musique des commandes pour la mise en pause, l’arrêt ou la reprise de la lecture,[object Object]
Il s’agit donc d’un objet que l’on passe à la méthode de démarrage d’une activitéIntentintent = new Intent(getApplicationContext(), InformationActivity.class); intent.putExtra("id", id); Cursoritem = (Cursor) adapter.getItem(position); String name = item.getString(item.getColumnIndex("name")); intent.putExtra("name", name); String htmlURL = item.getString(item.getColumnIndex("html_url")); intent.putExtra("htmlUrl", htmlURL); startActivity(intent);
25 Views ,[object Object]
Les vues sont par la suite agrégées afin de créer des écrans via le fichier de positionnement (« layout »)
Un ensemble complet de vues sont fournies par le cadre d’applications
Button, Checkbox, EditText, DatePicker, etc. pour les formulaires
ImageView
ListView, ExpandableListView
ProgressBar, SeekBar, MediaController
VideoView
WebView
etc.,[object Object]

Más contenido relacionado

La actualidad más candente

In01 - Programmation Android - 01 - introduction
In01 - Programmation Android - 01 - introductionIn01 - Programmation Android - 01 - introduction
In01 - Programmation Android - 01 - introductionYann Caron
 
Formation Android (Initiation à la programmation sous Android)
Formation Android (Initiation à la programmation sous Android)Formation Android (Initiation à la programmation sous Android)
Formation Android (Initiation à la programmation sous Android)G²FOSS ENIT
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contactJasmine Conseil
 
Cours android 2016_partie1
Cours android 2016_partie1Cours android 2016_partie1
Cours android 2016_partie1Sabeur LAJILI
 
Cours android user_interface_2016
Cours android user_interface_2016Cours android user_interface_2016
Cours android user_interface_2016Sabeur LAJILI
 
Cours android
Cours androidCours android
Cours androidAd Hafsa
 
Présentation développement application Android
Présentation développement application AndroidPrésentation développement application Android
Présentation développement application Androidambin_fr
 
CocoaHeads An Android Overview (fr)
CocoaHeads An Android Overview (fr)CocoaHeads An Android Overview (fr)
CocoaHeads An Android Overview (fr)Mathias Seguy
 
Développement Android
Développement AndroidDéveloppement Android
Développement AndroidFranck SIMON
 
5 android web_service
5 android web_service5 android web_service
5 android web_serviceSaber LAJILI
 
Apple Watch par Benoit Capallere et Joeffrey Bocquet
Apple Watch par Benoit Capallere et Joeffrey BocquetApple Watch par Benoit Capallere et Joeffrey Bocquet
Apple Watch par Benoit Capallere et Joeffrey BocquetCocoaHeads France
 
Hackathon Android Abidjan
Hackathon Android  AbidjanHackathon Android  Abidjan
Hackathon Android AbidjanBacely YoroBi
 
Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013jeromevdl
 

La actualidad más candente (19)

In01 - Programmation Android - 01 - introduction
In01 - Programmation Android - 01 - introductionIn01 - Programmation Android - 01 - introduction
In01 - Programmation Android - 01 - introduction
 
Hello droid
Hello droidHello droid
Hello droid
 
1 tours horizon
1 tours horizon1 tours horizon
1 tours horizon
 
Formation Android (Initiation à la programmation sous Android)
Formation Android (Initiation à la programmation sous Android)Formation Android (Initiation à la programmation sous Android)
Formation Android (Initiation à la programmation sous Android)
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contact
 
Cours android 2016_partie1
Cours android 2016_partie1Cours android 2016_partie1
Cours android 2016_partie1
 
Cours android user_interface_2016
Cours android user_interface_2016Cours android user_interface_2016
Cours android user_interface_2016
 
Cours android
Cours androidCours android
Cours android
 
Présentation développement application Android
Présentation développement application AndroidPrésentation développement application Android
Présentation développement application Android
 
Cours Android
Cours AndroidCours Android
Cours Android
 
CocoaHeads An Android Overview (fr)
CocoaHeads An Android Overview (fr)CocoaHeads An Android Overview (fr)
CocoaHeads An Android Overview (fr)
 
Développement Android
Développement AndroidDéveloppement Android
Développement Android
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
 
5 android web_service
5 android web_service5 android web_service
5 android web_service
 
Android
AndroidAndroid
Android
 
Apple Watch par Benoit Capallere et Joeffrey Bocquet
Apple Watch par Benoit Capallere et Joeffrey BocquetApple Watch par Benoit Capallere et Joeffrey Bocquet
Apple Watch par Benoit Capallere et Joeffrey Bocquet
 
Android introvf
Android introvfAndroid introvf
Android introvf
 
Hackathon Android Abidjan
Hackathon Android  AbidjanHackathon Android  Abidjan
Hackathon Android Abidjan
 
Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013
 

Destacado

Introduction aux RDF & SPARQL
Introduction aux RDF & SPARQLIntroduction aux RDF & SPARQL
Introduction aux RDF & SPARQLOpen Data Support
 
Les ontologies et les graphes RDF
Les ontologies et les graphes RDFLes ontologies et les graphes RDF
Les ontologies et les graphes RDFRadhouani Mejdi
 
La Moral Kantiana. Patricia Cazorla
La Moral Kantiana. Patricia CazorlaLa Moral Kantiana. Patricia Cazorla
La Moral Kantiana. Patricia Cazorlapatry030
 
La place de la technologie dans l'enseignement: Le changement a eu lieu.
La place de la technologie dans l'enseignement: Le changement a eu lieu.La place de la technologie dans l'enseignement: Le changement a eu lieu.
La place de la technologie dans l'enseignement: Le changement a eu lieu.Thouraya Daouas
 
Shandur festival de polo
Shandur festival de polo Shandur festival de polo
Shandur festival de polo Malik Ali
 
Programme pour le Cameroun des competences.
Programme pour le Cameroun des competences.Programme pour le Cameroun des competences.
Programme pour le Cameroun des competences.Patrice Piardon
 
Intégration Pédagogique des Tic en CI
Intégration Pédagogique des Tic en CIIntégration Pédagogique des Tic en CI
Intégration Pédagogique des Tic en CIdidando_ballet
 
Industrialisation en PHP
Industrialisation en PHPIndustrialisation en PHP
Industrialisation en PHPALTER WAY
 
Citizen act fr_fiche_dd_fr
Citizen act fr_fiche_dd_frCitizen act fr_fiche_dd_fr
Citizen act fr_fiche_dd_frCITIZEN ACT
 
Condiciones y Elementos que fundamentan el Derecho a la Consulta de los Puebl...
Condiciones y Elementos que fundamentan el Derecho a la Consulta de los Puebl...Condiciones y Elementos que fundamentan el Derecho a la Consulta de los Puebl...
Condiciones y Elementos que fundamentan el Derecho a la Consulta de los Puebl...Gobernabilidad
 
2013 12-10 f2 d - sels fin2drive 2 slides presentation
2013 12-10 f2 d - sels fin2drive 2 slides presentation2013 12-10 f2 d - sels fin2drive 2 slides presentation
2013 12-10 f2 d - sels fin2drive 2 slides presentationFBreitenstein
 
La suspensión del contrato de trabajo. 25 de febrero de 2011.
La suspensión del contrato de trabajo. 25 de febrero de 2011.La suspensión del contrato de trabajo. 25 de febrero de 2011.
La suspensión del contrato de trabajo. 25 de febrero de 2011.Universidad Autónoma de Barcelona
 
Els cinc regnes
Els cinc regnesEls cinc regnes
Els cinc regnesirnaaz
 
Bobinas1
Bobinas1Bobinas1
Bobinas1Yambal
 
Select USA - Facilitando su éxito en los negocios en los EEUU
Select USA - Facilitando su éxito en los negocios en los EEUUSelect USA - Facilitando su éxito en los negocios en los EEUU
Select USA - Facilitando su éxito en los negocios en los EEUUEmbajada de EE.UU. en el Perú
 
Présentation journée NEC 2010 Lyon 1
Présentation journée NEC 2010 Lyon 1Présentation journée NEC 2010 Lyon 1
Présentation journée NEC 2010 Lyon 1Nicolas Coltice
 

Destacado (20)

Rdf
RdfRdf
Rdf
 
Introduction aux RDF & SPARQL
Introduction aux RDF & SPARQLIntroduction aux RDF & SPARQL
Introduction aux RDF & SPARQL
 
Les ontologies et les graphes RDF
Les ontologies et les graphes RDFLes ontologies et les graphes RDF
Les ontologies et les graphes RDF
 
La Moral Kantiana. Patricia Cazorla
La Moral Kantiana. Patricia CazorlaLa Moral Kantiana. Patricia Cazorla
La Moral Kantiana. Patricia Cazorla
 
La place de la technologie dans l'enseignement: Le changement a eu lieu.
La place de la technologie dans l'enseignement: Le changement a eu lieu.La place de la technologie dans l'enseignement: Le changement a eu lieu.
La place de la technologie dans l'enseignement: Le changement a eu lieu.
 
Agricultura Sostenible
Agricultura SostenibleAgricultura Sostenible
Agricultura Sostenible
 
Shandur festival de polo
Shandur festival de polo Shandur festival de polo
Shandur festival de polo
 
Programme pour le Cameroun des competences.
Programme pour le Cameroun des competences.Programme pour le Cameroun des competences.
Programme pour le Cameroun des competences.
 
Intégration Pédagogique des Tic en CI
Intégration Pédagogique des Tic en CIIntégration Pédagogique des Tic en CI
Intégration Pédagogique des Tic en CI
 
Industrialisation en PHP
Industrialisation en PHPIndustrialisation en PHP
Industrialisation en PHP
 
Modelo de examen adaptado. asun
Modelo de examen adaptado. asunModelo de examen adaptado. asun
Modelo de examen adaptado. asun
 
Citizen act fr_fiche_dd_fr
Citizen act fr_fiche_dd_frCitizen act fr_fiche_dd_fr
Citizen act fr_fiche_dd_fr
 
Condiciones y Elementos que fundamentan el Derecho a la Consulta de los Puebl...
Condiciones y Elementos que fundamentan el Derecho a la Consulta de los Puebl...Condiciones y Elementos que fundamentan el Derecho a la Consulta de los Puebl...
Condiciones y Elementos que fundamentan el Derecho a la Consulta de los Puebl...
 
St ambreuil
St ambreuilSt ambreuil
St ambreuil
 
2013 12-10 f2 d - sels fin2drive 2 slides presentation
2013 12-10 f2 d - sels fin2drive 2 slides presentation2013 12-10 f2 d - sels fin2drive 2 slides presentation
2013 12-10 f2 d - sels fin2drive 2 slides presentation
 
La suspensión del contrato de trabajo. 25 de febrero de 2011.
La suspensión del contrato de trabajo. 25 de febrero de 2011.La suspensión del contrato de trabajo. 25 de febrero de 2011.
La suspensión del contrato de trabajo. 25 de febrero de 2011.
 
Els cinc regnes
Els cinc regnesEls cinc regnes
Els cinc regnes
 
Bobinas1
Bobinas1Bobinas1
Bobinas1
 
Select USA - Facilitando su éxito en los negocios en los EEUU
Select USA - Facilitando su éxito en los negocios en los EEUUSelect USA - Facilitando su éxito en los negocios en los EEUU
Select USA - Facilitando su éxito en los negocios en los EEUU
 
Présentation journée NEC 2010 Lyon 1
Présentation journée NEC 2010 Lyon 1Présentation journée NEC 2010 Lyon 1
Présentation journée NEC 2010 Lyon 1
 

Similar a Introduction au développement Android

Projet de fin d étude (1)
Projet de fin d étude (1)Projet de fin d étude (1)
Projet de fin d étude (1)Sanaa Guissar
 
cours Android.pptx
cours Android.pptxcours Android.pptx
cours Android.pptxYaminaGh1
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSRenaud Dumont
 
Introduction à Android
Introduction à AndroidIntroduction à Android
Introduction à AndroidYoann Gotthilf
 
chapitres 3 technologies de communication de l'IoT partie II.pptx
chapitres  3 technologies de communication de l'IoT partie II.pptxchapitres  3 technologies de communication de l'IoT partie II.pptx
chapitres 3 technologies de communication de l'IoT partie II.pptxmerazgaammar2
 
Initiation au développement mobile sous Android
Initiation au développement mobile sous AndroidInitiation au développement mobile sous Android
Initiation au développement mobile sous AndroidAbdelkader Rhouati
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniterAtsé François-Xavier KOBON
 
Introduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdfIntroduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdfmed_univ78
 
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...Philippe Beraud
 
Stage de fin d’études – dotcloud
Stage de fin d’études – dotcloudStage de fin d’études – dotcloud
Stage de fin d’études – dotcloudJoffrey Fu Hrer
 
Stage de fin d’études – dotcloud
Stage de fin d’études – dotcloudStage de fin d’études – dotcloud
Stage de fin d’études – dotcloudJoffrey Fu Hrer
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Saber LAJILI
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Sabeur LAJILI
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Sabeur LAJILI
 
IoT (M2M) - Big Data - Analyses : Simulation et Démonstration
IoT (M2M) - Big Data - Analyses : Simulation et DémonstrationIoT (M2M) - Big Data - Analyses : Simulation et Démonstration
IoT (M2M) - Big Data - Analyses : Simulation et DémonstrationCHAKER ALLAOUI
 
Open Data Ready ! Libérez vos données avec OData et le Cloud
Open Data Ready ! Libérez vos données avec OData et le CloudOpen Data Ready ! Libérez vos données avec OData et le Cloud
Open Data Ready ! Libérez vos données avec OData et le CloudMicrosoft
 
L'histoire d'html5 pour les développeurs windows phone 8
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 8davrous
 

Similar a Introduction au développement Android (20)

Projet de fin d étude (1)
Projet de fin d étude (1)Projet de fin d étude (1)
Projet de fin d étude (1)
 
cours Android.pptx
cours Android.pptxcours Android.pptx
cours Android.pptx
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJS
 
DART.pptx
DART.pptxDART.pptx
DART.pptx
 
Introduction à Android
Introduction à AndroidIntroduction à Android
Introduction à Android
 
chapitres 3 technologies de communication de l'IoT partie II.pptx
chapitres  3 technologies de communication de l'IoT partie II.pptxchapitres  3 technologies de communication de l'IoT partie II.pptx
chapitres 3 technologies de communication de l'IoT partie II.pptx
 
Initiation au développement mobile sous Android
Initiation au développement mobile sous AndroidInitiation au développement mobile sous Android
Initiation au développement mobile sous Android
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
Introduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdfIntroduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdf
 
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
 
Formation mobile-cross-platform
Formation mobile-cross-platformFormation mobile-cross-platform
Formation mobile-cross-platform
 
Chapitre 4 sem
Chapitre 4 semChapitre 4 sem
Chapitre 4 sem
 
Stage de fin d’études – dotcloud
Stage de fin d’études – dotcloudStage de fin d’études – dotcloud
Stage de fin d’études – dotcloud
 
Stage de fin d’études – dotcloud
Stage de fin d’études – dotcloudStage de fin d’études – dotcloud
Stage de fin d’études – dotcloud
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 
IoT (M2M) - Big Data - Analyses : Simulation et Démonstration
IoT (M2M) - Big Data - Analyses : Simulation et DémonstrationIoT (M2M) - Big Data - Analyses : Simulation et Démonstration
IoT (M2M) - Big Data - Analyses : Simulation et Démonstration
 
Open Data Ready ! Libérez vos données avec OData et le Cloud
Open Data Ready ! Libérez vos données avec OData et le CloudOpen Data Ready ! Libérez vos données avec OData et le Cloud
Open Data Ready ! Libérez vos données avec OData et le Cloud
 
L'histoire d'html5 pour les développeurs windows phone 8
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
 

Introduction au développement Android

  • 2. Introduction Situation du développement mobile Les outils pour le développement Android Architecture des applications Android Le processus de publication Bien gérer la multitude des appareils Questions 2 Agenda
  • 3. Tout d’abord permettez-moi de me présenter Steve Tremblay Directeur du CETI - Nurun Montréal Chez Nurun depuis 9 ans, à titre d’architecte organique Java Fervent promoteur du logiciel libre depuis autant d’années Passionné de nouveau gadgets et de nouvelles idées Gadgets + Open Source ? Android bien sûr ! Chargé de projet technique pour le projet de Tremblant iConcierge, application iPhone et Android lancée cet automne de façon simultanée sur les deux plateformes 3 Introduction
  • 4. 4 Introduction – 10 ans d’histoire en 30 secondes
  • 5. 5 Introduction – 10 ans d’histoire en 30 secondes
  • 6. 6 Introduction – 10 ans d’histoire en 30 secondes
  • 7. 2011 : l’année du mobile ? Depuis plusieurs années, nous nous attendons à une éclosion des demandes au Québec pour des services en mobilité À chaque année, on a donc l’impression que la prochaine sera vraiment «l’année du mobile» Les demandes d’applications mobiles sont toutefois vraiment en grande augmentation cette année et plusieurs clients arrivent maintenant avec de l’intérêt pour la mobilité La question se pose donc, 2011 sera-t-elle l’année du mobile ? 7 Statut du développement mobile
  • 8. Le développement mobile se décline maintenant de plusieurs façons : Développement de sites Web mobiles indépendants du site traditionnel exploitant les données ou le cms du site traditionnel Développement d’applications natives sur les différents systèmes d’exploitation : iOS Blackberry OS Android Windows Phone 7 Développement d’applications en HTML5 pour les différents systèmes d’exploitation basés sur Webkit 8 Les types de développement mobile
  • 9. Plusieurs fonctionnalités sont présentement populaires sur les différentes plateformes mobiles : Géo-localisation de l’utilisateur ou des différents points d’intérêt Partage d’information avec les utilisateurs à proximité Intégration avec les plateformes sociales Micro-transactions Reconnaissance des images prises avec la caméra Réalité augmentée 9 Fonctionnalités en vogue
  • 10. Même si les applications mobiles peuvent nous paraître simples, il y a plusieurs enjeux à considérer : Courbe d’apprentissage importante pour tous les rôles : architectes organiques et fonctionnels, architectes d’information, analystes, développeurs, etc. Multiplication des appareils à supporter tant pour le développement que pour les essais Changements important dans les systèmes d’exploitation d’une version à l’autre qui peuvent créer des problèmes dans les applications La qualité de nos applications est jugée rapidement par les utilisateurs, une petite erreur peut être fatale 10 Un marché qui a ses propres enjeux
  • 11. Les principaux outils utilisés lors du développement sur la plateforme via le SDK d’Android fourni par Google: SDK et Device Manager Eclipse avec le plugin ADT Émulateur Android Débogueur SQL Lite 11 Les outils pour le développement Android
  • 12. Permet de télécharger les différents versions du système d’exploitation et des APIs de google Permet également de créer, modifier et démarrer les appareils virtuels 12 SDK et Device Manager
  • 13. Accès aux outils du SDK directement via Eclipse Assistant étape par étape (« wizard ») pour la création de nouveaux projets Android Éditeurs de code et de fichiers XML selon les standards de la plateforme Support pour le processus de compilation et de déploiement 13 Eclipse avec le plugin ADT
  • 14. Permet de sélectionner les attributs principaux de l’appareil : Identifiant unique Version du système d’exploitation Taille de la carte SD Skin ou résolution d’écran Paramètres de configuration technologique (support caméra, quantité de mémoire, présence du GPS, etc.) 14 Émulateur Android
  • 15. Quelques raccourcis importants : Faire pivoter l’écran : CTRL-F12 Permuter l’activation de la simulation du réseau cellulaire : F8 Permuter le profilage de code : F9 Quelques paramètres de démarrage intéressants : -netdelay <delay> : simuler de la latence réseau -netspeed <speed> : simuler un certain débit réseau -cpudelay <delay> : simuler un ralentissement du processeur 15 Émulateur Android
  • 16. Dalvik (la JVM Android) Debug Monitor Server – DDMS Sur Android chaque application roule sa propre instance de Dalvik avec son propre port pour le débogueur 16 Débogueur
  • 17. Les principales fonctionnalités supplémentaires du débugueur : Exploration complète de l’empreinte mémoire / CPU de l’appareil Prise de captures d’écrans de l’émulateur ou d’un appareil Simuler des appels et des SMS sur l’émulateur pour tester le comportement de l’application Explorer les fichiers de l’émulateur ou d’un appareil Voir les processus en cours sur l’émulateur ou un appareil (ps) Voir les journaux de l’émulateur ou d’un appareil 17 Débogueur
  • 18. Il s’agit de la base de données au cœur des applications de la plateforme L’outil permet également d’explorer les bases de données du téléphone à distance pour pouvoir débugger à distance les opérations sur la base de données Permet par exemple de charger des données de test Il est aussi possible de télécharger le fichier de base de données et utiliser un logiciel libre graphique de navigation dans la base de données 18 SQL Lite
  • 19. 19 Architecture des applications Android
  • 20.
  • 21. Il s’agit de la représentation d’un interface utilisateur pour supporter un but précis pour l’utilisateur
  • 22. On peut le comparer à la partie contrôleur d’une application MVC
  • 23.
  • 24. 22 Activity - Exemple public class InformationListActivityextendsListActivityimplementsOnClickListener { @Override public voidonCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.information_list); TextView tt = (TextView) findViewById(R.id.label); if (tt != null) { tt.setText(getText(R.string.informationTitleBar)); } } public voidonListItemClick(ListView parent, View v, int position, long id) { … }
  • 25.
  • 26. Il peut s’agir par exemple de jouer de la musique en arrière plan ou encore du calcul de données en arrière plan pour être par la suite présentées à la vue lorsque disponibles
  • 27.
  • 28. Il s’agit donc d’un objet que l’on passe à la méthode de démarrage d’une activitéIntentintent = new Intent(getApplicationContext(), InformationActivity.class); intent.putExtra("id", id); Cursoritem = (Cursor) adapter.getItem(position); String name = item.getString(item.getColumnIndex("name")); intent.putExtra("name", name); String htmlURL = item.getString(item.getColumnIndex("html_url")); intent.putExtra("htmlUrl", htmlURL); startActivity(intent);
  • 29.
  • 30. Les vues sont par la suite agrégées afin de créer des écrans via le fichier de positionnement (« layout »)
  • 31. Un ensemble complet de vues sont fournies par le cadre d’applications
  • 32. Button, Checkbox, EditText, DatePicker, etc. pour les formulaires
  • 38.
  • 39. Certaines vues fournies avec le cadre d’applications requièrent l’utilisation d’un adapter dont les ListViewspublic class InformationAdapterextendsBaseCursorAdapter { public final static String QUERY = "select * from info, info_name " + " whereinfo._id = info_name._id and " + " info_name.locale = :LANG and deleted=0 order by rankdesc"; … @Override public voidbindView(Viewview, Contextcontext, Cursorcursor) { TextView tt = (TextView) view.findViewById(R.id.name); if (tt != null) { tt.setText(cursor.getString(cursor.getColumnIndex("name"))); } } }
  • 40.
  • 41. Ils sont composés sous la forme de fichiers XML définissant le positionnement ou le séquencement des différents éléments
  • 42. Ils sont définis sous la forme d’un arbre de vues et de groupes de vues permettant le maximum de réutilisation
  • 43.
  • 44.
  • 46. Color
  • 49. Menu
  • 51. Style
  • 52.
  • 53. Les conventions de nommage utilisent les codes iso pour les différents pays
  • 54. Ainsi il s’agit de définit par exemple les répertoires suivants pour différencier les images en anglais et français :
  • 57. Même approche pour les différents formats d’écrans
  • 60.
  • 63. La liste des activités de l’application
  • 65. L’utilisation de librairies externe (ex: Google Maps)
  • 66.
  • 67. 33 AndroidManifest.xml – un exemple … <uses-libraryandroid:name="com.google.android.maps" /> </application> <uses-permissionandroid:name="android.permission.INTERNET"/> <uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permissionandroid:name="android.permission.CALL_PHONE"/> </manifest>
  • 68. Exportation de l’application avec l’environnement de développement dans un fichier .apk Signature de l’application avec keytool et jarsigner S’inscrire pour publier l’application sur le AndroidMarket (25$ à vie) Soumettre l’application en la décrivant correctement Et voilà elle est là ! Quoi ? Pas de processus d’approbation ? Non! On parle plutôt d’une gestion à postériori ! Les frais de transaction prélevés sur AndroidMarket équivalent à 30 % du prix de l'application. 34 Le processus de publication
  • 69. Suivre l’évolution des OS selon les statistiques officielles Reference : http://developer.android.com/resources/dashboard/platform-versions.html 35 Bien gérer la multitude des appareils
  • 70. Suivre l’évolution des écrans selon les statistiques officielles Reference : http://developer.android.com/resources/dashboard/screens.html 36 Bien gérer la multitude des appareils
  • 71. Tester sur les appareils eux-mêmes dans de vrais situations Afin de tester les usages véritables de l’appareil, rotations aléatoires, résolutions d’écrans différents, etc. Et bien sûr, l’expérience avec l’écran tactile et les boutons de l’appareil 37 Bien gérer la multitude des appareils