Développement sur Android

Dimension: px
Commencer à balayer dès la page:

Download "Développement sur Android"

Transcription

1 Développement sur Android V. Barichard LERIA - Département Informatique Université d Angers L3 - Informatique L3 - Informatique Développement sur Android 1

2 Le développement sur plateformes mobiles Android Chapitre I Le développement sur plateformes mobiles Android 1 Une histoire très récente 2 Le SDK d Android et AndroidStudio 3 Le système de construction Gradle 4 Ma première application Android L3 - Informatique Développement sur Android 2

3 Le développement sur plateformes mobiles Android Plan Une histoire très récente 1 Une histoire très récente 2 Le SDK d Android et AndroidStudio 3 Le système de construction Gradle 4 Ma première application Android L3 - Informatique Développement sur Android 3

4 Le développement sur plateformes mobiles Android Une histoire très récente La naissance du smartphone 1994 : Le Simon IBM 1996 : Les Nokia sous Symbian 1997 : Les smartphones Ericsson 2001 : L environnement Palm OS 2002 : Le Pocket PC de Microsoft 2002 : Les smartphones BlackBerry 2007 : L Iphone avec l ios d Apple 2008 : Le HTC Dream sous l Android de Google L3 - Informatique Développement sur Android 4

5 Le développement sur plateformes mobiles Android Une histoire très récente La naissance du smartphone 1994 : Le Simon IBM 1996 : Les Nokia sous Symbian 1997 : Les smartphones Ericsson 2001 : L environnement Palm OS 2002 : Le Pocket PC de Microsoft 2002 : Les smartphones BlackBerry 2007 : L Iphone avec l ios d Apple 2008 : Le HTC Dream sous l Android de Google L3 - Informatique Développement sur Android 4

6 Le développement sur plateformes mobiles Android Une histoire très récente La naissance du smartphone 1994 : Le Simon IBM 1996 : Les Nokia sous Symbian 1997 : Les smartphones Ericsson 2001 : L environnement Palm OS 2002 : Le Pocket PC de Microsoft 2002 : Les smartphones BlackBerry 2007 : L Iphone avec l ios d Apple 2008 : Le HTC Dream sous l Android de Google L3 - Informatique Développement sur Android 4

7 Le développement sur plateformes mobiles Android Une histoire très récente La naissance du smartphone 1994 : Le Simon IBM 1996 : Les Nokia sous Symbian 1997 : Les smartphones Ericsson 2001 : L environnement Palm OS 2002 : Le Pocket PC de Microsoft 2002 : Les smartphones BlackBerry 2007 : L Iphone avec l ios d Apple 2008 : Le HTC Dream sous l Android de Google L3 - Informatique Développement sur Android 4

8 Le développement sur plateformes mobiles Android Une histoire très récente La naissance du smartphone 1994 : Le Simon IBM 1996 : Les Nokia sous Symbian 1997 : Les smartphones Ericsson 2001 : L environnement Palm OS 2002 : Le Pocket PC de Microsoft 2002 : Les smartphones BlackBerry 2007 : L Iphone avec l ios d Apple 2008 : Le HTC Dream sous l Android de Google L3 - Informatique Développement sur Android 4

9 Le développement sur plateformes mobiles Android Une histoire très récente La naissance du smartphone 1994 : Le Simon IBM 1996 : Les Nokia sous Symbian 1997 : Les smartphones Ericsson 2001 : L environnement Palm OS 2002 : Le Pocket PC de Microsoft 2002 : Les smartphones BlackBerry 2007 : L Iphone avec l ios d Apple 2008 : Le HTC Dream sous l Android de Google L3 - Informatique Développement sur Android 4

10 Le développement sur plateformes mobiles Android Une histoire très récente La naissance du smartphone 1994 : Le Simon IBM 1996 : Les Nokia sous Symbian 1997 : Les smartphones Ericsson 2001 : L environnement Palm OS 2002 : Le Pocket PC de Microsoft 2002 : Les smartphones BlackBerry 2007 : L Iphone avec l ios d Apple 2008 : Le HTC Dream sous l Android de Google L3 - Informatique Développement sur Android 4

11 Le développement sur plateformes mobiles Android Une histoire très récente La naissance du smartphone 1994 : Le Simon IBM 1996 : Les Nokia sous Symbian 1997 : Les smartphones Ericsson 2001 : L environnement Palm OS 2002 : Le Pocket PC de Microsoft 2002 : Les smartphones BlackBerry 2007 : L Iphone avec l ios d Apple 2008 : Le HTC Dream sous l Android de Google L3 - Informatique Développement sur Android 4

12 Le développement sur plateformes mobiles Android Une histoire très récente Le développement sur smartphones L émergence de ios ios est le premier système d exploitation démocratisant l utilisation des smartphones Simple d utilisation et pourvu d un grand nombre d applications il plait au plus grand nombre Il est associé à un «SDK» et un «store» d applications accessibles aux développeurs Android dans ses premières versions était moins simple que ios mais plus complet et paramétrable Il centre ses développements vers la géolocalisation et les réseaux sociaux Il offre comme ios un «SDK» (Open Source) et un «store» d applications Windows souffre du manque d applications FirefoxOS arrive un peu tard? L3 - Informatique Développement sur Android 5

13 Le développement sur plateformes mobiles Android Une histoire très récente Google Slogan : «Don t be evil» Fondé le 27 septembre 1998 par Larry Page et Sergey Brin Restructurée et incorporée à Alphabet en 2015 Chiffre d affaires en 2014 : 42 milliards de $ Effectif (en 2015) : Développe des produits connus et répandus : Moteur de recherche, YouTube, Chrome, AdSense, GoogleEarth, Android Google a bâti sa renommée grâce à l utilisation de produits «Open Source» En retour Google soutient l Open Source en employant certains de ses grands acteurs C est en appliquant cette idée qu il développe Android, un système d exploitation libre pour smartphones L3 - Informatique Développement sur Android 6

14 Le développement sur plateformes mobiles Android Une histoire très récente Android Android est un système d exploitation Open Source basé sur un noyau Linux Il fonctionne sur smartphones, tablettes, montres, lunettes,... Initialement développé par une startup du même nom, rachetée par Google en 2005 En 2008, le gphone est lancé aux États-Unis dans un parteneriat entre Google et T-mobile La mascotte BugDroid est un personnage du jeu Gauntlet : The Third Encounter sorti sur Atari dans les années 1990 L3 - Informatique Développement sur Android 7

15 Le développement sur plateformes mobiles Android Une histoire très récente Android Android est un système d exploitation Open Source basé sur un noyau Linux Il fonctionne sur smartphones, tablettes, montres, lunettes,... Initialement développé par une startup du même nom, rachetée par Google en 2005 En 2008, le gphone est lancé aux États-Unis dans un parteneriat entre Google et T-mobile La mascotte BugDroid est un personnage du jeu Gauntlet : The Third Encounter sorti sur Atari dans les années 1990 L3 - Informatique Développement sur Android 7

16 Le développement sur plateformes mobiles Android Une histoire très récente Enjeux pour Google Avènement de l Open Handset Alliance Google est dépendant d acteurs tiers du marché Sa politique actuelle est d étendre aux smartphones ses services existants (recherche, publicité, réseaux sociaux,... ) En 2007, Google initie la création de l Open Handset Alliance Composée en 2013 de 84 industriels A pour objectif de développer des normes ouvertes pour les appareils mobiles Diversification des appareils utilisant Android (téléviseurs, appareils photos, montres, lunettes,... ) L3 - Informatique Développement sur Android 8

17 Le développement sur plateformes mobiles Android Une histoire très récente Stratégie et rentabilité d Android Revenus basés sur la vente d applications et l intégration de la publicité Android est rentable depuis octobre 2010 et génère plus de revenus qu ios depuis novembre 2010 Stratégie de développement : Basée sur l Open Source Un «store» de plusieurs milliers d applications Des mises à jours régulières et faciles d installation Un système ouvert pour facilité sa diffusion et son adaptation sur différents matériels L3 - Informatique Développement sur Android 9

18 Le développement sur plateformes mobiles Android Plan Le SDK d Android et AndroidStudio 1 Une histoire très récente 2 Le SDK d Android et AndroidStudio 3 Le système de construction Gradle 4 Ma première application Android L3 - Informatique Développement sur Android 10

19 Le développement sur plateformes mobiles Android Qu est-ce qu un programme Android? Le SDK d Android et AndroidStudio Android offre un framework riche mais suffisamment rigide et étanche : Du XML pour les interfaces Les activités : briques de base d une application Les services : conçus pour durer Les fournisseurs de contenus : abstraction de données Les intentions (intents) : interagir avec le système Android permet d accéder aux fonctionnalités avancées de l appareil : Stockage (base de données, support externe) Réseau (Wifi, Bluetooth, 3G,... ) Multimédia (lecture audio, photo, caméra) GPS (géolocalisation des applications par différents moyens) Services de téléphonie (appels, SMS) L3 - Informatique Développement sur Android 11

20 Le développement sur plateformes mobiles Android Qu est-ce qu un programme Android? Le SDK d Android et AndroidStudio Android offre un framework riche mais suffisamment rigide et étanche : Du XML pour les interfaces Les activités : briques de base d une application Les services : conçus pour durer Les fournisseurs de contenus : abstraction de données Les intentions (intents) : interagir avec le système Android permet d accéder aux fonctionnalités avancées de l appareil : Stockage (base de données, support externe) Réseau (Wifi, Bluetooth, 3G,... ) Multimédia (lecture audio, photo, caméra) GPS (géolocalisation des applications par différents moyens) Services de téléphonie (appels, SMS) L3 - Informatique Développement sur Android 11

21 Le développement sur plateformes mobiles Android Le SDK d Android et AndroidStudio Le SDK d Android Langage Java Sauf cas particuliers, une application Android est écrite en Java Le code Java est compilé pour pouvoir s exécuter sur la machine virtuelle Dalvik embarquée sur Android L application est empaquetée dans un fichier APK (Android PacKage) puis installée sur l appareil Le JDK (Java Development Kit) est un prérequis à la réalisation d un programme Android L3 - Informatique Développement sur Android 12

22 Le développement sur plateformes mobiles Android Le SDK d Android Installation Le SDK d Android et AndroidStudio Les outils de développement d Android : Installation «des» SDK et des greffons : Dans le répertoire tools/, lancer l Android SDK and AVD Manager (exécuter le script android ou le programme setup.exe) Sélectionner puis installer les versions du SDK voulues ainsi que les greffons tiers requis (API Google Maps) L3 - Informatique Développement sur Android 13

23 Le développement sur plateformes mobiles Android Le SDK d Android La jungle des matériels et des versions Le SDK d Android et AndroidStudio Plusieurs versions d Android coexistent À chaque version du système est associé un niveau d API Une «cible» est la combinaison d un niveau d API et d un indicateur précisant si l on inclut les API Google : 10 : Android GINGERBREAD 19 : Android 4.4 KITKAT 21/22 : Android 5.0.x 5.1.x LOLLIPOP 23 : Android 6.0.x MARSHMALLOW L3 - Informatique Développement sur Android 14

24 Le développement sur plateformes mobiles Android L émulateur, un outil indispensable Le SDK d Android et AndroidStudio L émulateur Android permet de simuler plusieurs terminaux Informations nécessaires à la configuration d un AVD : Une version cible du SDK Des informations sur le stockage (mémoire, carte SD) Résolution de l appareil choisi L3 - Informatique Développement sur Android 15

25 Le développement sur plateformes mobiles Android Monitor, le couteau Suisse Le SDK d Android et AndroidStudio Monitor permet de : Parcourir les logs de l émulateur Modifier la position GPS Simuler la réception de SMS ou d appels Prendre une capture d écran de l émulateur Accéder au gestionnaire du SDK et des émulateurs... L3 - Informatique Développement sur Android 16

26 Le développement sur plateformes mobiles Android AndroidStudio Le SDK d Android et AndroidStudio AndroidStudio est un IDE adapté pour le développement des applications Android : Création de projets Édition du code Gestion des émulateurs Compilation, déboggage et exécution dans un émulateur AndroidStudio n est toutefois pas indispensable : Le système de «build» Gradle peut être utilisé manuellement Il faut ensuite utiliser Android et adb pour exécuter des actions spécifiques Android (création de projet, déploiement,... ) L3 - Informatique Développement sur Android 17

27 Le développement sur plateformes mobiles Android AndroidStudio Le SDK d Android et AndroidStudio AndroidStudio est un IDE adapté pour le développement des applications Android : Création de projets Édition du code Gestion des émulateurs Compilation, déboggage et exécution dans un émulateur AndroidStudio n est toutefois pas indispensable : Le système de «build» Gradle peut être utilisé manuellement Il faut ensuite utiliser Android et adb pour exécuter des actions spécifiques Android (création de projet, déploiement,... ) L3 - Informatique Développement sur Android 17

28 Le développement sur plateformes mobiles Android Plan Le système de construction Gradle 1 Une histoire très récente 2 Le SDK d Android et AndroidStudio 3 Le système de construction Gradle 4 Ma première application Android L3 - Informatique Développement sur Android 18

29 Le développement sur plateformes mobiles Android Le système de construction Gradle Passage à Gradle Un nouveau système pour la construction des paquets Au début, le système de construction utilisé dans Android était ant ant est le système de gestion de compilation utilisé par Java Depuis JellyBean un nouveau système à été introduit : Gradle Il tend maintenant à devenir le système de constuction/compilation principal d Android Il est utilisé par AndroidStudio et intégré à l outil en ligne de commande L3 - Informatique Développement sur Android 19

30 Le développement sur plateformes mobiles Android Le système de construction Gradle Présentation de Gradle Un moteur de production (à la cmake, ant,... ) Gradle fonctionne à base de tâches décrivant le processus de construction Les tâches sont décrite dans un fichier de construction en Groovy 1 Lorsqu il utilise un démon en tâche de fond, les compilations suivantes sont plus rapides Il est souvent utilisé à travers un wrapper (un script) effectuant des vérifications supplémentaires./gradlew help : pour obtenir l aide./gradlew tasks : donne la liste des tâches connues./gradlew installdebug : compile et installe le projet sur un device Android 1. Langage objet similaire à Java L3 - Informatique Développement sur Android 20

31 Le développement sur plateformes mobiles Android Le système de construction Gradle Présentation de Gradle Un moteur de production (à la cmake, ant,... ) Gradle fonctionne à base de tâches décrivant le processus de construction Les tâches sont décrite dans un fichier de construction en Groovy 1 Lorsqu il utilise un démon en tâche de fond, les compilations suivantes sont plus rapides Il est souvent utilisé à travers un wrapper (un script) effectuant des vérifications supplémentaires./gradlew help : pour obtenir l aide./gradlew tasks : donne la liste des tâches connues./gradlew installdebug : compile et installe le projet sur un device Android 1. Langage objet similaire à Java L3 - Informatique Développement sur Android 20

32 Le développement sur plateformes mobiles Android Android et Gradle Le greffon Android Le système de construction Gradle Gradle utilise des greffons pour l ajout d extensions Java, dépôt JCentral, Android, tests unitaires Ces greffons créent la structure du projet, les tâches,... Le greffon Android gère les spécificités d Android La structure d un projet a été remaniée Structure du projet pour le greffon Android build.gradle gradlew gradle/ src/main/ AndroidManifest.xml assets/ java/ --> (Sources) res/ --> (Ressources) src/androidtest/... L3 - Informatique Développement sur Android 21

33 Le développement sur plateformes mobiles Android Android et Gradle Le greffon Android Le système de construction Gradle Gradle utilise des greffons pour l ajout d extensions Java, dépôt JCentral, Android, tests unitaires Ces greffons créent la structure du projet, les tâches,... Le greffon Android gère les spécificités d Android La structure d un projet a été remaniée Structure du projet pour le greffon Android build.gradle gradlew gradle/ src/main/ AndroidManifest.xml assets/ java/ --> (Sources) res/ --> (Ressources) src/androidtest/... L3 - Informatique Développement sur Android 21

34 Le développement sur plateformes mobiles Android Plan Ma première application Android 1 Une histoire très récente 2 Le SDK d Android et AndroidStudio 3 Le système de construction Gradle 4 Ma première application Android L3 - Informatique Développement sur Android 22

35 Le développement sur plateformes mobiles Android Ma première application Android Création d un projet En ligne de commande Un squelette complet pour un projet Android peut-être créé par la commande suivante : android create project --target "android-23" \ --gradle --gradle-version \ --path ProjetTest --activity Debut \ --package com.univangers.l3info.projettest Liste des cibles disponibles : android list targets Compilation, installation :./gradlew installdebug Un fichier apk a été créé et installé Le programme est disponible sur l émulateur dans le launcher L3 - Informatique Développement sur Android 23

36 Le développement sur plateformes mobiles Android Ma première application Android Organisation d un projet En ligne de commande Un projet Android est constitué d une arborescence de répertoires et de fichiers : AndroidManifest.xml, *.properties res/, java/, assets/, gen/ Le répertoire java/ contient la hiérarchie des sources La première compilation produira le fichier R.java contenant l activité principale le fichier nomapp-*.apk est un paquet contenant l application Android L3 - Informatique Développement sur Android 24

37 Le développement sur plateformes mobiles Android Organisation d un projet Le fichier AndroidManifest.xml Ma première application Android AndroidManifest.xml déclare les activités, services ainsi que la façon dont il s intègre au système <? xml version=" 1.0 " encoding="utf -8"?> < manifest xmlns:android =" http: // schemas. android.com /apk /res / android " package ="com. univangers. l3info. projettest "> <uses - sdk android:minsdkversion="21" /> < application android:label / app_name " android:icon / ic_launcher "> < activity android:name =" Debut " android:label / app_name "> <intent - filter> < action android:name =" android. intent. action.main " /> < category android:name =" android. intent. category. LAUNCHER " /> </intent - filter> </ activity > </ application > </ manifest > Le nom du paquet Java est la «base» de l application et de l espace de nom Il sert également d identifiant unique L3 - Informatique Développement sur Android 25

38 Le développement sur plateformes mobiles Android Organisation d un projet Le fichier AndroidManifest.xml Ma première application Android AndroidManifest.xml déclare les activités, services ainsi que la façon dont il s intègre au système <? xml version=" 1.0 " encoding="utf -8"?> < manifest xmlns:android =" http: // schemas. android.com /apk /res / android " package ="com. univangers. l3info. projettest "> <uses - sdk android:minsdkversion="21" /> < application android:label / app_name " android:icon / ic_launcher "> < activity android:name =" Debut " android:label / app_name "> <intent - filter> < action android:name =" android. intent. action.main " /> < category android:name =" android. intent. category. LAUNCHER " /> </intent - filter> </ activity > </ application > </ manifest > Le nom du paquet Java est la «base» de l application et de l espace de nom Il sert également d identifiant unique L3 - Informatique Développement sur Android 25

39 Le développement sur plateformes mobiles Android Organisation d un projet Le fichier AndroidManifest.xml Ma première application Android AndroidManifest.xml déclare les activités, services ainsi que la façon dont il s intègre au système <? xml version=" 1.0 " encoding="utf -8"?> < manifest xmlns:android =" http: // schemas. android.com /apk /res / android " package ="com. univangers. l3info. projettest "> <uses - sdk android:minsdkversion="21" /> < application android:label / app_name " android:icon / ic_launcher "> < activity android:name =" Debut " android:label / app_name "> <intent - filter> < action android:name =" android. intent. action.main " /> < category android:name =" android. intent. category. LAUNCHER " /> </intent - filter> </ activity > </ application > </ manifest > Le nom du paquet Java est la «base» de l application et de l espace de nom Il sert également d identifiant unique L3 - Informatique Développement sur Android 25

40 Le développement sur plateformes mobiles Android Organisation d un projet Le fichier AndroidManifest.xml Ma première application Android AndroidManifest.xml déclare les activités, services ainsi que la façon dont il s intègre au système <? xml version=" 1.0 " encoding="utf -8"?> < manifest xmlns:android =" http: // schemas. android.com /apk /res / android " package ="com. univangers. l3info. projettest "> <uses - sdk android:minsdkversion="21" /> < application android:label / app_name " android:icon / ic_launcher "> < activity android:name =" Debut " android:label / app_name "> <intent - filter> < action android:name =" android. intent. action.main " /> < category android:name =" android. intent. category. LAUNCHER " /> </intent - filter> </ activity > </ application > </ manifest > Le nom du paquet Java est la «base» de l application et de l espace de nom Il sert également d identifiant unique L3 - Informatique Développement sur Android 25

41 Méthodologie et conception adaptées : les activités Chapitre II Méthodologie et conception adaptées : les activités 1 Les «widgets» 2 Les «conteneurs» 3 Poser une question à l utilisateur Le framework des méthodes de saisie Widgets de sélection 4 Pour aller plus loin... Autres widgets et conteneurs Menus et «pop-ups» L3 - Informatique Développement sur Android 26

42 Méthodologie et conception adaptées : les activités Ma première application Un bouton et clic la date se met à jour... Un exemple uniquement en Java, à ne pas reproduire! package com. univangers. l3info. projettest ; import android.app. Activity ; import android.os. Bundle ; import android. view. View ; import android. widget. Button ; import java. util. Date ; public class Debut extends Activity implements View.OnClickListener { Button btn public void oncreate ( Bundle savedinstancestate ) { super. oncreate ( savedinstancestate ); btn = new Button ( this ); btn.setonclicklistener(this); updatetime (); setcontentview ( btn ); public void onclick( View view ) { updatetime (); private void updatetime () { btn. settext (new Date (). tostring ()); L3 - Informatique Développement sur Android 27

43 Méthodologie et conception adaptées : les activités Ma première application Un bouton et clic la date se met à jour... Un exemple uniquement en Java, à ne pas reproduire! package com. univangers. l3info. projettest ; import android.app. Activity ; import android.os. Bundle ; import android. view. View ; import android. widget. Button ; import java. util. Date ; public class Debut extends Activity implements View.OnClickListener { Button btn public void oncreate ( Bundle savedinstancestate ) { super. oncreate ( savedinstancestate ); btn = new Button ( this ); btn.setonclicklistener(this); updatetime (); setcontentview ( btn ); public void onclick( View view ) { updatetime (); private void updatetime () { btn. settext (new Date (). tostring ()); L3 - Informatique Développement sur Android 27

44 Méthodologie et conception adaptées : les activités Ma première application Un bouton et clic la date se met à jour... Un exemple uniquement en Java, à ne pas reproduire! package com. univangers. l3info. projettest ; import android.app. Activity ; import android.os. Bundle ; import android. view. View ; import android. widget. Button ; import java. util. Date ; public class Debut extends Activity implements View.OnClickListener { Button btn public void oncreate ( Bundle savedinstancestate ) { super. oncreate ( savedinstancestate ); btn = new Button ( this ); btn.setonclicklistener(this); updatetime (); setcontentview ( btn ); public void onclick( View view ) { updatetime (); private void updatetime () { btn. settext (new Date (). tostring ()); L3 - Informatique Développement sur Android 27

45 Méthodologie et conception adaptées : les activités Description de l interface graphique Le choix des ressources en XML Séparer la description de l interface de son comportement Les layouts XML sont stockés dans res/layout Lors de la compilation, les layouts sont assemblés et intégrés Chaque fichier XML décrit une View, il contient une arborescence d éléments dont les attributs peuvent : Décrire l aspect d un widget Décrire le comportement d un conteneur Les widgets sont accessibles depuis le code Java Le nom du fichier XML est celui de la classe du widget de la vue L3 - Informatique Développement sur Android 28

46 Méthodologie et conception adaptées : les activités Description de l interface graphique res/layout/main.xml <? xml version=" 1.0 " encoding="utf -8"?> < Button xmlns:android =" http: // schemas. android.com /apk /res / android " android:id ="@+id/ button " android:text ="" android:layout_width =" match_parent " android:layout_height =" match_parent " /> fill_parent a été renommé en match_parent depuis Android 2.2, version 8 de l API Code public void oncreate ( Bundle savedinstancestate ) { super. oncreate ( savedinstancestate ); setcontentview (R. layout.main ); btn = ( Button ) findviewbyid (R.id. button );... Convention de format Seule la première occurrence de l id fait apparaitre le «+» L3 - Informatique Développement sur Android 29

47 Méthodologie et conception adaptées : les activités Description de l interface graphique res/layout/main.xml <? xml version=" 1.0 " encoding="utf -8"?> < Button xmlns:android =" http: // schemas. android.com /apk /res / android " android:id ="@+id/ button " android:text ="" android:layout_width =" match_parent " android:layout_height =" match_parent " /> fill_parent a été renommé en match_parent depuis Android 2.2, version 8 de l API Code public void oncreate ( Bundle savedinstancestate ) { super. oncreate ( savedinstancestate ); setcontentview (R. layout.main ); btn = ( Button ) findviewbyid (R.id. button );... Convention de format Seule la première occurrence de l id fait apparaitre le «+» L3 - Informatique Développement sur Android 29

48 Méthodologie et conception adaptées : les activités Description de l interface graphique res/layout/main.xml <? xml version=" 1.0 " encoding="utf -8"?> < Button xmlns:android =" http: // schemas. android.com /apk /res / android " android:id ="@+id/ button " android:text ="" android:layout_width =" match_parent " android:layout_height =" match_parent " /> fill_parent a été renommé en match_parent depuis Android 2.2, version 8 de l API Code public void oncreate ( Bundle savedinstancestate ) { super. oncreate ( savedinstancestate ); setcontentview (R. layout.main ); btn = ( Button ) findviewbyid (R.id. button );... Convention de format Seule la première occurrence de l id fait apparaitre le «+» L3 - Informatique Développement sur Android 29

49 Méthodologie et conception adaptées : les activités Description de l interface graphique res/layout/main.xml <? xml version=" 1.0 " encoding="utf -8"?> < Button xmlns:android =" http: // schemas. android.com /apk /res / android " android:id ="@+id/ button " android:text ="" android:layout_width =" match_parent " android:layout_height =" match_parent " /> fill_parent a été renommé en match_parent depuis Android 2.2, version 8 de l API Code public void oncreate ( Bundle savedinstancestate ) { super. oncreate ( savedinstancestate ); setcontentview (R. layout.main ); btn = ( Button ) findviewbyid (R.id. button );... Convention de format Seule la première occurrence de l id fait apparaitre le «+» L3 - Informatique Développement sur Android 29

50 Méthodologie et conception adaptées : les activités Description de l interface graphique res/layout/main.xml <? xml version=" 1.0 " encoding="utf -8"?> < Button xmlns:android =" http: // schemas. android.com /apk /res / android " android:id ="@+id/ button " android:text ="" android:layout_width =" match_parent " android:layout_height =" match_parent " /> fill_parent a été renommé en match_parent depuis Android 2.2, version 8 de l API Code public void oncreate ( Bundle savedinstancestate ) { super. oncreate ( savedinstancestate ); setcontentview (R. layout.main ); btn = ( Button ) findviewbyid (R.id. button );... Convention de format Seule la première occurrence de l id fait apparaitre le «+» L3 - Informatique Développement sur Android 29

51 Méthodologie et conception adaptées : les activités Les «widgets» Plan 1 Les «widgets» 2 Les «conteneurs» 3 Poser une question à l utilisateur Le framework des méthodes de saisie Widgets de sélection 4 Pour aller plus loin... Autres widgets et conteneurs Menus et «pop-ups» L3 - Informatique Développement sur Android 30

52 Méthodologie et conception adaptées : les activités Les «widgets» Introduction Les principaux widgets héritent de la classe View Ils ont une taille minimale qui s adapte en fonction de leur contenu Le padding permet de contrôler l espacement avec les widgets adjacents Un widget peut changer d état (actif/inactif) avec setenabled() requestfocus() donne le focus à un widget particulier getparent() retourne le widget ou le conteneur parent findviewbyid() renvoie un widget d après son identifiant getrootview() renvoie la racine de l arborescence (fournie à l activité via l appel à setcontentview()) L3 - Informatique Développement sur Android 31

53 Méthodologie et conception adaptées : les activités Les «widgets» Les «labels» et les «boutons» Le widget label est obtenu avec une instance de TextView Un élément TextView possède de nombreux attributs : android:text, android:typeface,... Le widget Button (sous-classe de TextView) a déjà été vu plus tôt Depuis Android 1.6, un écouteur de clic peut être ajouté à la ressource : Une méthode publique de l activité (prenant un argument View et renvoyant void) doit être définie L attribut android:onclick du Button doit être renseigné L3 - Informatique Développement sur Android 32

54 Méthodologie et conception adaptées : les activités Les «widgets» Les «labels» et les «boutons» Le widget label est obtenu avec une instance de TextView Un élément TextView possède de nombreux attributs : android:text, android:typeface,... Le widget Button (sous-classe de TextView) a déjà été vu plus tôt Depuis Android 1.6, un écouteur de clic peut être ajouté à la ressource : Une méthode publique de l activité (prenant un argument View et renvoyant void) doit être définie L attribut android:onclick du Button doit être renseigné L3 - Informatique Développement sur Android 32

55 Méthodologie et conception adaptées : les activités Les «widgets» Les «labels» et les «boutons» exemple <? xml version=" 1.0 " encoding="utf -8"?> < Button xmlns:android =" http: // schemas. android.com /apk /res / android " android:id ="@+id/ button " android:text ="" android:onclick =" clicreaction " android:layout_width =" match_parent " android:layout_height =" match_parent " />... public class Debut extends Activity public void oncreate ( Bundle savedinstancestate ) { super. oncreate ( savedinstancestate ); setcontentview (R. layout.main ); updatetime (); public void clicreaction ( View view ) { updatetime (); private void updatetime () { Button btn ; btn = ( Button ) findviewbyid (R.id. button ); btn. settext (new Date (). tostring ()); L3 - Informatique Développement sur Android 33

56 Méthodologie et conception adaptées : les activités Les «widgets» Les «labels» et les «boutons» exemple <? xml version=" 1.0 " encoding="utf -8"?> < Button xmlns:android =" http: // schemas. android.com /apk /res / android " android:id ="@+id/ button " android:text ="" android:onclick =" clicreaction " android:layout_width =" match_parent " android:layout_height =" match_parent " />... public class Debut extends Activity public void oncreate ( Bundle savedinstancestate ) { super. oncreate ( savedinstancestate ); setcontentview (R. layout.main ); updatetime (); public void clicreaction ( View view ) { updatetime (); private void updatetime () { Button btn ; btn = ( Button ) findviewbyid (R.id. button ); btn. settext (new Date (). tostring ()); L3 - Informatique Développement sur Android 33

57 Méthodologie et conception adaptées : les activités Les «widgets» Les images Les widgets ImageView et ImageButton permettent d intégrer des images ImageButton (sous-classe de ImageView) ajoute les comportements d un Button à ImageView L attribut android:src précise la ressource graphique à utiliser L3 - Informatique Développement sur Android 34

58 Méthodologie et conception adaptées : les activités Les «widgets» Les champs de saisie Le widget EditText permet d éditer et de capturer du texte saisi par l utilisateur Il hérite de TextView mais possède des propriétés supplémentaires : android:autotext, android:inputtype, android:singleline,... L3 - Informatique Développement sur Android 35

59 Méthodologie et conception adaptées : les activités Les «widgets» Les champs de saisie exemple <? xml version=" 1.0 " encoding="utf -8"?> < EditText xmlns:android =" http: // schemas. android.com /apk /res / android " android:id ="@+id/ champs " android:layout_width =" match_parent " android:layout_height =" match_parent " android:singleline =" false " /> package com. univangers. l3info. projettest ; import android.app. Activity ; import android.os. Bundle ; import android. widget. EditText ; public class Debut extends Activity { /** Called when the activity is first created. public void oncreate ( Bundle savedinstancestate ) { super. oncreate ( savedinstancestate ); setcontentview (R. layout.main ); EditText txt = ( EditText ) findviewbyid (R.id. champs ); txt. settext ("Un exemple de saisie... "); L3 - Informatique Développement sur Android 36

60 Méthodologie et conception adaptées : les activités Les «widgets» Les champs de saisie exemple <? xml version=" 1.0 " encoding="utf -8"?> < EditText xmlns:android =" http: // schemas. android.com /apk /res / android " android:id ="@+id/ champs " android:layout_width =" match_parent " android:layout_height =" match_parent " android:singleline =" false " /> package com. univangers. l3info. projettest ; import android.app. Activity ; import android.os. Bundle ; import android. widget. EditText ; public class Debut extends Activity { /** Called when the activity is first created. public void oncreate ( Bundle savedinstancestate ) { super. oncreate ( savedinstancestate ); setcontentview (R. layout.main ); EditText txt = ( EditText ) findviewbyid (R.id. champs ); txt. settext ("Un exemple de saisie... "); L3 - Informatique Développement sur Android 36

61 Méthodologie et conception adaptées : les activités Les «widgets» Les cases à cocher Le widget CheckBox correspond à la boite à cocher Il hérite de CompoundButton qui dérive elle-même de TextView Les méthodes ischecked(), setchecked et toggle permettent d interagir avec le widget depuis le code Java Pour servir d écouteur, l activité doit implémenter l interface OnCheckedChangeListener L3 - Informatique Développement sur Android 37

62 Méthodologie et conception adaptées : les activités Les «widgets» Les cases à cocher exemple <? xml version=" 1.0 " encoding="utf -8"?> < CheckBox xmlns:android =" http: // schemas. android.com /apk /res / android " android:id ="@+id/ casecoche " android:layout_width =" match_parent " android:layout_height =" match_parent " android:text =" Case dé coch ée" /> import android. widget. CheckBox ; import android. widget. CompoundButton ; import android. widget. CompoundButton. OnCheckedChangeListener ; public class Debut extends Activity implements CompoundButton. OnCheckedChangeListener { CheckBox public void oncreate ( Bundle savedinstancestate ) { super. oncreate ( savedinstancestate ); setcontentview (R. layout.main ); cb = ( CheckBox ) findviewbyid (R.id. casecoche ); cb. setoncheckedchangelistener (this ); public void oncheckedchanged ( CompoundButton buttonview, boolean ischecked ) { if ( ischecked ) cb. settext ("Case coch ée"); else cb. settext ("Case dé coch ée"); L3 - Informatique Développement sur Android 38

63 Méthodologie et conception adaptées : les activités Les «widgets» Les cases à cocher exemple <? xml version=" 1.0 " encoding="utf -8"?> < CheckBox xmlns:android =" http: // schemas. android.com /apk /res / android " android:id ="@+id/ casecoche " android:layout_width =" match_parent " android:layout_height =" match_parent " android:text =" Case dé coch ée" /> import android. widget. CheckBox ; import android. widget. CompoundButton ; import android. widget. CompoundButton. OnCheckedChangeListener ; public class Debut extends Activity implements CompoundButton. OnCheckedChangeListener { CheckBox public void oncreate ( Bundle savedinstancestate ) { super. oncreate ( savedinstancestate ); setcontentview (R. layout.main ); cb = ( CheckBox ) findviewbyid (R.id. casecoche ); cb. setoncheckedchangelistener (this ); public void oncheckedchanged ( CompoundButton buttonview, boolean ischecked ) { if ( ischecked ) cb. settext ("Case coch ée"); else cb. settext ("Case dé coch ée"); L3 - Informatique Développement sur Android 38

64 Méthodologie et conception adaptées : les activités Les «widgets» Les boutons radios Le widget RadioButton implémente le comportement du bouton radio Comme CheckBox, il hérite de CompoundButton et permet d utiliser ischecked(), toggle(),... Les RadioButton sont groupés dans un RadioGroup afin de les lier En y affectant un id, le groupe devient accessible depuis le code Java L3 - Informatique Développement sur Android 39

65 Méthodologie et conception adaptées : les activités Les «widgets» Les boutons radios exemple <? xml version=" 1.0 " encoding="utf -8"?> < RadioGroup xmlns:android =" http: // schemas. android.com /apk /res / android " android:orientation =" vertical " android:layout_width =" match_parent " android:layout_height =" match_parent " > < RadioButton android:id ="@+id/ radiobleu " android:layout_width =" wrap_content " android:layout_height =" wrap_content " android:text =" Bleu " /> < RadioButton android:id ="@+id/ radiorouge " android:layout_width =" wrap_content " android:layout_height =" wrap_content " android:text =" Rouge " /> < RadioButton android:id ="@+id/ radiovert " android:layout_width =" wrap_content " android:layout_height =" wrap_content " android:text =" Vert " /> </ RadioGroup > L3 - Informatique Développement sur Android 40

66 Méthodologie et conception adaptées : les activités Les «conteneurs» Plan 1 Les «widgets» 2 Les «conteneurs» 3 Poser une question à l utilisateur Le framework des méthodes de saisie Widgets de sélection 4 Pour aller plus loin... Autres widgets et conteneurs Menus et «pop-ups» L3 - Informatique Développement sur Android 41

67 Méthodologie et conception adaptées : les activités Les «conteneurs» Introduction Le «layout manager» Dans quasiment toutes les bibliothèques graphiques, un «layout manager» place les widgets Pour donner les indications de placement, des «conteneurs» sont utilisés La plupart du temps, ils permettent de ranger les widgets en ligne ou dans une grille Android fournit plusieurs conteneurs dont les principaux : LinearLayout : pour le placement séquentiel RelativeLayout : pour le placement relatif TableLayout : pour le placement en grille ScrollView : pour le placement dans une zone avec barres de défilement Comme les widgets, ils peuvent être implémentés dans des ressources XML L3 - Informatique Développement sur Android 42

68 Méthodologie et conception adaptées : les activités Les «conteneurs» Introduction Le «layout manager» Dans quasiment toutes les bibliothèques graphiques, un «layout manager» place les widgets Pour donner les indications de placement, des «conteneurs» sont utilisés La plupart du temps, ils permettent de ranger les widgets en ligne ou dans une grille Android fournit plusieurs conteneurs dont les principaux : LinearLayout : pour le placement séquentiel RelativeLayout : pour le placement relatif TableLayout : pour le placement en grille ScrollView : pour le placement dans une zone avec barres de défilement Comme les widgets, ils peuvent être implémentés dans des ressources XML L3 - Informatique Développement sur Android 42

69 Méthodologie et conception adaptées : les activités Les «conteneurs» Le «LinearLayout» Le «LinearLayout» permet de disposer les widgets les uns derrières les autres dans une boite Il faut pour cela indiquer l orientation de la boite (verticale ou horizontale) ex : android:orientation="horizontal" La disposition des widgets dépend de la place occupée par le conteneur Les propriétés android:layout_width (et layout_height) modifient le comportement du widget : wrap_content indique que le widget occupe la place minimale nécessaire match_parent indique que le widget occupe tout l espace disponible de son conteneur Il est possible d indiquer des marges grâce aux propriétés android:layout_margin,... L3 - Informatique Développement sur Android 43

70 Méthodologie et conception adaptées : les activités Les «conteneurs» Le «LinearLayout» Poids et alignement Lorsque plusieurs widgets doivent se répartir l espace inéquitablement, des poids peuvent être renseignés dans android:layout_weight La propriété android:layout_height lors d une orientation verticale (resp. android:layout_width lors d une orientation horizontale) doit être mise à 0dp Les poids sont par défaut initialisés à 0 Les poids permettent de répartir l espace restant entre les widgets L alignement des widgets dans un LinearLayout est défini par la propriété android:layout_gravity setgravity() permet de modifier la propriété depuis le code Java Les gravités les plus courantes sont : left, right, center_horizontal et center_vertical L3 - Informatique Développement sur Android 44

71 Méthodologie et conception adaptées : les activités Les «conteneurs» Le «LinearLayout» Poids et alignement Lorsque plusieurs widgets doivent se répartir l espace inéquitablement, des poids peuvent être renseignés dans android:layout_weight La propriété android:layout_height lors d une orientation verticale (resp. android:layout_width lors d une orientation horizontale) doit être mise à 0dp Les poids sont par défaut initialisés à 0 Les poids permettent de répartir l espace restant entre les widgets L alignement des widgets dans un LinearLayout est défini par la propriété android:layout_gravity setgravity() permet de modifier la propriété depuis le code Java Les gravités les plus courantes sont : left, right, center_horizontal et center_vertical L3 - Informatique Développement sur Android 44

72 Méthodologie et conception adaptées : les activités Les «conteneurs» Le «LinearLayout» Exemple Il est possible de combiner les LinearLayout L3 - Informatique Développement sur Android 45

73 Méthodologie et conception adaptées : les activités Les «conteneurs» <? xml version=" 1.0 " encoding="utf -8"?> < LinearLayout xmlns:android =" http: // schemas. android.com /apk /res / android " android:orientation =" horizontal " android:layout_width =" match_parent " android:layout_height =" match_parent " > < LinearLayout android:orientation =" vertical " android:layout_width =" match_parent " android:layout_height =" match_parent " > < Button android:text ="Un" android:layout_width =" match_parent " android:layout_height ="0dp" android:layout_weight ="1" /> < Button android:text =" Deux " android:layout_width =" match_parent " android:layout_height ="0dp" android:layout_weight ="1" /> </ LinearLayout > </ LinearLayout > L3 - Informatique Développement sur Android 46

74 Méthodologie et conception adaptées : les activités Les «conteneurs» <? xml version=" 1.0 " encoding="utf -8"?> < LinearLayout xmlns:android =" http: // schemas. android.com /apk /res / android " android:orientation =" horizontal " android:layout_width =" match_parent " android:layout_height =" match_parent " > < LinearLayout xmlns:android =" http: // schemas. android.com /apk /res / android " < LinearLayout android:orientation =" vertical " android:orientation android:layout_width =" =" vertical match_parent " " android:layout_width android:layout_height =" =" match_parent "" > < Button android:layout_height android:text ="Un" match_parent " > < Button android:layout_width android:text ="Un" match_parent " android:layout_width android:layout_height =" ="0dp" match_parent " android:layout_weight android:layout_height ="1" ="0dp" /> < Button android:layout_weight android:text =" Deux ="2" " /> < Button android:layout_width android:text =" =" Deux match_parent " " android:layout_width android:layout_height =" ="0dp" match_parent " android:layout_weight android:layout_height ="1" ="0dp" /> </ LinearLayout android:layout_weight > ="1" /> </ </ LinearLayout LinearLayout > > </ LinearLayout > L3 - Informatique Développement sur Android 47

75 Méthodologie et conception adaptées : les activités Les «conteneurs» <? xml version=" 1.0 " encoding="utf -8"?> < LinearLayout android:orientation =" horizontal " android:layout_width =" match_parent " android:layout_height =" match_parent " > < LinearLayout xmlns:android =" http: // schemas. android.com /apk /res / android " < LinearLayout android:orientation =" vertical " android:orientation android:layout_width =" =" vertical match_parent " " android:layout_width android:layout_height =" =" match_parent "" > < Button android:layout_height android:text ="Un" match_parent " > < Button android:layout_width android:text ="Un" match_parent " < LinearLayout android:layout_width android:layout_height =" ="0dp" match_parent " android:orientation android:layout_weight android:layout_height =" ="1" ="0dp" vertical " /> android:layout_width < Button android:layout_weight =" android:text =" Deux ="2" match_parent " /> " < Button android:layout_height android:layout_width android:text =" =" Deux =" match_parent match_parent " " > " < Button android:layout_width android:text ="Un" android:layout_height ="0dp" match_parent " android:layout_width android:layout_weight android:layout_height =" ="1" ="0dp" wrap_content " /> </ LinearLayout android:layout_weight android:layout_height > ="1" ="0dp" /> </ </ LinearLayout LinearLayout android:layout_gravity > > =" left " </ LinearLayout android:layout_weight > ="1" /> < Button android:text =" Deux " android:layout_width =" wrap_content " android:layout_height ="0dp" android:layout_gravity =" center " android:layout_weight ="1" /> < Button android:text =" Trois " android:layout_width =" wrap_content " android:layout_height ="0dp" android:layout_gravity =" right " android:layout_weight ="1" /> </ LinearLayout > </ LinearLayout > L3 - Informatique Développement sur Android 48

76 Méthodologie et conception adaptées : les activités Les «conteneurs» Le «RelativeLayout» Le placement relatif des widgets Le RelativeLayout permet : De placer un widget relativement au conteneur De placer un widget à gauche, en dessous,... d un autre D aligner des widgets les uns par rapport aux autres Placement relatif au conteneur : android: (layout_alignparenttop, layout_alignparentbottom, layout_alignparentleft et layout_alignparentright) permettent d aligner le haut (resp. bas, gauche et droite) du widget avec celui du conteneur android: (layout_centerhorizontal, layout_centervertical et layout_centerinparent) permettent de centrer horizontalement (resp. verticalement et les deux) le widget dans le conteneur L3 - Informatique Développement sur Android 49

77 Méthodologie et conception adaptées : les activités Les «conteneurs» Le «RelativeLayout» Le placement relatif des widgets Le RelativeLayout permet : De placer un widget relativement au conteneur De placer un widget à gauche, en dessous,... d un autre D aligner des widgets les uns par rapport aux autres Placement relatif au conteneur : android: (layout_alignparenttop, layout_alignparentbottom, layout_alignparentleft et layout_alignparentright) permettent d aligner le haut (resp. bas, gauche et droite) du widget avec celui du conteneur android: (layout_centerhorizontal, layout_centervertical et layout_centerinparent) permettent de centrer horizontalement (resp. verticalement et les deux) le widget dans le conteneur L3 - Informatique Développement sur Android 49

78 Méthodologie et conception adaptées : les activités Les «conteneurs» Le «RelativeLayout» Le placement relatif des widgets Placement relatif aux widgets : android: (layout_above, layout_below, layout_toleftof et layout_torightof) permettent de placer un widget au-dessus (resp. en-dessous, à gauche ou à droite) d un autre widget android: (layout_aligntop, layout_alignbottom, layout_alignleft et layout_alignright) permettent d aligner le haut (resp. bas, gauche et droite) du widget avec un autre (indiqué) Il est aussi possible de recouvrir un widget par un autre en utilisant habilement ces propriétés L3 - Informatique Développement sur Android 50

79 Méthodologie et conception adaptées : les activités Les «conteneurs» Le «RelativeLayout» Faire référence à d autres widgets Lors du placement relatif, il faut faire référence à d autres widgets dans la ressource XML Comme nous l avons vu, les widgets peuvent avoir des id (les rendants accessibles depuis le code Java) Leur syntaxe est la suivante : android:id="@+id/nomunique" Le symbole "+" est ajouté uniquement la première fois où l id est utilisé < Button android :id="@+id/ btnok " android : layout_width =" wrap_content " android : layout_height =" wrap_content " android : text ="OK" /> < Button android:id ="@+id/ btncancel " android:layout_width =" wrap_content " android:layout_height =" wrap_content " android:layout_toleftof / btnok " android:layout_aligntop / btnok " android:text =" Annuler " /> L3 - Informatique Développement sur Android 51

80 Méthodologie et conception adaptées : les activités Les «conteneurs» Le «RelativeLayout» Faire référence à d autres widgets Lors du placement relatif, il faut faire référence à d autres widgets dans la ressource XML Comme nous l avons vu, les widgets peuvent avoir des id (les rendants accessibles depuis le code Java) Leur syntaxe est la suivante : android:id="@+id/nomunique" Le symbole "+" est ajouté uniquement la première fois où l id est utilisé < Button android :id="@+id/ btnok " android : layout_width =" wrap_content " android : layout_height =" wrap_content " android : text ="OK" /> < Button android:id ="@+id/ btncancel " android:layout_width =" wrap_content " android:layout_height =" wrap_content " android:layout_toleftof / btnok " android:layout_aligntop / btnok " android:text =" Annuler " /> L3 - Informatique Développement sur Android 51

81 Méthodologie et conception adaptées : les activités Les «conteneurs» Le «RelativeLayout» Faire référence à d autres widgets Lors du placement relatif, il faut faire référence à d autres widgets dans la ressource XML Comme nous l avons vu, les widgets peuvent avoir des id (les rendants accessibles depuis le code Java) Leur syntaxe est la suivante : android:id="@+id/nomunique" Le symbole "+" est ajouté uniquement la première fois où l id est utilisé < Button android :id="@+id/ btnok " android : layout_width =" wrap_content " android : layout_height =" wrap_content " android : text ="OK" /> < Button android:id ="@+id/ btncancel " android:layout_width =" wrap_content " android:layout_height =" wrap_content " android:layout_toleftof / btnok " android:layout_aligntop / btnok " android:text =" Annuler " /> L3 - Informatique Développement sur Android 51

82 Méthodologie et conception adaptées : les activités Les «conteneurs» Le «RelativeLayout» Exemple 1 L3 - Informatique Développement sur Android 52

83 Méthodologie et conception adaptées : les activités Les «conteneurs» Le «RelativeLayout» Exemple 1, ressource XML <? xml version=" 1.0 " encoding="utf -8"?> < RelativeLayout xmlns:android =" http: // schemas. android.com /apk /res / android " android:layout_width =" match_parent " android:layout_height =" wrap_content " > < TextView android:id ="@+id/ labelurl " android:layout_width =" wrap_content " android:layout_height =" wrap_content " android:text =" URL :" android:layout_alignbaseline ="@+id/ champsaisie " android:layout_alignparentleft =" true " /> < EditText android:id / champsaisie " android:layout_width =" match_parent " android:layout_height =" wrap_content " android:layout_torightof / labelurl " android:layout_alignparenttop =" true " /> < Button android:id ="@+id/ btnok " android:layout_width =" wrap_content " android:layout_height =" wrap_content " android:layout_below / champsaisie " android:layout_alignright / champsaisie " android:text ="OK" /> < Button android:id ="@+id/ btncancel " android:layout_width =" wrap_content " android:layout_height =" wrap_content " android:layout_toleftof / btnok " android:layout_aligntop / btnok " android:text =" Annuler " /> </ RelativeLayout > L3 - Informatique Développement sur Android 53

84 Méthodologie et conception adaptées : les activités Les «conteneurs» Le «RelativeLayout» Exemple 2 L3 - Informatique Développement sur Android 54

85 Méthodologie et conception adaptées : les activités Les «conteneurs» Le «RelativeLayout» Exemple 2, ressource XML <? xml version=" 1.0 " encoding="utf -8"?> < RelativeLayout xmlns:android =" http: // schemas. android.com /apk /res / android " android:layout_width =" match_parent " android:layout_height =" match_parent " > < TextView android:id ="@+id/ label " android:layout_width =" match_parent " android:layout_height =" match_parent " android:text ="Le texte est derri ère" android:textsize ="80 dip " /> < Button android:id ="@+id/btn " android:layout_width =" wrap_content " android:layout_height =" wrap_content " android:text =" bouton devant " android:layout_centerinparent =" true " /> </ RelativeLayout > L3 - Informatique Développement sur Android 55

86 Méthodologie et conception adaptées : les activités Les «conteneurs» Le «TableLayout» Le placement dans une grille Le TableLayout permet de placer les widgets dans les cellules d un tableau Il est forcément associé au conteneur TableRow symbolisant les lignes du tableau Il est possible d utiliser des poids comme LinearLayout pour la hauteur d une ligne Le nombre de colonnes est calculé en fonction de la ligne qui contient le plus de widgets La propriété android:layout_span permet de fusionner des cellules horizontalement La propriété android:layout_column force le widget à être dans la cellule indiquée L3 - Informatique Développement sur Android 56

87 Méthodologie et conception adaptées : les activités Les «conteneurs» Le «TableLayout» Influencer le comportement des colonnes Habituellement TableLayout ne contient que des TableRow Il est possible de glisser des widgets entre les lignes déconseillé La propriété android:stretchcolumns permet d étirer la ou les colonnes indiquées dans l espace libre La propriété android:shrinkcolumns permet de réduire la taille des colonnes indiquées en découpant les widgets sur plusieurs lignes La propriété android:collapsecolumns contient la liste des colonnes refermées initialement Évitez de combiner la gestion des poids android:layout_weight avec celle des android:layout_span et autres spécificités des TableLayout L3 - Informatique Développement sur Android 57

88 Méthodologie et conception adaptées : les activités Les «conteneurs» Le «TableLayout» Influencer le comportement des colonnes Habituellement TableLayout ne contient que des TableRow Il est possible de glisser des widgets entre les lignes déconseillé La propriété android:stretchcolumns permet d étirer la ou les colonnes indiquées dans l espace libre La propriété android:shrinkcolumns permet de réduire la taille des colonnes indiquées en découpant les widgets sur plusieurs lignes La propriété android:collapsecolumns contient la liste des colonnes refermées initialement Évitez de combiner la gestion des poids android:layout_weight avec celle des android:layout_span et autres spécificités des TableLayout L3 - Informatique Développement sur Android 57

89 Méthodologie et conception adaptées : les activités Les «conteneurs» Le «TableLayout» Exemple <? xml version=" 1.0 " encoding="utf -8"?> < TableLayout xmlns:android =" http: // schemas. android.com /apk /res / android " android:layout_width =" match_parent " android:layout_height =" match_parent " android:stretchcolumns ="1" > < TableRow > < TextView android:id ="@+id/ labelurl " android:text =" URL :" /> < EditText android:id ="@+id/ champsaisie " android:layout_span ="3" /> </ TableRow > <View android:layout_height ="2 dip " android:background ="# FF0000 " /> < TableRow > < Button android:id ="@+id/ btncancel " android:layout_column ="2" android:text =" Annuler " /> < Button android:id ="@+id/ btnok " android:text ="OK" /> </ TableRow > </ TableLayout > L3 - Informatique Développement sur Android 58

90 Méthodologie et conception adaptées : les activités Les «conteneurs» Le «ScrollView» Le défilement des widgets Scroller sur une activité est indispensable sur petit écran ScrollView est un conteneur permettant à un contenu de défiler Il permet d encapsuler un autre conteneur ne pouvant être affiché intégralement Des barres de défilement apparaissent Depuis Android 1.5, le conteneur HorizontalScrollView permet de faire défiler horizontalement les widgets contenus L3 - Informatique Développement sur Android 59

91 Méthodologie et conception adaptées : les activités Les «conteneurs» Le «ScrollView» Exemple <? xml version=" 1.0 " encoding="utf -8"?> < ScrollView xmlns:android =" http: // schemas. android.com /apk /res / android " android:layout_width =" match_parent " android:layout_height =" wrap_content " > < LinearLayout android:orientation =" vertical " android:layout_width =" match_parent " android:layout_height =" wrap_content " > < TextView android:text =" haut " android:layout_width =" wrap_content " android:layout_height =" wrap_content " android:layout_gravity =" center " /> <View android:layout_width =" match_parent " android:layout_height =" 1000 dip " android:background ="# FF0000 " /> < TextView android:text =" bas " android:layout_width =" wrap_content " android:layout_height =" wrap_content " android:layout_gravity =" center " /> </ LinearLayout > </ ScrollView > L3 - Informatique Développement sur Android 60

92 Méthodologie et conception adaptées : les activités Les «conteneurs» Le «ScrollView» Exemple <? xml version=" 1.0 " encoding="utf -8"?> < ScrollView xmlns:android =" http: // schemas. android.com /apk /res / android " android:layout_width =" match_parent " android:layout_height =" wrap_content " > < LinearLayout android:orientation =" vertical " android:layout_width =" match_parent " android:layout_height =" wrap_content " > < TextView android:text =" haut " android:layout_width =" wrap_content " android:layout_height =" wrap_content " android:layout_gravity =" center " /> <View android:layout_width =" match_parent " android:layout_height =" 1000 dip " android:background ="# FF0000 " /> < TextView android:text =" bas " android:layout_width =" wrap_content " android:layout_height =" wrap_content " android:layout_gravity =" center " /> </ LinearLayout > </ ScrollView > L3 - Informatique Développement sur Android 60

93 Méthodologie et conception adaptées : les activités Plan Poser une question à l utilisateur 1 Les «widgets» 2 Les «conteneurs» 3 Poser une question à l utilisateur Le framework des méthodes de saisie Widgets de sélection 4 Pour aller plus loin... Autres widgets et conteneurs Menus et «pop-ups» L3 - Informatique Développement sur Android 61

94 Méthodologie et conception adaptées : les activités Poser une question à l utilisateur 1 Les «widgets» 2 Les «conteneurs» 3 Poser une question à l utilisateur Le framework des méthodes de saisie Widgets de sélection 4 Pour aller plus loin... Autres widgets et conteneurs Menus et «pop-ups» L3 - Informatique Développement sur Android 62

95 Méthodologie et conception adaptées : les activités Claviers physiques et logiciels Poser une question à l utilisateur Depuis Android 1.5, le framework IMF 2 a été introduit IMF permet, par exemple, d abstraire la notion de clavier : Si il n y a pas de clavier physique un IME 3 apparaît Il permet aussi de contrôler l IME (contrôle du recouvrement, nature des données... ) La propriété android:inputtype indique la nature des données attendues lors d une saisie : text, number, phone, datetime, date, time Il est aussi possible de contrôler la touche accessoire en bas à droite du clavier La propriété android:imeoptions contrôle la touche accessoire (ex : actionsend, actiondone) 2. Input Method Framework 3. Input Method Editor L3 - Informatique Développement sur Android 63

96 Méthodologie et conception adaptées : les activités Contrôle du mode de saisie Poser une question à l utilisateur <? xml version =" 1.0 " encoding ="utf -8"?> < ScrollView xmlns:android =" http: // schemas. android. com / apk / res / android " android:layout_width =" match_parent " android:layout_height =" wrap_content " > < TableLayout android:layout_width =" match_parent " android:layout_height =" wrap_content " android:stretchcolumns ="1" > < TableRow > < TextView android:text =" Sans param è tre " /> < EditText /> </ TableRow > < TableRow > < TextView android:text =" Adresse e- mail :" /> < EditText android:inputtype =" text text address " android:imeoptions =" actionsend " /> </ TableRow > < TableRow > < TextView android:text =" Nombre :" /> < EditText android:inputtype =" number numbersigned " /> </ TableRow > <TableRow> <TextView android:text=" Multi - lignes :" /> < EditText android:inputtype =" text textmultiline textautocorrect " android:minlines ="3" android:gravity =" top " /> </ TableRow > </ TableLayout > </ ScrollView > L3 - Informatique Développement sur Android 64

97 Méthodologie et conception adaptées : les activités Contrôle du mode de saisie Poser une question à l utilisateur <? xml version =" 1.0 " encoding ="utf -8"?> < ScrollView xmlns:android =" http: // schemas. android. com / apk / res / android " android:layout_width =" match_parent " android:layout_height =" wrap_content " > < TableLayout android:layout_width =" match_parent " android:layout_height =" wrap_content " android:stretchcolumns ="1" > < TableRow > < TextView android:text =" Sans param è tre " /> < EditText /> </ TableRow > < TableRow > < TextView android:text =" Adresse e- mail :" /> < EditText android:inputtype =" text text address " android:imeoptions =" actionsend " /> </ TableRow > < TableRow > < TextView android:text =" Nombre :" /> < EditText android:inputtype =" number numbersigned " /> </ TableRow > <TableRow> <TextView android:text=" Multi - lignes :" /> < EditText android:inputtype =" text textmultiline textautocorrect " android:minlines ="3" android:gravity =" top " /> </ TableRow > </ TableLayout > </ ScrollView > L3 - Informatique Développement sur Android 64

98 Méthodologie et conception adaptées : les activités Contrôle du mode de saisie Poser une question à l utilisateur <? xml version =" 1.0 " encoding ="utf -8"?> < ScrollView xmlns:android =" http: // schemas. android. com / apk / res / android " android:layout_width =" match_parent " android:layout_height =" wrap_content " > < TableLayout android:layout_width =" match_parent " android:layout_height =" wrap_content " android:stretchcolumns ="1" > < TableRow > < TextView android:text =" Sans param è tre " /> < EditText /> </ TableRow > < TableRow > < TextView android:text =" Adresse e- mail :" /> < EditText android:inputtype =" text text address " android:imeoptions =" actionsend " /> </ TableRow > < TableRow > < TextView android:text =" Nombre :" /> < EditText android:inputtype =" number numbersigned " /> </ TableRow > <TableRow> <TextView android:text=" Multi - lignes :" /> < EditText android:inputtype =" text textmultiline textautocorrect " android:minlines ="3" android:gravity =" top " /> </ TableRow > </ TableLayout > </ ScrollView > L3 - Informatique Développement sur Android 64

99 Méthodologie et conception adaptées : les activités Contrôle du mode de saisie Poser une question à l utilisateur <? xml version =" 1.0 " encoding ="utf -8"?> < ScrollView xmlns:android =" http: // schemas. android. com / apk / res / android " android:layout_width =" match_parent " android:layout_height =" wrap_content " > < TableLayout android:layout_width =" match_parent " android:layout_height =" wrap_content " android:stretchcolumns ="1" > < TableRow > < TextView android:text =" Sans param è tre " /> < EditText /> </ TableRow > < TableRow > < TextView android:text =" Adresse e- mail :" /> < EditText android:inputtype =" text text address " android:imeoptions =" actionsend " /> </ TableRow > < TableRow > < TextView android:text =" Nombre :" /> < EditText android:inputtype =" number numbersigned " /> </ TableRow > <TableRow> <TextView android:text=" Multi - lignes :" /> < EditText android:inputtype =" text textmultiline textautocorrect " android:minlines ="3" android:gravity =" top " /> </ TableRow > </ TableLayout > </ ScrollView > L3 - Informatique Développement sur Android 64

100 Méthodologie et conception adaptées : les activités Poser une question à l utilisateur Aller plus loin avec IMF Il est possible de modifier le mode d apparition du clavier en fonction des circonstances : L activité entière peut glisser vers le haut La taille de l activité peut-être modifiée L activité entière peut-être masquée (en mode paysage par exemple) Android choisit par défaut le mode le plus adapté à l activité, mais il peut-être fixé dans le manifest par la propriété android:windowsoftinputmode Il est aussi possible de masquer le clavier depuis le code Java : InputMethodManager mgr =( InputMethodManager ) getsystemservice ( INPUT_METHOD_SERVICE ); mgr. hidesoftinputfromwindow (fld. getwindowtoken (), 0); ou mgr. hidesoftinputfromwindow (fld. getwindowtoken (), InputMethodManager. HIDE_IMPLICIT_ONLY ); L3 - Informatique Développement sur Android 65

101 Méthodologie et conception adaptées : les activités Poser une question à l utilisateur Aller plus loin avec IMF Il est possible de modifier le mode d apparition du clavier en fonction des circonstances : L activité entière peut glisser vers le haut La taille de l activité peut-être modifiée L activité entière peut-être masquée (en mode paysage par exemple) Android choisit par défaut le mode le plus adapté à l activité, mais il peut-être fixé dans le manifest par la propriété android:windowsoftinputmode Il est aussi possible de masquer le clavier depuis le code Java : InputMethodManager mgr =( InputMethodManager ) getsystemservice ( INPUT_METHOD_SERVICE ); mgr. hidesoftinputfromwindow (fld. getwindowtoken (), 0); ou mgr. hidesoftinputfromwindow (fld. getwindowtoken (), InputMethodManager. HIDE_IMPLICIT_ONLY ); L3 - Informatique Développement sur Android 65

102 Méthodologie et conception adaptées : les activités Poser une question à l utilisateur 1 Les «widgets» 2 Les «conteneurs» 3 Poser une question à l utilisateur Le framework des méthodes de saisie Widgets de sélection 4 Pour aller plus loin... Autres widgets et conteneurs Menus et «pop-ups» L3 - Informatique Développement sur Android 66

103 Méthodologie et conception adaptées : les activités Poser une question à l utilisateur Introduction La saisie d informations sur un smartphone est toujours problématique Les erreurs de frappes peuvent se multiplier... Contrôler l IME est une première étape pour limiter les erreurs La solution la plus adéquate reste de limiter le nombre de réponses possibles Les listes de choix sont donc des widgets indispensables Android permet de lier directement un widget liste à un type abstrait de données adapté Ce sont les adapteurs L3 - Informatique Développement sur Android 67

104 Méthodologie et conception adaptées : les activités L adapteur «ArrayAdapter» Poser une question à l utilisateur ArrayAdapter permet de lier un tableau à un widget adapté String [] items = { " rouge ", " vert ", " bleu ", " jaune " ; new ArrayAdapter <String>(this, android.r. layout. simple_list_item1, items ); ArrayAdapter prend trois paramètres : Un contexte, généralement l activité L identifiant de ressource de la vue à utiliser La liste des éléments Par défaut, ArrayAdapter appelle la méthode tostring() des objets de la liste Il instanciera ensuite la vue avec le résultat Le second paramètre de ArrayAdapter renseigne la vue La valeur android.r.layout.simple_list_item_1 correspond à une vue prédéfinie simple L3 - Informatique Développement sur Android 68

105 Méthodologie et conception adaptées : les activités La «ListActivity» Utilisation de «ArrayAdapter» Poser une question à l utilisateur Le widget d Android pour les listes est le ListView Toutefois, utiliser une ListActivity est préconisé quand l activité se réduit à une liste La propriété android:choicemode="multiplechoice" permet d obtenir une liste à choix multiples <? xml version=" 1.0 " encoding="utf -8"?> < LinearLayout xmlns:android =" http: // schemas. android.com /apk /res / android " android:orientation =" vertical " android:layout_width =" match_parent " android:layout_height =" wrap_content " > < TextView android:id ="@+id/ selection " android:layout_width =" match_parent " android:layout_height =" wrap_content " /> < ListView android:id /list " android:layout_width =" match_parent " android:layout_height =" match_parent " android:drawselectorontop =" false " /> </ LinearLayout > L3 - Informatique Développement sur Android 69

106 Méthodologie et conception adaptées : les activités La «ListActivity» Utilisation de «ArrayAdapter» Poser une question à l utilisateur Le widget d Android pour les listes est le ListView Toutefois, utiliser une ListActivity est préconisé quand l activité se réduit à une liste La propriété android:choicemode="multiplechoice" permet d obtenir une liste à choix multiples <? xml version=" 1.0 " encoding="utf -8"?> < LinearLayout xmlns:android =" http: // schemas. android.com /apk /res / android " android:orientation =" vertical " android:layout_width =" match_parent " android:layout_height =" wrap_content " > < TextView android:id ="@+id/ selection " android:layout_width =" match_parent " android:layout_height =" wrap_content " /> < ListView android:id /list " android:layout_width =" match_parent " android:layout_height =" match_parent " android:drawselectorontop =" false " /> </ LinearLayout > L3 - Informatique Développement sur Android 69

107 Méthodologie et conception adaptées : les activités La «ListActivity» Utilisation de «ArrayAdapter» Poser une question à l utilisateur package com. univangers. l3info. projettest ; import android.app. ListActivity ; import android.os. Bundle ; import android. view. View ; import android. widget. ListView ; import android. widget. ArrayAdapter ; import android. widget. TextView ; public class Debut extends ListActivity { private TextView selection ; private static final String [] items = { " rouge ", " bleu ", " vert ", " jaune ", " rose " public void oncreate ( Bundle savedinstancestate ) { super. oncreate ( savedinstancestate ); setcontentview (R. layout.main ); setlistadapter (new ArrayAdapter <String >( this, android.r. layout. simple_list_item_1, items )); selection =( TextView ) findviewbyid (R.id. selection ); public void onlistitemclick ( ListView parent, View v, int pos, long id) { selection. settext ( items [pos ]); L3 - Informatique Développement sur Android 70

108 Méthodologie et conception adaptées : les activités Poser une question à l utilisateur Les listes déroulantes Les listes déroulantes sont implémentées avec le widget Spinner La méthode setadapteur() renseigne l adaptateur à utiliser La méthode setonitemselectedlistener() fournit l écouteur en cas de clic L3 - Informatique Développement sur Android 71

109 Méthodologie et conception adaptées : les activités Poser une question à l utilisateur Les listes déroulantes Les listes déroulantes sont implémentées avec le widget Spinner La méthode setadapteur() renseigne l adaptateur à utiliser La méthode setonitemselectedlistener() fournit l écouteur en cas de clic L3 - Informatique Développement sur Android 71

110 Méthodologie et conception adaptées : les activités Poser une question à l utilisateur < Spinner android:id ="@+id/ boitederoulante " android:layout_width =" match_parent " android:layout_height =" wrap_content " android:drawselectorontop =" true " /> public class Debut extends Activity implements AdapterView. OnItemSelectedListener { private TextView selection ; private static final String [] items = { " rouge ", " bleu ", " vert ", " jaune ", " rose " public void oncreate ( Bundle savedinstancestate ) { super. oncreate ( savedinstancestate ); setcontentview (R. layout.main ); selection =( TextView ) findviewbyid (R.id. selection ); Spinner spin = ( Spinner ) findviewbyid (R.id. boitederoulante ); spin. setonitemselectedlistener (this ); ArrayAdapter <String > aa = new ArrayAdapter <String >( this, android.r. layout. simple_spinner_item, items ); aa. setdropdownviewresource ( android.r. layout. simple_spinner_dropdown_item ); spin. setadapter (aa); public void onitemselected ( AdapterView <?> parent, View v, int pos, long id) { selection. settext ( items [pos ]); public void onnothingselected ( AdapterView <? > parent ) { selection. settext (""); L3 - Informatique Développement sur Android 72

111 Méthodologie et conception adaptées : les activités Poser une question à l utilisateur < Spinner android:id ="@+id/ boitederoulante " android:layout_width =" match_parent " android:layout_height =" wrap_content " android:drawselectorontop =" true " /> public class Debut extends Activity implements AdapterView. OnItemSelectedListener { private TextView selection ; private static final String [] items = { " rouge ", " bleu ", " vert ", " jaune ", " rose " public void oncreate ( Bundle savedinstancestate ) { super. oncreate ( savedinstancestate ); setcontentview (R. layout.main ); selection =( TextView ) findviewbyid (R.id. selection ); Spinner spin = ( Spinner ) findviewbyid (R.id. boitederoulante ); spin. setonitemselectedlistener (this ); ArrayAdapter <String > aa = new ArrayAdapter <String >( this, android.r. layout. simple_spinner_item, items ); aa. setdropdownviewresource ( android.r. layout. simple_spinner_dropdown_item ); spin. setadapter (aa); public void onitemselected ( AdapterView <?> parent, View v, int pos, long id) { selection. settext ( items [pos ]); public void onnothingselected ( AdapterView <? > parent ) { selection. settext (""); L3 - Informatique Développement sur Android 72

112 Méthodologie et conception adaptées : les activités Poser une question à l utilisateur L autocomplétion Économie de temps et gain de fiabilité! Le widget AutoCompleteTextView est un mélange de EditText et de Spinner Il hérite de EditText Le texte saisi est utilisé pour présenter les choix possibles restants Un TextWatcher permet de réaliser des actions quand le texte change L3 - Informatique Développement sur Android 73

113 Méthodologie et conception adaptées : les activités Poser une question à l utilisateur L autocomplétion < AutoCompleteTextView android:id ="@+id/ editauto " android:layout_width =" match_parent " android:layout_height =" wrap_content " android:completionthreshold ="3" /> public class Debut extends Activity implements TextWatcher { private TextView selection ; private AutoCompleteTextView editauto ; private static final String [] items = { " rouge ", " bleu ", " vert ", " jaune ", " rose " public void oncreate ( Bundle savedinstancestate ) { super. oncreate ( savedinstancestate ); setcontentview (R. layout. main ); selection =( TextView ) findviewbyid (R.id. selection ); editauto = ( AutoCompleteTextView ) findviewbyid (R.id. editauto ); editauto. addtextchangedlistener ( this ); editauto. setadapter ( new ArrayAdapter <String >( this, android.r. layout. simple_dropdown_item_1line, items )); public void ontextchanged ( CharSequence s, int start, int before, int count ) { selection. settext ( editauto. gettext ()); public void beforetextchanged ( CharSequence s, int start, int count, int after ) { public void aftertextchanged ( Editable s) { L3 - Informatique Développement sur Android 74

114 Méthodologie et conception adaptées : les activités Poser une question à l utilisateur L autocomplétion < AutoCompleteTextView android:id ="@+id/ editauto " android:layout_width =" match_parent " android:layout_height =" wrap_content " android:completionthreshold ="3" /> public class Debut extends Activity implements TextWatcher { private TextView selection ; private AutoCompleteTextView editauto ; private static final String [] items = { " rouge ", " bleu ", " vert ", " jaune ", " rose " public void oncreate ( Bundle savedinstancestate ) { super. oncreate ( savedinstancestate ); setcontentview (R. layout. main ); selection =( TextView ) findviewbyid (R.id. selection ); editauto = ( AutoCompleteTextView ) findviewbyid (R.id. editauto ); editauto. addtextchangedlistener ( this ); editauto. setadapter ( new ArrayAdapter <String >( this, android.r. layout. simple_dropdown_item_1line, items )); public void ontextchanged ( CharSequence s, int start, int before, int count ) { selection. settext ( editauto. gettext ()); public void beforetextchanged ( CharSequence s, int start, int count, int after ) { public void aftertextchanged ( Editable s) { L3 - Informatique Développement sur Android 74

115 Méthodologie et conception adaptées : les activités Pour aller plus loin... Plan 1 Les «widgets» 2 Les «conteneurs» 3 Poser une question à l utilisateur Le framework des méthodes de saisie Widgets de sélection 4 Pour aller plus loin... Autres widgets et conteneurs Menus et «pop-ups» L3 - Informatique Développement sur Android 75

116 Méthodologie et conception adaptées : les activités Pour aller plus loin... 1 Les «widgets» 2 Les «conteneurs» 3 Poser une question à l utilisateur Le framework des méthodes de saisie Widgets de sélection 4 Pour aller plus loin... Autres widgets et conteneurs Menus et «pop-ups» L3 - Informatique Développement sur Android 76

117 Méthodologie et conception adaptées : les activités Pour aller plus loin... Encore plus de widgets En plus des widgets déjà vus, Android fournit un grand nombre de widgets et conteneurs : saisie des dates, des temps, sélecteurs de fichiers, positionnement absolu... Les listes, vues avant peuvent avoir un rendu complètement personnalisé Il est aussi possible d utiliser des bases de données SQL, de faire apparaître des pop-ups et même d intégrer un navigateur web. Les Fragments permettent de créer des interfaces responsive sera vu en M2 L3 - Informatique Développement sur Android 77

118 Méthodologie et conception adaptées : les activités Pour aller plus loin... Encore plus de widgets En plus des widgets déjà vus, Android fournit un grand nombre de widgets et conteneurs : saisie des dates, des temps, sélecteurs de fichiers, positionnement absolu... Les listes, vues avant peuvent avoir un rendu complètement personnalisé Il est aussi possible d utiliser des bases de données SQL, de faire apparaître des pop-ups et même d intégrer un navigateur web. Les Fragments permettent de créer des interfaces responsive sera vu en M2 L3 - Informatique Développement sur Android 77

119 Méthodologie et conception adaptées : les activités Pour aller plus loin... Intégrer le navigateur «webkit» Le widget WebView permet d intégrer un navigateur web dans l activité Il faut modifier les permissions de sécurité en conséquence Il dispose d un grand nombre de fonctionnalités (JavaScript, navigation arrière/avant,... ) Il possible de charger des URLs mais également du code HTML par l appel à loaddata() L3 - Informatique Développement sur Android 78

120 Méthodologie et conception adaptées : les activités Pour aller plus loin... Intégrer le navigateur «webkit» Exemple AndroidManifest.xml <uses - permission android:name=" android. permission. INTERNET " /> <? xml version=" 1.0 " encoding="utf -8"?> < WebView xmlns:android =" http: // schemas. android.com /apk /res / android " android:id ="@+ id/ navigateur " android:layout_width =" match_parent " android:layout_height =" match_parent " /> package com. univangers. l3info. projettest ; import android.app. Activity ; import android.os. Bundle ; import android. webkit. WebView ; public class Debut extends Activity { public void oncreate ( Bundle savedinstancestate ) { super. oncreate ( savedinstancestate ); setcontentview (R. layout.main ); WebView ww =( WebView ) findviewbyid (R.id. navigateur ); ww. loadurl ("http :// www. google.fr"); L3 - Informatique Développement sur Android 79

121 Méthodologie et conception adaptées : les activités Pour aller plus loin... Intégrer le navigateur «webkit» Exemple AndroidManifest.xml <uses - permission android:name=" android. permission. INTERNET " /> <? xml version=" 1.0 " encoding="utf -8"?> < WebView xmlns:android =" http: // schemas. android.com /apk /res / android " android:id ="@+ id/ navigateur " android:layout_width =" match_parent " android:layout_height =" match_parent " /> package com. univangers. l3info. projettest ; import android.app. Activity ; import android.os. Bundle ; import android. webkit. WebView ; public class Debut extends Activity { public void oncreate ( Bundle savedinstancestate ) { super. oncreate ( savedinstancestate ); setcontentview (R. layout.main ); WebView ww =( WebView ) findviewbyid (R.id. navigateur ); ww. loadurl ("http :// www. google.fr"); L3 - Informatique Développement sur Android 79

122 Méthodologie et conception adaptées : les activités Pour aller plus loin... Intégrer le navigateur «webkit» Exemple AndroidManifest.xml <uses - permission android:name=" android. permission. INTERNET " /> <? xml version=" 1.0 " encoding="utf -8"?> < WebView xmlns:android =" http: // schemas. android.com /apk /res / android " android:id ="@+ id/ navigateur " android:layout_width =" match_parent " android:layout_height =" match_parent " /> package com. univangers. l3info. projettest ; import android.app. Activity ; import android.os. Bundle ; import android. webkit. WebView ; public class Debut extends Activity { public void oncreate ( Bundle savedinstancestate ) { super. oncreate ( savedinstancestate ); setcontentview (R. layout.main ); WebView ww =( WebView ) findviewbyid (R.id. navigateur ); ww. loadurl ("http :// www. google.fr"); L3 - Informatique Développement sur Android 79

123 Méthodologie et conception adaptées : les activités Pour aller plus loin... 1 Les «widgets» 2 Les «conteneurs» 3 Poser une question à l utilisateur Le framework des méthodes de saisie Widgets de sélection 4 Pour aller plus loin... Autres widgets et conteneurs Menus et «pop-ups» L3 - Informatique Développement sur Android 80

124 Méthodologie et conception adaptées : les activités Pour aller plus loin... Les menus Comme dans tout type d application, il est possible d ajouter des menus Il peuvent s ouvrir soit : Lors de l appui sur la touche menu (menu d options) Lors d un appui long sur un widget (menu contextuel) Ils peuvent apparaître en mode icône... Seuls quelques éléments sont visibles, le texte Plus peut apparaitre... ou en mode étendu Ils se constituent/remplissent depuis le code Java ou dans une ressource XML La version minimale de l API utilisée influe sur le comportement et l apparence des menus L3 - Informatique Développement sur Android 81

125 Méthodologie et conception adaptées : les activités Pour aller plus loin... Les menus Comme dans tout type d application, il est possible d ajouter des menus Il peuvent s ouvrir soit : Lors de l appui sur la touche menu (menu d options) Lors d un appui long sur un widget (menu contextuel) Ils peuvent apparaître en mode icône... Seuls quelques éléments sont visibles, le texte Plus peut apparaitre... ou en mode étendu Ils se constituent/remplissent depuis le code Java ou dans une ressource XML La version minimale de l API utilisée influe sur le comportement et l apparence des menus L3 - Informatique Développement sur Android 81

126 Méthodologie et conception adaptées : les activités Pour aller plus loin... Les menus Les menus d options La méthode oncreateoptionsmenu() de l activité concernée doit être redéfinie Les items du menu sont rajoutés par l appel à méthode add() du menu Il prend en compte les paramètres suivants : Un identifiant de groupe (NONE normalement) Possibilité de créer des items exclusifs (radio) Un identifiant de choix pour identifier le choix lors du rappel La méthode onoptionsitemselected() effectue le rappel Un identifiant d ordre (NONE le plus souvent) Le libellé de l item Il est possible de rendre des options «checkable» par l appel à MenuItem#SetCheckable Il est possible de créer des sous-menus en appelant addsubmenu() L3 - Informatique Développement sur Android 82

127 Méthodologie et conception adaptées : les activités Pour aller plus loin... Les menus Les menus contextuels Les menus contextuels fonctionnent comme les menus d options La méthode registerforcontextmenu() associe un widget à un menu contextuel La méthode oncreatecontextmenu() doit être redéfinie pour construire le menu oncreatecontextmenu() est appelé à chaque affichage du menu contextuel getmenuinfo() est utilisé pour obtenir le widget qui a déclenché le menu L3 - Informatique Développement sur Android 83

128 Méthodologie et conception adaptées : les activités Pour aller plus loin... Les menus Exemple public class Debut extends ListActivity { public static final int MENU_ADD = Menu. FIRST +1; public static final int MENU_RESET = Menu. FIRST public void oncreate ( Bundle icicle ) { super. oncreate ( icicle ); /* Initialisation de la liste d élé ments public boolean oncreateoptionsmenu ( Menu menu ) { menu. add ( Menu.NONE, MENU_ADD, Menu.NONE, " Ajouter "). seticon (R. drawable. ic_menu_add ); menu. add ( Menu.NONE, MENU_RESET, Menu.NONE, "Réinitialiser " ). seticon (R. drawable. ic_menu_refresh ); return ( super. oncreateoptionsmenu ( menu public boolean onoptionsitemselected ( MenuItem item ) { switch ( item. getitemid ()) { case MENU_ADD : return ( true ); case MENU_RESET : initadapter (); return ( true ); return ( super. onoptionsitemselected ( item )); L3 - Informatique Développement sur Android 84

129 Méthodologie et conception adaptées : les activités Pour aller plus loin... Les menus public void oncreate ( Bundle icicle ) { super. oncreate ( icicle ); /* Initialisation de la liste d élé ments */ registerforcontextmenu ( getlistview public void oncreatecontextmenu ( ContextMenu menu, View v, ContextMenu. ContextMenuInfo menuinfo ) { menu. add ( Menu.NONE, MENU_CAP, Menu.NONE, " Capitaliser "); menu. add ( Menu.NONE, MENU_REMOVE, Menu.NONE, " Supprimer public boolean oncontextitemselected ( MenuItem item ) { AdapterView. AdapterContextMenuInfo info = ( AdapterView. AdapterContextMenuInfo ) item. getmenuinfo (); ArrayAdapter <String > aa= (ArrayAdapter <String >) getlistadapter (); switch ( item. getitemid ()) { case MENU_CAP : String item =aa. getitem ( info. position );... return ( true ); case MENU_REMOVE : aa. remove (aa. getitem ( info. position )); return ( true ); return ( super. oncontextitemselected ( item )); L3 - Informatique Développement sur Android 85

130 Méthodologie et conception adaptées : les activités Pour aller plus loin... Les «pop-ups» Les «toasts» et les «alertes»! Pour informer l utilisateur, il est nécessaire de lui afficher des messages Le «toast» est un message qui ne reste affiché que pendant un certain laps de temps Il ne modifie pas le focus de l activité Pas moyen de savoir si l utilisateur l a lu Un toast est émis en appelant la méthode statique maketext() de la classe Toast Les «alertes» sont déclenchées en instanciant une boîte de dialogue modale affichée à l écran Elle prend le focus L utilisateur doit valider (donner une réponse) pour la fermer Une alerte est créée par instanciation de la classe AlertDialog L3 - Informatique Développement sur Android 86

131 Méthodologie et conception adaptées : les activités Pour aller plus loin... Les «pop-ups» Exemple public class Debut extends Activity public void oncreate ( Bundle icicle ) { super. oncreate ( icicle ); setcontentview (R. layout.main ); Toast. maketext ( Debut.this, " Ca va démarrer!", Toast. LENGTH_SHORT ).show (); new AlertDialog. Builder (this ). settitle (" Une boite!"). setmessage (" Bla bla bla."). setcancelable ( false ). setpositivebutton (" Quitter ", new DialogInterface. OnClickListener () { public void onclick ( DialogInterface dialog, int id) { Debut.this. finish (); ). setnegativebutton (" Rester ", new DialogInterface. OnClickListener () { public void onclick ( DialogInterface dialog, int id) { dialog. cancel (); ). show (); L3 - Informatique Développement sur Android 87

132 Méthodologie et conception adaptées : les activités Pour aller plus loin... Les «pop-ups» Exemple public class Debut extends Activity public void oncreate ( Bundle icicle ) { super. oncreate ( icicle ); setcontentview (R. layout.main ); Toast. maketext ( Debut.this, " Ca va démarrer!", Toast. LENGTH_SHORT ).show (); new AlertDialog. Builder (this ). settitle (" Une boite!"). setmessage (" Bla bla bla."). setcancelable ( false ). setpositivebutton (" Quitter ", new DialogInterface. OnClickListener () { public void onclick ( DialogInterface dialog, int id) { Debut.this. finish (); ). setnegativebutton (" Rester ", new DialogInterface. OnClickListener () { public void onclick ( DialogInterface dialog, int id) { dialog. cancel (); ). show (); L3 - Informatique Développement sur Android 87

133 Cycles de vies des activités Chapitre III Cycles de vies des activités 1 Le système reste le seul maître à bord! Ça s en va et ça revient... La rotation des écrans 2 Utiliser d autres activités L3 - Informatique Développement sur Android 88

134 Cycles de vies des activités Le système reste le seul maître à bord! Plan 1 Le système reste le seul maître à bord! Ça s en va et ça revient... La rotation des écrans 2 Utiliser d autres activités L3 - Informatique Développement sur Android 89

135 Cycles de vies des activités Le système reste le seul maître à bord! 1 Le système reste le seul maître à bord! Ça s en va et ça revient... La rotation des écrans 2 Utiliser d autres activités L3 - Informatique Développement sur Android 90

136 Cycles de vies des activités Le système reste le seul maître à bord! Une gestion spécifique à un matériel aux ressources limités Sur un PC l OS 4 peut tuer des processus Toutefois, on considère qu une tâche ne peut se terminer de manière inopinée Sur un smartphone, les ressources et notamment la mémoire sont plus limitées Des activités peuvent être tuées pour permettre à d autres de s exécuter Certaines doivent mourir pour que d autres vivent Sur Android il ne faut pas supposer que l application ira jusqu à son terme! 4. Operating System L3 - Informatique Développement sur Android 91

137 Cycles de vies des activités Le système reste le seul maître à bord! États d une activité Une activité est toujours dans l un des quatre états suivants : Active : elle s execute au premier plan En pause : l activité est visible mais inacessible (une notification ou un message apparaît devant) Stoppée : elle est cachée par une autre activité Morte : elle n a pas été lancée ou a été tuée Android fournit des méthodes appelées lors de la transition d un état à un autre Elles sont implémentées dans la classe Activity et sont à redéfinir dans les sous-classes Certaines transitions font appel successivement à plusieurs de ces méthodes, la documentation doit être lue attentivement! L3 - Informatique Développement sur Android 92

138 Cycles de vies des activités Le système reste le seul maître à bord! États d une activité Cycle de vie Pour chaque méthode de transition redéfinie, il faut rappeler la méthode de la superclasse! OnCreate() Appelée : Lors du lancement de l activité (avec NULL comme paramètre) Lors du redémarrage de l activité (après un «kill»), avec un «Bundle» comme argument Également après une rotation L3 - Informatique Développement sur Android 93

139 Cycles de vies des activités Le système reste le seul maître à bord! États d une activité Cycle de vie Pour chaque méthode de transition redéfinie, il faut rappeler la méthode de la superclasse! OnCreate() Appelée : Lors du lancement de l activité (avec NULL comme paramètre) Lors du redémarrage de l activité (après un «kill»), avec un «Bundle» comme argument Également après une rotation L3 - Informatique Développement sur Android 93

140 Cycles de vies des activités Le système reste le seul maître à bord! États d une activité Cycle de vie OnDestroy() Libérations des ressources : Lors de l appel à finish() Lorsque qu elle est tuée OnStart(),OnRestart() et OnStop() onstart() est appelé lors du passage au premier plan onrestart() est appelé uniquement lorsque l activité a été stoppée et redémarre onstop() est appelé lorsque l activité va être stoppée L3 - Informatique Développement sur Android 94

141 Cycles de vies des activités Le système reste le seul maître à bord! États d une activité Cycle de vie OnDestroy() Libérations des ressources : Lors de l appel à finish() Lorsque qu elle est tuée OnStart(),OnRestart() et OnStop() onstart() est appelé lors du passage au premier plan onrestart() est appelé uniquement lorsque l activité a été stoppée et redémarre onstop() est appelé lorsque l activité va être stoppée L3 - Informatique Développement sur Android 94

142 Cycles de vies des activités Le système reste le seul maître à bord! États d une activité Cycle de vie OnResume() Est appelé juste avant que l activité passe au premier plan Lors de son lancement Lors de son retour après avoir été rendue inaccessible Après la fermeture d une notification ouverte par le système L3 - Informatique Développement sur Android 95

143 Cycles de vies des activités Le système reste le seul maître à bord! États d une activité Cycle de vie OnPause() Est appelé juste avant que l activité quitte le premier plan Elle permet de libérer les ressources exclusives (threads, appareil photo) et ce qui a été fait dans OnResume() Lorsqu une activité est en pause, Android peut la tuer à tout moment L3 - Informatique Développement sur Android 96

144 Cycles de vies des activités Le système reste le seul maître à bord! États d une activité Sauvegarde de l état d une instance Pour rendre transparente toute cette gestion, Android permet de sauvegarder et restaurer l état d une instance La méthode onsaveinstancestate() fournit un Bundle dans lequel une activité peut sauver des données oncreate() permet de récupérer le Bundle réalisé précédemment onsaveinstancestate() est appelé régulièrement par Android : Il faut donc que son exécution soit rapide et efficace onsaveinstancestate() possède une version prédéfinie basée sur les ID des widgets Il est possible de la personnaliser complètement L3 - Informatique Développement sur Android 97

145 Cycles de vies des activités Le système reste le seul maître à bord! 1 Le système reste le seul maître à bord! Ça s en va et ça revient... La rotation des écrans 2 Utiliser d autres activités L3 - Informatique Développement sur Android 98

146 Cycles de vies des activités Le système reste le seul maître à bord! Fonctionnement de la rotation La majorité des smartphones peuvent passer du mode portrait au mode paysage Lors de l ouverture d un clavier physique Lors de la détection d un mouvement défini (grâce à des accéléromètres) Lors d un changement d orientation, Android supprime et recrée toutes les activités Il est possible d adapter les activités pour bien réagir face à la rotation L3 - Informatique Développement sur Android 99

147 Cycles de vies des activités Le système reste le seul maître à bord! Mise en œuvre de la rotation Par défaut, il n y a rien à faire, l activité gère elle même la rotation Un layout différent pour le mode paysage peut être défini en utilisant : res/layout/ et res/layout-land/ Il est possible de bloquer la rotation d une activité en modifiant le manifest : < activity android:name =" Debut " android:label / app_name " android:screenorientation =" portrait " > L3 - Informatique Développement sur Android 100

148 Cycles de vies des activités Le système reste le seul maître à bord! Mise en œuvre de la rotation Par défaut, il n y a rien à faire, l activité gère elle même la rotation Un layout différent pour le mode paysage peut être défini en utilisant : res/layout/ et res/layout-land/ Il est possible de bloquer la rotation d une activité en modifiant le manifest : < activity android:name =" Debut " android:label / app_name " android:screenorientation =" portrait " > L3 - Informatique Développement sur Android 100

149 Cycles de vies des activités Le système reste le seul maître à bord! Contrôler la rotation Lors d une rotation, l activité est détruite puis recréée La méthode onsaveinstancestate() est appelée avant le retournement L objet Bundle permet de stocker des paramètres supplémentaires Les valeurs sont restorées depuis oncreate() L3 - Informatique Développement sur Android 101

Programmation des applications mobiles avec Android. 1 Inspiré du cours de Olivier Le Goaer

Programmation des applications mobiles avec Android. 1 Inspiré du cours de Olivier Le Goaer Programmation des applications mobiles avec Android 1 Inspiré du cours de Olivier Le Goaer 2 OS mobile : outils de développement D après le cours de Olivier Le Goaer 3 Plateforme de développement MobileApp

Plus en détail

Les fondamentaux du développement d applications Java

Les fondamentaux du développement d applications Java Android 5 Les fondamentaux du développement d applications Java Nazim BENBOURAHLA Table des matières 1 Les éléments à télécharger sont disponibles à l'adresse suivante : http://www.editions-eni.fr Saisissez

Plus en détail

TP SIN Programmation sur androïde Support : eclipse

TP SIN Programmation sur androïde Support : eclipse TP SIN Programmation sur androïde Support : eclipse Support : Smartphone sur androïde Pré requis (l élève doit savoir): Savoir utiliser un ordinateur Savoir utiliser un Smartphone Programme Objectif terminale

Plus en détail

TD/TP 1 Introduction au SDK d Android

TD/TP 1 Introduction au SDK d Android TD/TP 1 Introduction au SDK d Android Romain Raveaux 1 Introduction Android est un système d'exploitation pour téléphone portable de nouvelle génération développé par Google. Celui-ci met à disposition

Plus en détail

Installation et prise en main

Installation et prise en main TP1 Installation et prise en main Android est le système d'exploitation pour smartphones, tablettes et autres appareils développé par Google. Pour permettre aux utilisateurs d'installer des applications

Plus en détail

Outils, langage et approche Android Une introduction. Nicolas Stouls nicolas.stouls@insa lyon.fr

Outils, langage et approche Android Une introduction. Nicolas Stouls nicolas.stouls@insa lyon.fr Outils, langage et approche Android Une introduction Nicolas Stouls nicolas.stouls@insa lyon.fr Webographie La bible contenant «tout» : http://developer.android.com/index.html Les supports cette intervention

Plus en détail

De Java à Android version 0.1

De Java à Android version 0.1 De Java à Android version 0.1 David Roche De Java à Andoid 1 Ce document est publié sous licence Creative Commons Vous êtes libres : de reproduire, distribuer et communiquer cette création au public de

Plus en détail

Android 4 Les fondamentaux du développement d'applications Java

Android 4 Les fondamentaux du développement d'applications Java La plateforme Android 1. Présentation 13 2. Historique 14 3. Google Play 15 3.1 Création d'un compte développeur 16 3.2 Publication d'une application 16 3.3 Suivi et mise à jour d'une application 18 Environnement

Plus en détail

Gestion des différentes tailles d écran

Gestion des différentes tailles d écran 25 Gestion des différentes tailles d écran Les écrans des terminaux Android, qui sont apparus sur le marché l année qui a suivi l apparition d Android 1.0, avaient tous la même résolution (HVGA, 320 480

Plus en détail

Warren PAULUS. Android SDK et Android x86

Warren PAULUS. Android SDK et Android x86 Android SDK et Android x86 2010/2011 Voici un petit tutoriel pour installer Android de façon à ce qu il soit compatible avec NetBeans et Eclipse, ainsi que l utilisation d Android x86. Ce tutoriel a été

Plus en détail

TP au menu «UI ANDROID»

TP au menu «UI ANDROID» TP au menu «UI ANDROID» Pré-requis & Installation ( du couvert) soit installer en natif sur vos postes (!!! ATTENTION!!! FromScratch 1,1 Go à télécharger ) JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html

Plus en détail

Tutorial pour une application simple

Tutorial pour une application simple ANDROID & ECLIPSE Tutorial pour une application simple 1. Introduction Android est un système d'exploitation pour téléphone portable de nouvelle génération développé par Google. Celui-ci met à disposition

Plus en détail

Introduction ANDROID

Introduction ANDROID Introduction ANDROID 1 Un monde ouvert Première plateforme ouverte pour appareils mobiles.les applications natives et tierces utilisent les mêmes API. Un système d exploitation open source libre pour appareils

Plus en détail

TP2 : Client d une BDD SqlServer

TP2 : Client d une BDD SqlServer TP2 : Client d une BDD SqlServer Objectifs : utiliser la barre de menu, utiliser les préférences d application (settings) ou (options), gérer la persistance des données, utiliser la bibliothèque jtds:jdbc

Plus en détail

Programmation mobile avec Android

Programmation mobile avec Android Programmation mobile avec Android Pierre Nerzic - pierre.nerzic@univ-rennes1.fr février-mars 2015 Abstract Il s agit des transparents du cours mis sous une forme plus facilement imprimable et lisible.

Plus en détail

Tutoriel Android - TP de prise en main

Tutoriel Android - TP de prise en main Tutoriel Android - TP de prise en main To cite this version:. Tutoriel Android - TP de prise en main. École d ingénieur. France. 2014, pp.51. HAL Id: cel-01082588 https://hal.archives-ouvertes.fr/cel-01082588v2

Plus en détail

Chapitre 1 Retour en arrière

Chapitre 1 Retour en arrière Chapitre 1 : Retour en arrière 1 Chapitre 1 Retour en arrière Chapitre 1 : Retour en arrière 2 1. Difficultés de développer pour les systèmes embarqués Quelques contraintes à prendre en compte : - Mémoire:

Plus en détail

- TP Programmation Android - NFA024 Conservatoire National des Arts et Métiers

- TP Programmation Android - NFA024 Conservatoire National des Arts et Métiers - TP Programmation Android - NFA024 Conservatoire National des Arts et Métiers vendredi 22 février 2013 Installation : Pour programmer des applications Android, il faut tout d abord veiller à disposer

Plus en détail

1.3 Gestion d'une application

1.3 Gestion d'une application 1.3 Gestion d'une application 1. Un premier projet... Il est temps maintenant d'écrire la véritable première application Android avec l'inévitable affichage du mot bonjour, ce qui évidemment pour un développement

Plus en détail

Votre premier projet Android

Votre premier projet Android 3 Votre premier projet Android Maintenant que le SDK Android est installé, il est temps de créer votre premier projet. La bonne nouvelle est qu il n exige aucune ligne de code les outils Android créent

Plus en détail

Programmation Mobile Android Master CCI

Programmation Mobile Android Master CCI Programmation Mobile Android Master CCI Bertrand Estellon Aix-Marseille Université March 23, 2015 Bertrand Estellon (AMU) Android Master CCI March 23, 2015 1 / 266 Organisation de l UE Objectifs du cours

Plus en détail

Plate formes mobiles. Utilisation. Contexte 9/29/2010 IFC 2. Deux utilisations assez distinctes :

Plate formes mobiles. Utilisation. Contexte 9/29/2010 IFC 2. Deux utilisations assez distinctes : Plate formes mobiles IFC 2 Markus Jaton Utilisation Deux utilisations assez distinctes : Téléphones évolués (Nokia, Motorola) Smartphones (Apple,, Windows) La téléphonie est en stagnation, alors que les

Plus en détail

Table des matières. Partie I Concepts de base... 1. Préface... VII

Table des matières. Partie I Concepts de base... 1. Préface... VII Table des matières Préface... VII Partie I Concepts de base... 1 1. Tour d horizon... 3 Avantages et inconvénients de la programmation des smartphones... 3 Contenu d un programme Android... 4 Fonctionnalités

Plus en détail

Développement Android. J.-F. Couchot

Développement Android. J.-F. Couchot Développement Android J.-F. Couchot 12 novembre 2012 Table des matières 1 Introduction à l OS embarqué Android 3 I Composants principaux d une application................................ 3 I.1 Une activité............................................

Plus en détail

Android. Programmation. De la conception au déploiement avec le SDK Google Android 2. Damien Guignard Julien Chable Emmanuel Robles

Android. Programmation. De la conception au déploiement avec le SDK Google Android 2. Damien Guignard Julien Chable Emmanuel Robles Programmation Android De la conception au déploiement avec le SDK Google Android 2 Damien Guignard Julien Chable Emmanuel Robles Avec la contribution de Nicolas Sorel et Vanessa Conchodon Groupe Eyrolles,

Plus en détail

Optimiser pour les appareils mobiles

Optimiser pour les appareils mobiles chapitre 6 Optimiser pour les appareils mobiles 6.1 Créer un site adapté aux terminaux mobiles avec jquery Mobile... 217 6.2 Transformer son site mobile en application native grâce à PhoneGap:Build...

Plus en détail

www.elektor.fr/android SOMMAIRE

www.elektor.fr/android SOMMAIRE www.elektor.fr/android Android Apprendre à programmer des applis Environnement de développement Eclipse Programmation orientée objet en JAVA Auteur : Stephan Schwark Éditeur : Elektor ISBN : 978-2-86661-187-3

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Annexe Android Studio

Annexe Android Studio 1 Annexe Android Studio 2 Introduction «Eclipse» était l'outil de développement le plus utilisé pour développer des applications Android jusqu à mai 2013. Cet outil était interfacé avec le plug-in «ADT»

Plus en détail

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6 BUREAU VIRTUEL Utilisation de l application sur ipad Guide utilisateur Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6 Utilisation du bureau virtuel sur ipad Table des matières PREAMBULE...2 QU

Plus en détail

Point sur les solutions de développement d apps pour les périphériques mobiles

Point sur les solutions de développement d apps pour les périphériques mobiles Point sur les solutions de développement d apps pour les périphériques mobiles Par Hugues MEUNIER 1. INTRODUCTION a. Une notion importante : le responsive web design Nous sommes en train de vivre une nouvelle

Plus en détail

Environnements de développement (intégrés)

Environnements de développement (intégrés) Environnements de développement (intégrés) Introduction aux EDI, la plateforme Eclipse Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

Plus en détail

Développement tablette Android. SophiaConf2011 Par Arnaud FARINE

Développement tablette Android. SophiaConf2011 Par Arnaud FARINE Développement tablette Android SophiaConf2011 Par Arnaud FARINE Parts de marché Android en 2011 1er OS vendu aux EU fin 2010 24% des smartphones en France (35% ios, 11% Blackberry) 3,6 millions de smartphones

Plus en détail

VIDEO RECORDING Accès à distance

VIDEO RECORDING Accès à distance ENREGISTREUR DIGITAL VIDEO (DMR): Accès à Distance (adresses données par S & P) Internet Explorer Ordinateur Chrome ou Firefox Windows Programme NON RECOMMANDE: avec ActiveX (fonction aléatoire) Ordinateur

Plus en détail

Introduction à Eclipse

Introduction à Eclipse Introduction à Eclipse Eclipse IDE est un environnement de développement intégré libre (le terme Eclipse désigne également le projet correspondant, lancé par IBM) extensible, universel et polyvalent, permettant

Plus en détail

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/

Plus en détail

République Algérienne Démocratique et Populaire Université Abou Bakr Belkaid Tlemcen Faculté des Sciences Département d Informatique

République Algérienne Démocratique et Populaire Université Abou Bakr Belkaid Tlemcen Faculté des Sciences Département d Informatique République Algérienne Démocratique et Populaire Université Abou Bakr Belkaid Tlemcen Faculté des Sciences Département d Informatique Mémoire de fin d études pour l obtention du diplôme de Licence en Informatique

Plus en détail

Education Delivery Intelligent Tool

Education Delivery Intelligent Tool Education Delivery Intelligent Tool Projet AMO2 Maxence RAOUX Joachim SEGALA RICM 4 Avril 2012 Sommaire I. Presentation du projet... 2 1. Contexte... 2 2. Demande... 2 3. Spécifications... 2 II. Guide

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement

Plus en détail

Encore plus de widgets et de conteneurs

Encore plus de widgets et de conteneurs 14 Encore plus de widgets et de conteneurs Nous avons déjà présenté un certain nombre de widgets et de conteneurs, et ce chapitre sera le dernier qui leur sera exclusivement consacré : il présente plusieurs

Plus en détail

Formation WinDev Mobile

Formation WinDev Mobile Formation WinDev Mobile 1 Pré requis 2 WinDev Mobile : présentation générale 3 Particularités des applications Android 3.1 Eléments de projets disponibles 3.2 Bases de données 3.3 Le SDK et le JDK 4 Création

Plus en détail

PPM(A) Programmation sur Plateformes Mobiles (Android) fabrice.legond-aubry@u-paris10.fr. Legond-Aubry Fabrice

PPM(A) Programmation sur Plateformes Mobiles (Android) fabrice.legond-aubry@u-paris10.fr. Legond-Aubry Fabrice PPM(A) Programmation sur Plateformes Mobiles (Android) Legond-Aubry Fabrice fabrice.legond-aubry@u-paris10.fr PPM Legond-Aubry Fabrice Module PPM(A) - 02/01/2014 1 3 parties: PLAN Généralités & Outils

Plus en détail

Béatrice Bertrand CDDP de l Eure. Béatrice Bertrand CDDP de l'eure

Béatrice Bertrand CDDP de l Eure. Béatrice Bertrand CDDP de l'eure CDDP de l Eure Android (prononcé androïde) est un système d'exploitation fondé sur un noyau Linux, en open source, pour Smartphones, PDA (Personal Digital Assistant) et terminaux mobiles. Il comporte une

Plus en détail

LES TABLETTES : GÉNÉRALITÉS

LES TABLETTES : GÉNÉRALITÉS LES TABLETTES : GÉNÉRALITÉS Fonctionnement Qu est-ce qu une tablette tactile? Une tablette tactile est un appareil doté d'un écran qui permet d'interagir simplement en touchant l'écran ou à l'aide d'un

Plus en détail

GUIDE D UTILISATION DU LOGICIEL DE TELE-MAINTENANCE. TEAM VIEWER Version 7.

GUIDE D UTILISATION DU LOGICIEL DE TELE-MAINTENANCE. TEAM VIEWER Version 7. www.teamviewer.com/fr/download/index.aspx Guide de mise en place de la télé-maintenance GUIDE D UTILISATION DU LOGICIEL DE TELE-MAINTENANCE TEAM VIEWER Version 7. Ce tutoriel vous décrit pas-à-pas la procédure

Plus en détail

La base de données XML exist. A. Belaïd

La base de données XML exist. A. Belaïd La base de données XML exist Introduction Qu est-ce-que exist? C est une base de donnée native, entièrement écrite en Java XML n est pas une base de données en soi Bien qu il possède quelques caractéristiques

Plus en détail

Paramétrage des navigateurs

Paramétrage des navigateurs Paramétrage des navigateurs 1 Procédure d'accès aux ressources électroniques nationales suivant le script de configuration automatique de proxy revelec.pac Document mis à jour en avril 201 Configuration

Plus en détail

Android. Présentation d Android. Florent Garin http://www.docdoku.com http://twitter.com/docdoku

Android. Présentation d Android. Florent Garin http://www.docdoku.com http://twitter.com/docdoku Android Présentation d Android 20 novembre 2010 Florent Garin http://www.docdoku.com http://twitter.com/docdoku Florent Garin Co-fondateur de DocDoku Société innovante IT http://www.docdoku.com Co-fondateur

Plus en détail

Once the installation is complete, you can delete the temporary Zip files..

Once the installation is complete, you can delete the temporary Zip files.. Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une

Plus en détail

Eclipse atelier Java

Eclipse atelier Java Eclipse atelier Java Table des matières 1. Introduction...2 2. Télécharger eclipse...3 3. Installer eclipse...3 4. Premier lancement d eclipse...3 5. Configurer eclipse pour faire du Java...5 6. Développer

Plus en détail

Développement d applications professionnelles avec Android 2

Développement d applications professionnelles avec Android 2 Développement d applications professionnelles avec Android 2 Reto Meier Traduit par Dalil Djidel, avec la contribution technique d Arnaud Farine Pearson Education France a apporté le plus grand soin à

Plus en détail

Comment paramétrer manuellement mon mobile pour accéder à la 2G/3G+ et configurer mes emails?

Comment paramétrer manuellement mon mobile pour accéder à la 2G/3G+ et configurer mes emails? Comment paramétrer manuellement mon mobile pour accéder à la 2G/3G+ et configurer mes emails? Systèmes d exploitation Définition Qu est-ce qu un système d exploitation? Rôle du système d exploitation Un

Plus en détail

Utilisation de GCM (Google Cloud Messaging) pour Android. Partie préliminaire éventuelle : Création d'un AVD lisant GCM

Utilisation de GCM (Google Cloud Messaging) pour Android. Partie préliminaire éventuelle : Création d'un AVD lisant GCM Utilisation de GCM (Google Cloud Messaging) pour Android Ce TP est inspiré de : http://android.amolgupta.in/2012/07/google-cloud-messaging-gcm-tutorial.html On va écrire deux parties. Une application Android

Plus en détail

Android 101. Rémi Forax

Android 101. Rémi Forax Android 101 Rémi Forax OS/smartphone dans le monde Historique Octobre 2003 : conception d'un OS mobile par Android Inc. (co-fondé par Andy Rubin) Août 2005 : rachat d'android Inc par Google Novembre 2007

Plus en détail

1 INTRODUCTION. PowerBuilder - Introduction. Pascal Buguet Imprimé le 19 août 2004 Page 1

1 INTRODUCTION. PowerBuilder - Introduction. Pascal Buguet Imprimé le 19 août 2004 Page 1 1 INTRODUCTION 1 INTRODUCTION... 1 1.1 A quoi sert Power Builder?... 2 1.2 Principaux Concepts... 4 1.3 Une première application... 6 1.3.1 Création du Workspace... 7 1.3.2 Création de l application...

Plus en détail

Tutoriel Android. Pour démarrer la programmation d'applications Android

Tutoriel Android. Pour démarrer la programmation d'applications Android Tutoriel Android Pour démarrer la programmation d'applications Android Remarque préalable Comme il est impossible de traiter tous les aspects d'android, seulement quelques uns seront présentés. De plus

Plus en détail

Twixl Portfolio DE INDESIGN VERS LES TABLETTES. Luk Dhondt - Product Manager

Twixl Portfolio DE INDESIGN VERS LES TABLETTES. Luk Dhondt - Product Manager Twixl Portfolio DE INDESIGN VERS LES TABLETTES Luk Dhondt - Product Manager Agenda A propos des apps Vue d ensemble du produit Options de distribution SDK Q & R Content apps Types d applications Single-issue

Plus en détail

Atelier numérique. Développement économique de Courbevoie. Internet / Extranet / Mobilité : Prospection et Support d'aide à la vente

Atelier numérique. Développement économique de Courbevoie. Internet / Extranet / Mobilité : Prospection et Support d'aide à la vente Atelier numérique Développement économique de Courbevoie Jeudi 21 mars 2013 Internet / Extranet / Mobilité : Prospection et Support d'aide à la vente Actualités et Informations juridiques Atelier numérique

Plus en détail

Épisode 2 : Les outils de développement Alain Menu édition 2.1, septembre 2013

Épisode 2 : Les outils de développement Alain Menu édition 2.1, septembre 2013 Département IRIS Épisode 2 : Les outils de développement Alain Menu édition 2.1, septembre 2013 Objectifs : Mise en œuvre d'une chaine de développement pour cibles Android. Table des matières 2.1.Mise

Plus en détail

COSWIN MOBILE SERVEUR DE SYNCHRONISATION GUIDE D INSTALLATION

COSWIN MOBILE SERVEUR DE SYNCHRONISATION GUIDE D INSTALLATION SERVEUR DE SYNCHRONISATION GUIDE D INSTALLATION SOMMAIRE I. FONCTION DU SERVEUR DE SYNCHRONISATION...3 II. ELEMENTS DU SERVEUR DE SYNCHRONISATION...3 1. APPLICATION ULSA... 3 2. APPLICATION IDE.... 3 III.

Plus en détail

Programmation Android L3 informatique

Programmation Android L3 informatique Programmation Android L3 informatique Étienne Payet Département de mathématiques et d informatique Ces transparents sont mis à disposition selon les termes de la Licence Creative Commons Paternité - Pas

Plus en détail

WINDEV MOBILE. ios SMARTPHONE SUPPORT: IOS, ANDROID, WINDOWS PHONE 8.

WINDEV MOBILE. ios SMARTPHONE SUPPORT: IOS, ANDROID, WINDOWS PHONE 8. WINDEV MOBILE ios SMARTPHONE SUPPORT: IOS, ANDROID, WINDOWS PHONE 8. WINDOWS Mobile permet de créer des applications pour les smartphones, les tablettes et les terminaux mobiles. Les applications sont

Plus en détail

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server Machine virtuelle Machine virtuelle Machine virtuelle VMware ESX 3 Network Shutdown Module Network

Plus en détail

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12 GTK+ GLADE Page 1 sur 12 SOMMAIRE INTRO 3 Présentation de GTK+ 3 Présentation de GLADE 3 GTK+ 4 Installation 4 Les Widgets 4 Le système de hiérarchie 5 Les signaux 6 GLADE 7 Installation 7 L interface

Plus en détail

MailStore Server 7 Caractéristiques techniques

MailStore Server 7 Caractéristiques techniques MailStore Server 7 Caractéristiques techniques MailStore Server La référence en matière d archivage d e-mails La solution MailStore Server permet aux entreprises de toutes tailles de bénéficier des avantages

Plus en détail

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2 Langage et Concepts de Programmation Objet Travaux Dirigés no2 Pôle Informatique École Nationale Supérieure des Mines de St-Etienne Vous trouverez plus de détails sur les concepts abordés lors de ce TD

Plus en détail

Introduction à Windows 8

Introduction à Windows 8 Introduction à Windows 8 Windows 8 est aujourd hui le dernier Système d exploitation de Microsoft. Ce système n étant pas destiner exclusivement au Oridnateur (il est également installé sur certaines tablettes

Plus en détail

Créer des applications Android

Créer des applications Android Créer des applications Android Auteurs : Philippe Lacomme, Raksmey Phan Les outils nécessaires sont : - Android SDK - Eclipse - Le plugin ADT de Eclipse Plan (ceci n est pas un cours) Outils: Préparation

Plus en détail

Développement d'applications pour Android. M. Dalmau IUT de Bayonne Pays Basque

Développement d'applications pour Android. M. Dalmau IUT de Bayonne Pays Basque Développement d'applications pour Android M. Dalmau IUT de Bayonne Pays Basque Positionnement d Android L iphone (Apple) Nokia (Symbian OS) Window Mobile (Microsoft) BlackBerry Palm (WebOS) Google (Android)

Plus en détail

Android 2.3 Gingerbread

Android 2.3 Gingerbread Android 2.3 Gingerbread Laurent Villain Le but de cette documentation est de permettre d utiliser à des fins professionnelles un smartphone avec l OS Android. Les appareils qui ont servi à cette expérimentation

Plus en détail

Alfstore workflow framework Spécification technique

Alfstore workflow framework Spécification technique Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: info@alfstore.com Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date

Plus en détail

Installer Enterprise Miner 5.1 en SAS9.1.3 - environnement Windows

Installer Enterprise Miner 5.1 en SAS9.1.3 - environnement Windows Installer Enterprise Miner 5.1 en SAS9.1.3 - environnement Windows Introduction :... 3 1. Présentation de l architecture Enterprise Miner 5.1 :... 4 2. Installation d Enterprise Miner 5.1:... 5 3. Post-installation

Plus en détail

1 ) INSTALLATION DE LA CONSOLE 2 2 ) PREMIER DÉMARRAGE DE LA CONSOLE 3 3 ) LES JOBS 4 4 ) LES ORDINATEURS 6

1 ) INSTALLATION DE LA CONSOLE 2 2 ) PREMIER DÉMARRAGE DE LA CONSOLE 3 3 ) LES JOBS 4 4 ) LES ORDINATEURS 6 1 ) INSTALLATION DE LA CONSOLE 2 2 ) PREMIER DÉMARRAGE DE LA CONSOLE 3 3 ) LES JOBS 4 4 ) LES ORDINATEURS 6 5 ) RÉINSTALLATION COMPLÈTE D UN ORDINATEUR 8 6 ) DÉTAILS D UN JOB 9 7 ) RELANCER UN JOB INCOMPLET

Plus en détail

www.communautes-numeriques.net

www.communautes-numeriques.net Quelques mots sur le créateur de cette présentation: Yves Roger Cornil. Président de l association Communautés Numériques Microsoft MVP Macintosh. Co-fondateur de Microcam en 1981 - Vice président de Microcam

Plus en détail

[Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY. Validation du document Nom Date Visa

[Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY. Validation du document Nom Date Visa [Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY Organisme ou entreprise Validation du document Nom Date Visa Amel LIMAM Organisme ou entreprise Approbation

Plus en détail

Reversing Android. Aïe, robot...

Reversing Android. Aïe, robot... Reversing Android Aïe, robot... Meeting #Hackerzvoice 5 mars 2011 Plan (1/4) Système Android Dalvik VM Format de paquetage Structure d'un paquetage Ressources Stockage des ressources Strings Ressources

Plus en détail

Projet Android (LI260) Cours 2

Projet Android (LI260) Cours 2 Projet Android (LI260) Cours 2 Nicolas Baskiotis Université Pierre et Marie Curie (UPMC) Laboratoire d Informatique de Paris 6 (LIP6) S2-2013/2014 Plan Les ressources Debug Communication entre activités

Plus en détail

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5 Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5 Machine virtuelle Machine virtuelle Machine virtuelle VMware ESX Network Shutdown Module

Plus en détail

Synchroniser ses photos

Synchroniser ses photos Synchroniser Avec l'arrivée des smartphones et tablettes équipés de fonctions «appareils photos», nous réalisons de plus en plus de photos avec ceux-ci. Soucis, la mémoire de ces outils n'est pas aussi

Plus en détail

Déploiement des manuels numériques sur tablette. Mode d emploi intégrateur / administrateur

Déploiement des manuels numériques sur tablette. Mode d emploi intégrateur / administrateur Déploiement des manuels numériques sur tablette Mode d emploi intégrateur / administrateur Table des matières Introduction... 3 Etape 1 : récupération de l application sur les stores... 3 Etape 2 : création

Plus en détail

GUIDE D UTILISATION LA DEPECHE PREMIUM

GUIDE D UTILISATION LA DEPECHE PREMIUM www.ladepeche.fr/premium GUIDE D UTILISATION LA DEPECHE PREMIUM La version 100% numérique de La Dépêche du Midi 1 Madame, Monsieur, Ce guide a pour objectif de vous accompagner dans la prise en main de

Plus en détail

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry. : Java Agent DEvelopment framework Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.fr Introduction à la plateforme JADE 1) Modèle d agent 2) Services 3) Norme FIPA

Plus en détail

Environnements de développement (intégrés)

Environnements de développement (intégrés) Environnements de développement (intégrés) Tests unitaires, outils de couverture de code Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

Plus en détail

Table des matières Introduction... 1 1. Démarrage... 8 2. Les composants graphiques... 26

Table des matières Introduction... 1 1. Démarrage... 8 2. Les composants graphiques... 26 Table des matières À propos de l'auteur... x Préface... xi Avant-propos... xiv 1. Public visé et prérequis... xiv 2. Sources des exemples... xv 3. Accès aux vidéos... xv 4. URL raccourcies... xv 5. Remerciements...

Plus en détail

ECLIPSE ET PDT (Php development tools)

ECLIPSE ET PDT (Php development tools) ECLIPSE ET PDT (Php development tools) Eclipse Eclipse est un IDE (Integrated Development Environment)).C estun projet de la Fondation Eclipse visant à développer tout un environnement de développement

Plus en détail

Oracle Developer Suite 10g. Guide de l installation. Vista & Seven

Oracle Developer Suite 10g. Guide de l installation. Vista & Seven TRAVAIL RÉALISÉ PAR ABED ABDERRAHMANE Oracle Developer Suite 10g Guide de l installation 10g Release 2 (10.1.2) pour Windows Vista & Seven www.oraweb.ca Page 1 TABLE DES MATIÈRES : PARTIE 1 : CONCEPTS

Plus en détail

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN fbertin@neotilus.com

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN fbertin@neotilus.com Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184 Frédéric BERTIN fbertin@neotilus.com Présentaion : Mobile 3D Graphics API JSR 184 M3G :présentation Package optionnel de l api J2ME. Prend

Plus en détail

Utilisation d une tablette numérique

Utilisation d une tablette numérique Utilisation d une tablette numérique Transférer des photos, des vidéos d un ipad vers un ordinateur Sur l ipad vous pouvez capturer des photos et des vidéos à l aide de l appareil photo intégré ou enregistrer

Plus en détail

Android Publish/Subscribe, GCM, Google Cloud Messaging : une introduction

Android Publish/Subscribe, GCM, Google Cloud Messaging : une introduction Android Publish/Subscribe, GCM, Google Cloud Messaging : une introduction jean-michel Douin, douin au cnam point fr version : 8 Décembre 2014 Notes de cours 1 Sommaire Le socle, les fondements Le patron

Plus en détail

1. Base de données SQLite

1. Base de données SQLite Dans ce TP, nous allons voir comment créer et utiliser une base de données SQL locale pour stocker les informations. La semaine prochaine, ça sera avec un WebService. On repart de l application AvosAvis

Plus en détail

Environnement Zebra Link-OS version 2.0

Environnement Zebra Link-OS version 2.0 Environnement Zebra Link-OS version 2.0 Pour répondre aux nouvelles attentes et à une hausse de la demande en appareils à la fois mobiles, intelligents et connectés au Cloud, Zebra Technologies a créé

Plus en détail

< Atelier 1 /> Démarrer une application web

< Atelier 1 /> Démarrer une application web MES ANNOTATIONS SONT EN ROUGE : Axel < Atelier 1 /> Démarrer une application web Microsoft France Tutorial Découverte de ASP.NET 2.0 Sommaire 1 INTRODUCTION... 3 1.1 CONTEXTE FONCTIONNEL... 3 1.2 CONTEXTE

Plus en détail

Android et le Cloud Computing

Android et le Cloud Computing Android et le Cloud Computing 1 Plan de l'exposé Rappels sur Android et le cloud Présentation de GCM Notions fondamentales de GCM Construire un projet GCM Ecrire un client GCM (récepteur GCM) Ecrire un

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 I. Objectif du TP TP1 : Initiation à Java et Eclipse Programmation Mobile Initiation à l environnement Eclipse et aux notions de base du langage Java. II. Environnement

Plus en détail

N.B. : Le mot de passe est le même pour les connexions sans fil, e-learning et Windows (laboratoires) ainsi que les adresses électroniques.

N.B. : Le mot de passe est le même pour les connexions sans fil, e-learning et Windows (laboratoires) ainsi que les adresses électroniques. Foire aux questions : Comptes et mot de passe Quels types de compte USEK sont disponibles? - Connexion sans fil, e-learning et Windows (Matricule universitaire et mot de passe) - Bannière (Matricule universitaire

Plus en détail

EIP 2012 Projet Livepad. Documentation technique 1.5

EIP 2012 Projet Livepad. Documentation technique 1.5 EIP 2012 Projet Livepad 1.5 Marc Mathieu Benjamin Netter David Ngo Pierre Pasteau Denis Togbe 12-01-2012 Informations sur le projet Groupe Nom du projet Type de document Marc Mathieu Benjamin Netter David

Plus en détail

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

Plus en détail

FLEX 3. Applications Internet riches avec Flash ActionScript 3, MXML et Flex Builder. Aurélien Vannieuwenhuyze

FLEX 3. Applications Internet riches avec Flash ActionScript 3, MXML et Flex Builder. Aurélien Vannieuwenhuyze Programmation FLEX 3 Applications Internet riches avec Flash ActionScript 3, MXML et Flex Builder Aurélien Vannieuwenhuyze Avec la contribution de Romain Pouclet Groupe Eyrolles, 2009, ISBN : 978-2-212-12387-6

Plus en détail

Terminaux Mobiles Communicants

Terminaux Mobiles Communicants Terminaux Mobiles Communicants Programmation Android P-F. Bonnefoi Version du 4 avril 2011 Table des matières 1 Open Handset Alliance.............................................. 5 2 Android : matériel

Plus en détail