Créer des interfaces utilisateur

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

Download "Créer des interfaces utilisateur"

Transcription

1 4 Créer des interfaces utilisateur Au sommaire de ce chapitre : Utiliser les vues et les layouts Comprendre les fragments Optimiser les layouts Créer des interfaces utilisateur indépendantes de la résolution Étendre, grouper, créer et utiliser les vues Utiliser des adaptateurs pour lier des données aux vues. Citons Stephen Fry sur l importance du style comme essence de la conception d appareils numériques : Comme si un appareil pouvait fonctionner sans style. Comme si un appareil pouvait être stylé s il ne fonctionnait pas parfaitement. Oui, la beauté compte, et sacrément. Elle n est pas superficielle, elle n est pas optionnelle, elle est la chose elle-même. Stephen Fry, The Guardian (27 octobre 2007) Bien que Fry décrit le style des terminaux eux-mêmes, il aurait pu dire la même chose des applications qui s exécutent sur ceux-ci. L augmentation des tailles, des résolutions et de la luminosité des écrans, ainsi que le support du multitouch, a rendu les applications de plus en plus visuelles. L introduction de terminaux optimisés pour un confort d utilisation de plus en plus grand notamment les tablettes et les télévisions dans l écosystème Android n a fait qu augmenter l importance de la conception visuelle d une application. Nous vous présenterons dans ce chapitre les éléments de base de l interface Android et vous découvrirez comment utiliser les layouts, les fragments et les vues pour créer des interfaces fonctionnelles et intuitives pour vos activités. Les différents éléments d une interface utilisateur Android sont rangés à l écran par le biais de plusieurs gestionnaires de layouts dérivés de la classe ViewGroup. Ce chapitre

2 102 Android 4 introduira plusieurs classes layout natives et montrera comment les utiliser, comment créer les vôtres et comment vous assurer que vous utilisez les layouts le plus efficacement possible. La gamme des tailles et des résolutions d écrans s est étendue en même temps que la gamme des terminaux disponibles. Android 3.0 a introduit l API des fragments afin d offrir un meilleur support de création de layouts dynamiques, pouvant être optimisés pour les tablettes et pour un grand nombre d écrans de smartphones. Après avoir découvert quelques contrôles visuels fournis par le SDK, vous apprendrez à les étendre et à les personnaliser. Grâce aux groupes de vues, vous combinerez des vues pour créer des éléments d interfaces atomiques et réutilisables, constitués de sous-contrôles qui interagissent. Vous créerez également vos propres vues pour afficher des données et interagir avec vos utilisateurs. Enfin, nous présenterons les adaptateurs et nous verrons comment les utiliser pour lier votre couche présentation aux sources de données sous-jacentes. Fondements de la conception d interface sous Android La conception d interface utilisateur, l expérience utilisateur, l interaction hommemachine et la facilité d utilisation sont de vastes sujets que nous ne couvrirons pas en profondeur dans cet ouvrage. Il est néanmoins important de les avoir en tête lors de la création de vos interfaces utilisateur. Android introduit une nouvelle terminologie pour des métaphores de programmation familières, que nous allons explorer en détail dans les sections suivantes : Vues. Les Vues sont les classes de base pour tous les éléments visuels d interface (communément appelés contrôles ou widgets). Tous les contrôles d interface, y compris les classes layout, sont dérivés de la classe View. Groupes de vues. Les groupes de vues sont des extensions de la classe View pouvant contenir plusieurs vues filles. L extension de la classe ViewGroup permet de créer des contrôles composites constitués de vues filles interconnectées. La classe ViewGroup peut être également étendue pour fournir les gestionnaires de layouts qui aident à disposer les contrôles dans vos activités. Fragments. Les fragments, introduits par Android 3.0 (API level 11) servent à encapsuler des portions de votre interface. Cette encapsulation est particulièrement utile pour optimiser les layouts de votre interface pour différentes tailles d écrans et pour créer des composants d interface réutilisables. Chaque fragment contient son propre layout et reçoit les événements d entrée concernés, mais il est étroitement lié à l activité dans laquelle il doit être intégré. Les fragments ressemblent aux contrôleurs de vues utilisés dans le développement pour iphone. Activités. Les activités, décrites en détail dans le chapitre précédent, représentent les fenêtres ou les écrans affichés. Elles sont les équivalents Android des Forms

3 Chapitre 4 Créer des interfaces utilisateur 103 de Windows. Pour afficher une interface utilisateur, vous devez affecter une vue (en général, un layout ou un fragment) à une activité. Android fournit de nombreux contrôles, widgets et gestionnaires de layouts. Pour la plupart des applications graphiques, il est probable que vous aurez besoin d étendre et de modifier ces vues standard ou d en créer de nouvelles pour fournir votre propre expérience utilisateur. Fondements des interfaces utilisateur sous Android Tous les composants visuels Android descendent de la classe View et sont généralement désignés sous le terme générique de vues. Vous verrez souvent appelés vues des contrôles ou des widgets (à ne pas confondre les widgets de l écran d accueil, qui sont décrits au Chapitre 14), termes avec lesquels vous êtes probablement familier si vous avez déjà développé pour des environnements graphiques. La classe ViewGroup est une extension de la classe View conçue pour contenir plusieurs vues. Les groupes de vues sont utilisés le plus souvent pour gérer la disposition des vues filles, mais également pour construire des composants atomiques réutilisables. Les groupes de vues qui tiennent le premier rôle sont appelés layouts. Dans les sections qui suivent, vous apprendrez à concevoir des interfaces de plus en plus complexes, puis nous présenterons les fragments, les vues offertes par le SDK, comment les étendre, comment construire vos propres contrôles composés et créer des vues personnalisées en partant de zéro. Affecter des interfaces utilisateur aux activités Une nouvelle activité démarre avec un écran vide dans lequel vous allez placer votre interface utilisateur. Pour cela, appelez setcontentview en lui passant l instance de View ou la ressource layout à afficher. Les écrans vides n étant pas particulièrement attirants, vous utiliserez presque toujours setcontentview pour affecter une interface à une activité lorsque vous redéfinirez son gestionnaire oncreate. La méthode setcontentview prend en paramètre soit un identifiant de ressource layout, soit une simple instance de View. Cela vous permet de définir votre interface utilisateur dans le code ou en utilisant la technique privilégiée des ressources layout public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); Utiliser des ressources layout découple votre couche de présentation de la logique applicative, vous donnant ainsi la souplesse de modifier la présentation sans toucher

4 104 Android 4 au code. Cela permet de préciser différents layouts optimisés pour des configurations matérielles différentes, voire de les modifier à l exécution en fonction de changements matériels (l orientation de l écran, par exemple). La méthode findviewbyid permet d obtenir une référence à chacune des vues d un layout : TextView mytextview = (TextView)findViewById(R.id.myTextView); Si vous préférez l approche plus traditionnelle, vous pouvez construire l interface directement dans votre code public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); TextView mytextview = new TextView(this); setcontentview(mytextview); mytextview.settext( Hello, Android ); La méthode setcontentview prend en paramètre une instance unique de View : vous devez donc utiliser des layouts pour ajouter plusieurs contrôles à votre activité. Si vous utilisez les fragments pour encapsuler des portions de l interface de l activité, la vue désérialisée dans le gestionnaire oncreate sera un layout qui décrit la position relative de chaque fragment (ou de ses conteneurs). L interface utilisateur utilisée pour chaque fragment est définie dans son propre layout et désérialisée dans le fragment lui-même, comme nous le verrons plus loin dans ce chapitre. Lorsqu un fragment a été désérialisé dans une activité, les vues qu il contient font partie de la hiérarchie des vues de cette activité : vous pouvez donc retrouver n importe laquelle de ses vues filles dans l activité parente en utilisant findbyviewid, comme précédemment. Introduction aux layouts Les gestionnaires de layout (appelés en général simplement layouts) sont des extensions de la classe ViewGroup utilisées pour placer des vues filles dans votre interface utilisateur. Les layouts peuvent être imbriqués, ce qui permet, en les combinant, de créer des interfaces complexes. Le SDK Android inclut quelques classes layouts. Vous pouvez les utiliser, les modifier ou créer vos propres layouts pour construire l interface utilisateur de vos vues, de vos fragments et de vos activités. À vous de sélectionner la bonne combinaison pour rendre votre interface facile à comprendre et à utiliser. La liste qui suit présente quelques-unes des classes layout les plus utilisées : FrameLayout. Le plus simple des gestionnaires de layout. Il épingle simplement chaque vue fille dans le coin supérieur gauche (mais vous pouvez changer cette

5 Chapitre 4 Créer des interfaces utilisateur 105 position par défaut à l aide de l attribut gravity). Ajouter plusieurs filles les empile les unes sur les autres, chaque nouvelle vue dissimulant la précédente. LinearLayout. Aligne chaque vue fille verticalement ou horizontalement. Un layout vertical montre une colonne de vues alors qu un layout horizontal montre une ligne de vues. Ce gestionnaire vous permet de préciser un "poids" pour chaque fille à l aide de l attribut weight, afin de contrôler la taille relative de chacune d entre elles dans l espace disponible. RelativeLayout. Le plus souple des layouts natifs. Il vous permet de définir les positions de chaque vue fille par rapport aux autres et aux limites de l écran. GridLayout. Introduit par Android 4.0 (API level 14), ce gestionnaire utilise une grille rectangulaire de fines lignes pour disposer les vues dans une suite de lignes et de colonnes. Il est extrêmement souple et permet de beaucoup simplifier les layouts ou d éliminer l imbrication complexe qui est souvent nécessaire avec les gestionnaires précédents. Pour le construire, il est préférable d utiliser l éditeur de layout plutôt que de créer manuellement sa description en XML Chacun de ces layouts est conçu pour s adapter à la taille de l écran du terminal hôte en évitant d utiliser des positions absolues ou des valeurs de pixels prédéterminées. Ceci les rend particulièrement utiles lorsque l on conçoit des applications devant fonctionner sur plusieurs terminaux Android différents. La documentation Android décrit les caractéristiques et propriétés de chaque classe layout en détail. Plutôt que la reproduire ici, nous préférons vous y renvoyer : Vous verrez des exemples pratiques d utilisation de ces layouts car ils sont utilisés dans les exemples de ce livre. Plus loin, dans ce chapitre, vous apprendrez également à créer des contrôles composites en utilisant et/ou en étendant ces classes. Définir les layouts La façon privilégiée d implémenter des layouts est d utiliser des ressources externes en XML. Chaque layout XML doit contenir un seul élément racine qui peut contenir autant de layouts et de vues imbriqués nécessaires à la construction d un écran arbitrairement complexe. L extrait suivant montre un layout simple qui place une TextView au-dessus d un EditText à l aide d un LinearLayout vertical : <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">

6 106 Android 4 <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="entrez votre texte ici" <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="le texte s\ affiche là!" </LinearLayout> Notez que pour chaque élément du layout on utilise les constantes wrap_content et fill_parent plutôt qu une hauteur ou une largeur exactes en pixels. Ces constantes, combinées aux layouts qui savent s adapter (comme les layouts linéaires, relatifs ou en grille), sont la technique la plus simple et la plus puissante pour garantir que vos layouts seront indépendants de la taille et de la résolution de l écran. La constante wrap_content fixe la taille de la vue au minimum nécessaire pour afficher son contenu (la hauteur requise pour afficher un texte, par exemple). La constante fill_parent étend la vue pour remplir l espace disponible dans la vue, le fragment ou l activité parente. Vous apprendrez au cours de ce chapitre comment paramétrer la hauteur et la largeur minimales de vos propres contrôles ainsi que d autres pratiques permettant de rester indépendant de la résolution. L implémentation des layouts en XML découple la couche de présentation du code de la vue, du fragment, le code contrôleur de l activité et le code métier. Elle vous permet également de créer des variantes spécifiques au matériel, qui seront chargées dynamiquement et qui ne nécessitent pas de modifications du code. Si vous le préférez ou si vous le devez, vous pouvez implémenter les layouts dans votre code. Lorsque vous affectez des vues à des layouts de cette façon, il est important d appliquer LayoutParameters à l aide de la méthode setlayoutparams ou en les passant à l appel addview : LinearLayout ll = new LinearLayout(this); ll.setorientation(linearlayout.vertical); TextView mytextview = new TextView(this); EditText myedittext = new EditText(this); mytextview.settext("entrez votre texte ici "); myedittext.settext("le texte s affiche là!"); int lheight = LinearLayout.LayoutParams.FILL_PARENT; int lwidth = LinearLayout.LayoutParams.WRAP_CONTENT; ll.addview(mytextview, new LinearLayout.LayoutParams(lHeight, lwidth)); ll.addview(myedittext, new LinearLayout.LayoutParams(lHeight, lwidth)); setcontentview(ll);

7 Chapitre 4 Créer des interfaces utilisateur 107 Utiliser des layouts pour créer des interfaces utilisateur indépendantes du matériel Une caractéristique des classes layout que nous avons décrites précédemment et des techniques que nous avons présentées pour les utiliser dans vos applications est leur faculté à s adapter à un grand éventail de tailles, de résolutions et d orientations d écrans. La diversité des terminaux Android joue un rôle essentiel dans son succès. Pour les développeurs, cette diversité implique de concevoir des interfaces qui fourniront le meilleur confort possible à leurs utilisateurs. Utilisation d un layout linéaire Le layout linéaire est l une des classes layout les plus simples qui soit. Il permet de créer des interfaces utilisateur (ou des éléments d interface) simples dans lesquelles les vues filles sont alignées verticalement ou horizontalement. La simplicité des layouts linéaires les rend très simples d emploi, mais limite également leur souplesse. Dans la plupart des cas, vous les utiliserez pour construire des éléments d interfaces qui seront imbriqués dans d autres layouts, comme un layout relatif, par exemple. Le Listing 4.1 montre deux layouts linéaires imbriqués un layout horizontal contenant deux boutons de même taille et un layout vertical qui place ces deux boutons au-dessus d une ListView. Listing 4.1 : Layout linéaire <LinearLayout xmlns:android= android:layout_height= match_parent android:orientation= vertical > <LinearLayout android:layout_width= fill_parent android:layout_height= wrap_content android:orientation= horizontal android:padding= 5dp > <Button android:layout_width= fill_parent android:layout_height= wrap_content android:layout_weight= 1 <Button android:layout_width= fill_parent android:layout_height= wrap_content android:layout_weight= 1 </LinearLayout> <ListView android:layout_height= match_parent </LinearLayout>

8 108 Android 4 Si vous vous rendez compte que vous devez créer des imbrications de plus en plus complexes de layouts linéaires, il est sûrement temps de penser à utiliser un gestionnaire de layouts plus souple. Utilisation d un layout relatif Un layout relatif offre une grande souplesse à vos layouts puisqu il permet de définir la position de chaque élément dans le layout par rapport à son parent et aux autres vues. Le Listing 4.2 modifie le layout décrit dans le Listing 4.1 pour déplacer les boutons sous la ListView. Listing 4.2 : Layout relatif <?xml version= 1.0 encoding= utf-8?> <RelativeLayout xmlns:android= android:layout_height= match_parent > <LinearLayout android:layout_alignparentbottom= true android:layout_width= fill_parent android:layout_height= wrap_content android:orientation= horizontal android:padding= 5dp > <Button android:layout_width= fill_parent android:layout_height= wrap_content android:layout_weight= 1 <Button android:layout_width= fill_parent android:layout_height= wrap_content android:layout_weight= 1 </LinearLayout> <ListView android:layout_alignparentleft= true android:layout_height= match_parent > </ListView> </RelativeLayout> Utilisation d un layout en grille Le layout en grille a été introduit par Android 4.0 (API level 14) ; c est lui qui offre le plus de souplesse parmi tous les gestionnaires de layouts. Il utilise une grille arbitraire pour positionner les vues. En utilisant le regroupement de lignes et de colonnes, la vue spatiale et les attributs gravity, vous pouvez créer des interfaces complexes sans devoir passer par l imbrication qui est nécessaire avec

9 Chapitre 4 Créer des interfaces utilisateur 109 le layout relatif que nous venons de décrire. Le layout en grille est tout particulièrement utile pour construire des layouts qui exigent un alignement dans les deux directions un formulaire dont les lignes et les colonnes doivent être alignées, mais qui inclut également des éléments qui ne s adaptent pas très bien au motif en grille classique, par exemple. Vous pouvez également disposer de toutes les fonctionnalités offertes par un layout relatif en combinant un layout en grille et un layout linéaire. Pour des raisons d efficacité, il est préférable d utiliser un layout en grille plutôt que de créer la même interface en combinant des layouts imbriqués. Le Listing 4.3 présente le même layout que celui du Listing 4.2, mais se sert d un layout en grille à la place du layout relatif. Listing 4.3 : Layout en grille <?xml version= 1.0 encoding= utf-8?> <GridLayout xmlns:android= android:layout_height= match_parent android:orientation= vertical > <ListView android:background= #FF android:layout_gravity= fill > </ListView> <LinearLayout android:layout_gravity= fill_horizontal android:orientation= horizontal android:padding= 5dp > <Button android:text= Annuler android:layout_width= fill_parent android:layout_height= wrap_content android:layout_weight= 1 <Button android:text= OK android:layout_width= fill_parent android:layout_height= wrap_content android:layout_weight= 1 </LinearLayout> </GridLayout> Notez qu il n est pas nécessaire de fixer les paramètres largeur et hauteur des éléments du layout en grille. Chaque élément enveloppe son contenu par défaut et l attribut layout_gravity sert à déterminer dans quelle direction chaque élément doit s étendre. Optimiser les layouts La désérialisation de layouts est un processus coûteux. Chaque layout et vue imbriqué peut avoir un impact dramatique sur la performance et la transparence de vos applications.

10 110 Android 4 C est en général une bonne pratique de garder vos layouts aussi simples que possible, mais également d éviter de désérialiser un layout entier pour quelques changements mineurs dans un autre. Les conteneurs de layouts redondants sont inutiles Un layout linéraire dans un layout frame, tous les deux avec match_parent, ne fait qu augmenter le temps de désérialisation. Recherchez les layouts redondants, surtout si vous avez effectué beaucoup de modifications dans un layout existant ou que vous lui ayez ajouté des layout fils. Il n y a pas de limite à l imbrication des layouts : il est donc facile de créer des hiérarchies complexes et fortement imbriquées. Malgré cette absence de limite, il est conseillé de ne pas dépasser dix niveaux. Un exemple classique d imbrication inutile est l utilisation d un layout frame pour créer l unique nœud racine d un layout, comme l illustre l extrait suivant : <?xml version= 1.0 encoding= utf-8?> <FrameLayout xmlns:android= android:layout_height= match_parent > <ImageView android:layout_height= match_parent <TextView android:layout_height= wrap_content android:gravity= center_horizontal android:layout_gravity= bottom </FrameLayout> Ici, le layout frame deviendra redondant s il est ajouté à un parent. Une meilleure solution consiste à utiliser la balise merge : <?xml version= 1.0 encoding= utf-8?> <merge xmlns:android= > <ImageView android:layout_height= match_parent <TextView

11 Chapitre 4 Créer des interfaces utilisateur 111 android:layout_height= wrap_content android:gravity= center_horizontal android:layout_gravity= bottom </merge> Lorsqu un layout contenant une balise merge est ajouté à un autre layout, le nœud merge est supprimé et ses vues filles sont ajoutées directement au nouveau parent. Cette balise est tout particulièrement pratique lorsqu elle est combinée à la balise include, qui permet d insérer le contenu d un layout dans un autre : <?xml version= 1.0 encoding= utf-8?> <LinearLayout xmlns:android= android:orientation= vertical android:layout_height= match_parent > <include <include </LinearLayout> La combinaison des balises merge et include permet de créer des définitions de layouts simples et réutilisables, qui ne créent pas de hiérarchies lourdement imbriquées. Éviter les vues trop nombreuses Toute vue supplémentaire prend du temps et des ressources pour se désérialiser. Pour optimiser la vitesse et la réactivité de votre application, aucun de ses layouts ne devrait inclure plus de 80 vues. Passé cette limite, le temps pris par la désérialisation du layout devient non négligeable. Pour minimiser le nombre de vues dans un layout complexe, utilisez un ViewStub. Une ébauche de vue (view stub) fonctionne comme une inclusion paresseuse c est une ébauche qui représente les vues filles indiquées dans le layout parent, mais cette ébauche est désérialisée uniquement de façon explicite, par un appel à inflate ou lorsqu elle devient visible. // Recherche de l ébauche View stub = findviewbyid(r.id. download_progress_panel_stub); // On la rend visible, ce qui force la désérialisation du layout fils stub.setvisibility(view.visible); // Recherche du nœud racine du layout désérialisé View downloadprogresspanel = findviewbyid(r.id.download_progress_panel); Les vues contenues dans le layout fils ne seront donc créées que si on en a besoin, ce qui réduit le coût en termes de temps et de ressources lorsque l on désérialise des interfaces utilisateur complexes.

12 112 Android 4 Lorsque vous ajoutez un ViewStub à votre layout, vous pouvez redéfinir les paramètres id et layout de la vue racine du layout qu elle représente : <?xml version= 1.0 encoding= utf-8?> <FrameLayout xmlns:android= android:layout_height= match_parent > <ListView android:layout_height= match_parent <ViewStub android:layout_height= wrap_content android:layout_gravity= bottom </FrameLayout> Cet extrait modifie la largeur, la hauteur et l ancrage du layout importé afin que ces valeurs correspondent aux exigences du layout parent. Cette souplesse permet de créer et de réutiliser le même layout fils générique dans plusieurs layouts parents. Les attributs id et inflatedid indiquent, respectivement, l identifiant du StubView et du groupe de vues qu il deviendra lorsqu il sera désérialisé. Info Lorsque l ébauche de vue est désérialisée, elle est supprimée de la hiérarchie des vues et remplacée par le nœud racine de la vue qu elle importe. Pour modifier la visibilité des vues importées, vous devez soit utiliser la référence à leur nœud racine (renvoyé par l appel à inflate), soit trouver la vue à l aide de findviewbyid, en utilisant l identifiant de layout qui lui est affecté dans le nœud ViewStub correspondant. Utiliser Lint pour analyser les layouts Pour vous aider à optimiser vos hiérarchies de layout, le SDK inclut lint, un outil puissant permettant de détecter les problèmes dans vos applications, notamment ceux concernant les performances des layouts. Cet outil est disponible en ligne de commande ou, comme le montre la Figure 4.1, dans une fenêtre Eclipse puisqu il fait partie du plugin ADT. Outre la détection des problèmes d optimisation décrits dans cette section, lint permet également de repérer les traductions manquantes, les ressources inutilisées, les tailles de tableau incohérentes, les problèmes d accessibilité et d internationalisation, les images dupliquées ou absentes, les problèmes liés à l utilisation et les erreurs du manifeste.

13 Chapitre 4 Créer des interfaces utilisateur 113 Lint est un outil en perpétuelle évolution et de nouvelles règles lui sont ajoutées régulièrement. La liste complète des tests qu il effectue se trouve à l URL Figure 4.1 Exemple de liste de tâches Dans cet exemple, vous allez créer une nouvelle application Android à partir de zéro en utilisant les vues et les layouts fournis par Android. Info Ne vous inquiétez pas si vous ne comprenez pas tout ce qui est décrit dans cet exemple. Certaines fonctionnalités utilisées comme les ArrayAdapters, les ListViews et les KeyListeners ne seront introduites que dans les chapitres suivants, où elles seront expliquées en détail. Vous reviendrez également plus tard à cet exemple pour y ajouter de nouvelles fonctionnalités au fur et à mesure de votre progression. 1. Commencez par créer un nouveau projet Android. Sous Eclipse, sélectionnez File > New > Project, puis choisissez Android Project sous le nœud Android (voir la Figure 4.2) et cliquez sur Next. 2. Entrez les détails de votre nouveau projet. 2.1 Indiquez un nom de projet (voir la Figure 4.3), puis cliquez sur Next. 2.2 Choisissez la cible. Sélectionnez la plateforme la plus récente, comme le montre la Figure 4.4, puis cliquez sur Next. 2.3 Entrez les détails du projet (voir la Figure 4.4). Application name sera le nom visible de votre application et le champ Create Activity vous permettra de nommer votre activité. Une fois ces informations entrées, cliquez sur Finish pour créer votre nouveau projet.

14 114 Android 4 Figure 4.2 Figure 4.3 Figure 4.4

15 Chapitre 4 Créer des interfaces utilisateur 115 Figure Avant de créer vos configurations de débogage et d exécution, créez un appareil virtuel qui vous permettra de tester vos applications : 3.1. Sélectionnez Window > AVD Manager. Dans la boîte de dialogue (voir la Figure 4.6), cliquez sur le bouton New Figure Dans le dialogue qui s ouvre (voir la Figure 4.7), entrez un nom pour votre appareil et choisissez le SDK cible (le même que celui que vous avez choisi pour votre projet à l étape 2.2 et la résolution d écran. Choisissez une taille de carte SD supérieure à 8 Mo, cochez la case snapshot, puis cliquez sur Create AVD.

16 116 Android 4 Figure Créez maintenant vos configurations de débogage et d exécution. Sélectionnez Run > Debug Configurations puis Run > Run Configurations afin d en créer une de chaque pour le projet TodoList et sélectionnez l appareil virtuel que vous avez créé à l étape 3. Vous pouvez également choisir un terminal physique s il est connecté et que le débogage soit activé. Vous pouvez conserver Launch Defaut Activity comme action de lancement ou choisir explicitement de lancer la nouvelle activité ToDoListActivity. 5. Vous devez maintenant décider ce que vous allez montrer aux utilisateurs et quelles actions ils devront effectuer. Concevez une interface qui rende ces actions aussi intuitives que possible. Dans cet exemple, nous voulons présenter aux utilisateurs une liste de tâches et une zone de saisie permettant d en ajouter de nouvelles. Les bibliothèques Android proposent les contrôles liste et zone de saisie pour ce faire (plus loin dans ce chapitre, vous en saurez plus sur les vues disponibles sous Android et sur la façon d en créer de nouvelles). La meilleure méthode pour créer la présentation de notre interface utilisateur est d utiliser un fichier de ressource de layout. Ouvrez le fichier main.xml, situé dans le dossier res/layout du projet et modifiez-le en lui ajoutant une ListView et un EditText dans le LinearLayout. Il est important d attribuer un ID à l EditText et à la ListView afin de pouvoir les référencer dans votre code. <?xml version= 1.0 encoding= utf-8?> <LinearLayout xmlns:android= android:orientation= vertical

17 Chapitre 4 Créer des interfaces utilisateur 117 android:layout_height= match_parent > <EditText android:layout_height= wrap_content <ListView android:layout_height= wrap_content </LinearLayout> 6. Dans le fichier strings.xml du dossier res/values, vous devrez également ajouter les ressources chaînes qui contiennent les messages de l étape 5. Profitez-en pour supprimer la chaîne "hello" qui est présente par défaut : <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">liste de tâches</string> <string name="additemhint">nouvelle tâche</string> <string name="additemcontentdescription">nouvelle tâche</string> </resources> 7. Une fois votre interface utilisateur définie, ouvrez l activité ToDoListActivity dans le dossier src de votre projet. Commencez par désérialiser votre interface utilisateur à l aide de setcontentview puis récupérez les références de ListView et EditText à l aide de findviewbyid. public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); // Désérialisation de la vue. setcontentview(r.layout.main); // Récupération des références aux widgets de l interface. ListView mylistview = (ListView)findViewById(R.id.myListView); final EditText myedittext = (EditText)findViewById(R.id.myEditText); Info Lorsque vous ajouterez le code de l étape 7 dans ToDoListActivity ou lorsque que vous tenterez de compiler votre projet, Eclipse ou le compilateur se plaindront que les classes ListView et EditText ne peuvent pas être résolues comme des types. Vous devez ajouter des instructions d import à votre classe, afin d inclure les bibliothèques qui contiennent ces vues (ici, android.widget.edittext et android.widget.listview). Pour que les codes et les exemples de ce livre restent courts et lisibles, nous n inclurons pas tous ces imports (mais ils sont présents dans les codes sources que vous pouvez télécharger).

18 118 Android 4 Si vous utilisez Eclipse, les classes pour lesquelles il manque des instructions import sont soulignées en rouge. En cliquant sur ces classes, une liste vous proposera d inclure pour vous les instructions d import manquantes. Eclipse propose également un raccourci pratique (Ctrl-Maj-o) qui tentera de créer automatiquement toutes les instructions import pour les classes utilisées dans votre code. 8. Toujours dans la méthode oncreate, définissez une ArrayList de chaînes pour stocker chaque élément de la liste. Vous pouvez lier une ListView à une ArrayList en utilisant un ArrayAdapter. Créez une nouvelle instance d ArrayAdapter pour lier le tableau des items à la ListView. public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); ListView mylistview = (ListView)findViewById(R.id.myListView); final EditText myedittext = (EditText)findViewById(R.id.myEditText); // Création de la liste de tâches final ArrayList<String> todoitems = new ArrayList<String>(); // Création de l array adapter pour lier l ArrayList à la ListView. final ArrayAdapter<String> aa; aa = new ArrayAdapter<String>(this, android.r.layout.simple_list_item_1, todoitems); // Liaison de l ArrayAdapter à la ListView. mylistview.setadapter(aa); 9. La dernière étape pour rendre cette liste fonctionnelle est de permettre aux utilisateurs d y ajouter de nouveaux éléments. Ajoutez à l EditText un onkeylistener, qui sera à l écoute des clics sur un Dpad ou de la touche Entrée. Chacune de ces actions doit ajouter le contenu de l EditText au tableau de la liste et informer l ArrayAdapter des modifications. Enfin, nettoyez l EditText pour le préparer à l élément suivant. public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); ListView mylistview = (ListView)findViewById(R.id.myListView); final EditText myedittext = (EditText)findViewById(R.id.myEditText); final ArrayList<String> todoitems = new ArrayList<String>(); final ArrayAdapter<String> aa; aa = new ArrayAdapter<String>(this, android.r.layout.simple_list_item_1, todoitems); mylistview.setadapter(aa); myedittext.setonkeylistener(new OnKeyListener() { public boolean onkey(view v, int keycode, KeyEvent event) { if (event.getaction() == KeyEvent.ACTION_DOWN) if ((keycode == KeyEvent.KEYCODE_DPAD_CENTER) (keycode == KeyEvent.KEYCODE_ENTER)) {

19 Chapitre 4 Créer des interfaces utilisateur 119 todoitems.add(0, myedittext.gettext().tostring()); aa.notifydatasetchanged (); myedittext.settext(""); return true; return false; ); 10. Exécutez ou déboguez l application et vous verrez apparaître un champ de saisie au-dessus d une liste, comme dans la Figure Vous avez maintenant terminé votre première "vraie" application Android. Ajoutez des points d arrêt au code pour tester le débogueur et essayez la perspective DDMS. Info Tous les extraits de code de cet exemple font partie du projet Chapitre 2 To-do List disponible en téléchargement sur le site de l éditeur, pearson.fr, à la page consacrée à cet ouvrage. Figure 4.8 Telle quelle, cette application n est pas extraordinairement utile. Les entrées de la liste ne sont pas sauvegardées entre les sessions, vous ne pouvez modifier ou supprimer une entrée et les indications classiques d une liste de tâches comme les dates d échéance ou les priorités ne sont ni enregistrées ni affichées. De plus, elle ne respecte presque aucune des règles de conception d une bonne application mobile vues jusqu à présent. Vous corrigerez quelques-uns de ces défauts lorsque vous reviendrez sur cet exemple au cours des chapitres suivants.

20 120 Android 4 Introduction aux fragments Les fragments permettent de diviser vos activités en composants réutilisables, totalement autonomes, chacun avec son propre cycle de vie et sa propre interface utilisateur. Le principal avantage des fragments est la facilité avec laquelle vous pouvez créer des interfaces dynamiques et souples pouvant s adapter à un grand nombre de tailles d écrans des plus petits smartphones aux tablettes. Chaque fragment est un module indépendant qui est intimement lié à l activité dans laquelle il se trouve. Les fragments peuvent être réutilisés dans plusieurs activités, agencés selon un grand nombre de combinaisons pour s adapter aux interfaces multipanneaux des tablettes et ajoutés, supprimés et échangés dans une activité en cours afin de pouvoir construire aisément des interfaces utilisateur dynamiques. Ils permettent de présenter une interface cohérente, optimisée pour un large éventail de types de terminaux, de tailles et de densités d écrans. Bien qu il ne soit pas nécessaire de diviser vos activités (et leurs layouts associés) en fragments, le faire améliore énormément la souplesse de votre interface utilisateur et vous facilitera la tâche lorsqu il s agira de l adapter à de nouvelles configurations de terminaux. Info Les fragments ont été introduits par Android 3.0 Honeycomb (API level 11). Ils font désormais également partie de la bibliothèque support d Android, ce qui permet de les utiliser sur les plateformes à partir d Android 1.6. Pour utiliser les fragments fournis par la bibliothèque support, votre activité doit étendre la classe FragmentActivity : public class MyActivity extends FragmentActivity Si vous utilisez cette bibliothèque dans un projet ayant pour cible une version au moins supérieure à l API level 11, vérifiez bien que tous les imports liés aux fragments et les références de classes n utilisent que les classes de la bibliothèque support. Les fragments de la bibliothèque native et de la bibliothèque support sont étroitement liés, mais leurs classes ne sont pas interchangeables. Créer de nouveaux fragments Pour créer un nouveau fragment, créez une classe fille de la classe Fragment en définissant (éventuellement) l interface utilisateur et en implémentant la fonctionnalité qu elle encapsule. Dans la plupart des cas, vous affecterez une interface à votre fragment. Vous pouvez aussi créer un fragment sans interface, fournissant à la place un comportement

21 Chapitre 4 Créer des interfaces utilisateur 121 d arrière-plan pour une activité nous y reviendrons plus en détail, plus loin dans ce chapitre. Si votre fragment a besoin d une interface utilisateur, redéfinissez la méthode oncreateview pour qu elle désérialise et renvoie la hiérarchie de vues voulue, comme le montre le squelette de code du Listing 4.4. Listing 4.4 : Squelette de création d un fragment package com.paad.fragments; import android.app.fragment; import android.os.bundle; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; public class MySkeletonFragment extends Fragment public View oncreateview(layoutinflater inflater, ViewGroup container, Bundle savedinstancestate) { // Crée ou désérialise, puis renvoie l interface du fragment // Renvoie null si le fragment n a pas d interface. return inflater.inflate(r.layout.my_fragment, container, false); Vous pouvez créer le layout d un fragment directement dans votre code, en vous servant des groupes de vues ; cependant, comme pour les activités, il est préférable de concevoir les layouts des fragments en désérialisant une ressource XML. À la différence des activités, les fragments n ont pas besoin d être enregistrés dans le manifeste car ils ne peuvent exister que s ils sont intégrés dans une activité ; leurs cycles de vie dépendent de celui de l activité à laquelle ils ont été ajoutés. Le cycle de vie des fragments Les événements du cycle de vie d un fragment reflètent ceux de son activité parente. Cependant, lorsque l activité conteneur est dans son état actif ou qu elle a repris, ajouter ou supprimer un fragment affectera son cycle de vie de façon indépendante. Les fragments incluent une série de gestionnaires d événements qui imitent ceux de la classe Activity. Ils sont déclenchés lorsque le fragment est créé, lancé, repris, en pause, arrêté et détruit. Ils contiennent également un certain nombre de fonctions de rappel supplémentaires qui signalent la liaison du fragment à son activité parente et son détachement de celle-ci, la création (et la destruction) de la hiérarchie de vues du fragment et la fin de la création de l activité parente. La Figure 4.9 résume ce cycle de vie.

22 122 Android 4 Créé Visible Actif Fragment.onAttach Fragment.onCreate Fragment.onCreateView Fragment.onActivityCreated Fragment.onStart Fragment.onResume Retour au layout Fragment.onDetach Fragment.onDestroy Fragment.onDestroyView Fragment.onStop Fragment.onPause Figure 4.9 Le squelette de code du Listing 4.5 montre les ébauches des gestionnaires du cycle de vie d un fragment. Dans chaque ébauche, les commentaires décrivent les actions que vous devriez entreprendre à chaque changement d état. Info Vous devez appeler les méthodes de la superclasse lorsque vous redéfinissez la plupart de ces gestionnaires d événements. Listing 4.5 : Gestionnaires d événements du cycle de vie d un fragment package com.paad.fragments; import android.app.activity; import android.app.fragment; import android.os.bundle; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; public class MySkeletonFragment extends Fragment { // Appelée lorsque le fragment est attaché à son activité public void onattach(activity activity) { super.onattach(activity); // Récupération d une référence à l activité parente. // Appelée pour la création initiale du public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); // Initialisation du fragment. // Appelée lorsque le fragment a été créé, afin qu il crée son interface //

23 Chapitre 4 Créer des interfaces utilisateur 123 public View oncreateview(layoutinflater inflater, ViewGroup container, Bundle savedinstancestate) { // Création ou désérialisation, plus renvoi de l interface du fragment // Renvoie null si le fragment n a pas d interface. return inflater.inflate(r.layout.my_fragment, container, false); // Appelée lorsque les interfaces de l activité parente et du fragment // ont été public void onactivitycreated(bundle savedinstancestate) super.onactivitycreated(savedinstancestate); // Terminer l initialisation du fragment notamment tout ce qui // a besoin que l activité parente ait été initialisée ou que // la vue du fragment soit totalement désérialisée. // Appelée au début de l état public void onstart(){ super.onstart(); // Appliquer les modifications d interface nécessaires maintenant // que le fragment est visible. // Appelée au début de l état public void onresume(){ super.onresume(); // Reprendre les mises à jour de l interface, les threads ou les // processus suspendus, requis par le fragment mais suspendus // lorsqu il est devenu inactif. // Appelée à la fin de l état public void onpause(){ // Suspendre les mises à jour de l interface, les threads ou // les processus gourmands en CPU qui n ont pas besoin d être modifés // lorsque l activité n est pas l activité active de premier plan. // Sauvegarder toutes les modifications ou les changements d état, // car le processus risque d être tué après cet appel. super.onpause(); // Appelée pour sauvegarder les changements d état de l interface // à la fin de l état public void onsaveinstancestate(bundle savedinstancestate) { // Sauvegarder les changements d état de l interface dans // savedinstancestate. Ce bundle sera passé à oncreate, oncreateview // et oncreateview si l activité parente est tuée et relancée. super.onsaveinstancestate(savedinstancestate); // Appelée à la fin de l état visible.

24 124 Android public void onstop(){ // Suspendre les mises à jour restantes de l interface, les // threads et les processus qui ne sont pas nécessaires lorsque le // fragment n est pas visible. super.onstop(); // Appelée lorsque la vue du fragment a été public void ondestroyview() { // Nettoyage des ressources liées à la vue. super.ondestroyview(); // Appelée à la fin du cycle de vie public void ondestroy(){ // Nettoyage de toutes les ressources et fin des threads, // fermeture des connexions aux bases de données, etc. super.ondestroy(); // Appelée lorsque le fragment a été détaché de son activité public void ondetach() { super.ondetach(); Événements du cycle de vie spécifiques aux fragments La plupart des événements du cycle de vie des fragments correspondent à leurs équivalents pour la classe Activity, qui ont été présentés en détail au Chapitre 3. Les autres sont spécifiques aux fragments et à la façon dont ils sont insérés dans leur activité parente. Attachement d un fragment à son activité parente et détachement de celle-ci Le cycle de vie complet d un fragment commence lorsqu il est lié à son activité parente et se termine lorsqu il s en détache. Ces événements sont représentés, respectivement, par les appels à onattach et ondetach. Comme tout gestionnaire invoqué après qu un fragment ou une activité passe en pause, il est possible que ondetach ne soit pas appelé si le processus de l activité parente se termine sans finir son cycle de vie complet. L événement onattach est déclenché avant la création de l interface utilisateur du fragment, avant que le fragment lui-même ou son activité parente n aient terminé leur initialisation. Généralement, il sert à obtenir une référence à l activité parente en préparation des futures tâches d initialisation.

25 Chapitre 4 Créer des interfaces utilisateur 125 Création et suppression d un fragment Un fragment est dans l état "créé" entre le premier appel à oncreate et l appel final à ondestroy. Comme il est assez fréquent que le processus d une activité se termine sans appel à la méthode ondestroy correspondante, un fragment ne peut pas se fier au déclenchement de son gestionnaire ondestroy. Comme pour les activités, vous devez utiliser oncreate pour initialiser votre fragment. Il est conseillé d y créer tous les objets ayant la classe pour portée afin de s assurer qu ils ne seront créés qu une seule fois au cours de la vie du fragment. Info À la différence des activités, l interface utilisateur d un fragment n est pas initialisée dans oncreate. Création et suppression des interfaces utilisateur L interface utilisateur d un fragment est initialisée (et supprimée) par, respectivement, un appel à oncreateview et un appel à ondestroyview. Utilisez oncreateview pour initialiser le fragment : désérialisez l interface, récupérez les références aux vues qu elle contient (et liez-leur des données), puis créez les services et timers nécessaires. Renvoyez la hiérarchie de vues une fois qu elle a été désérialisée : return inflater.inflate(r.layout.my_fragment, container, false); Si votre fragment doit interagir avec l interface utilisateur de son activité parente, attendez le déclenchement de l événement onactivitycreated, qui signifie que l activité conteneur a terminé son initialisation et que son interface est totalement construite. États d un fragment Le sort d un fragment est inextricablement lié à celui de l activité à laquelle il appartient. En conséquence, les transitions d état d un fragment sont intimement liées aux transitions d état de l activité correspondante. Comme les activités, les fragments sont actifs lorsqu ils appartiennent à une activité qui a le focus et qui est au premier plan. Lorsqu une activité est mise en pause ou stoppée, les fragments qu elle contient sont également mis en pause et stoppés ; les fragments contenus par une activité inactive sont eux aussi inactifs. Lorsqu une activité est finalement détruite, tous les fragments qu elle contient le sont également. Le gestionnaire mémoire d Android fermant les applications de façon non déterministe lorsqu il a besoin de libérer des ressources, les fragments de ces activités sont également détruits.

26 126 Android 4 Bien que fragments et activités soient fortement liés, l un des avantages d utiliser des fragments pour composer l interface utilisateur de votre application est que vous pouvez ajouter dynamiquement des fragments à une activité active, ou en supprimer. Chaque fragment peut donc progresser plusieurs fois dans son cycle de vie complet, visible et actif, au cours de la vie de son activité parente. Quel que soit le déclencheur d une transition d un fragment au cours de son cycle de vie, il est essentiel de gérer ses transitions d état pour assurer le meilleur confort possible à l utilisateur. On ne devrait ressentir aucune différence lorsqu un fragment passe de l état en pause, stoppé ou inactif à l état actif et il est donc important de sauvegarder l état de l interface et toutes les données lorsqu un fragment est mis en pause ou stoppé. Comme une activité, un fragment doit restaurer cet état sauvegardé lorsqu il redevient actif. Introduction au gestionnaire de fragments Chaque activité contient un gestionnaire de fragments pour gérer les fragments qu elle contient. Vous pouvez y accéder à l aide de la méthode getfragmentmanager : FragmentManager fragmentmanager = getfragmentmanager(); Le gestionnaire de fragments fournit des méthodes pour accéder aux fragments ajoutés à l activité et pour effectuer les transactions permettant d ajouter, supprimer et remplacer des fragments. Ajouter des fragments aux activités Le meilleur moyen d ajouter un fragment à une activité consiste à l inclure dans le layout de l activité à l aide de la balise fragment, comme dans le Listing 4.6. Listing 4.6 : Ajout de fragments à une activité à l aide d un layout XML <?xml version= 1.0 encoding= utf-8?> <LinearLayout xmlns:android= android:orientation= horizontal android:layout_height= match_parent > <fragment android:name= com.paad.weatherstation.mylistfragment android:layout_height= match_parent android:layout_weight= 1 <fragment android:name= com.paad.weatherstation.detailsfragment android:layout_height= match_parent android:layout_weight= 3 </LinearLayout>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Formation. Module WEB 4.1. Support de cours

Formation. Module WEB 4.1. Support de cours Formation Module WEB 4.1 Support de cours Rédacteur Date de rédaction F.CHEA 08/02/2012 Les informations contenues dans ce document pourront faire l'objet de modifications sans préavis Sauf mention contraire,

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

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

Créer et partager des fichiers

Créer et partager des fichiers Créer et partager des fichiers Le rôle Services de fichiers... 246 Les autorisations de fichiers NTFS... 255 Recherche de comptes d utilisateurs et d ordinateurs dans Active Directory... 262 Délégation

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

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

Guide de l utilisateur Mikogo Version Windows

Guide de l utilisateur Mikogo Version Windows Guide de l utilisateur Mikogo Version Windows Table des matières Création d un compte utilisateur 3 Téléchargement et installation 4 Démarrer une session 4 Joindre une session 5 Fonctionnalités 6 Liste

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

EXTENSION de Microsoft Dynamics CRM 2013. Réf FR 80452

EXTENSION de Microsoft Dynamics CRM 2013. Réf FR 80452 EXTENSION de Microsoft Dynamics CRM 2013 Réf FR 80452 Durée : 3 jours A propos de ce cours : Ce cours offre une information interactive et détaillée sur le développement d extensions pour Microsoft Dynamics

Plus en détail

TP redondance DHCP. Gillard Frédéric Page 1/17. Vue d ensemble du basculement DHCP

TP redondance DHCP. Gillard Frédéric Page 1/17. Vue d ensemble du basculement DHCP Vue d ensemble du basculement DHCP Dans Windows Server 2008 R2, il existe deux options à haute disponibilité dans le cadre du déploiement du serveur DHCP. Chacune de ces options est liée à certains défis.

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

Android en action. Abdelkader Lahmadi Université de Lorraine - 2013

Android en action. Abdelkader Lahmadi Université de Lorraine - 2013 Android en action Abdelkader Lahmadi Université de Lorraine - 2013 Plan La boîte à outils JDK SDK Android Eclipse Plugin Android pour Eclipse Architecture et composants La main à la pâte Hello Android

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

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A. ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A. - 1 - PREAMBULE Les conditions générales d utilisation détaillant l ensemble des dispositions applicables

Plus en détail

Préparation à l installation d Active Directory

Préparation à l installation d Active Directory Laboratoire 03 Étape 1 : Installation d Active Directory et du service DNS Noter que vous ne pourrez pas réaliser ce laboratoire sans avoir fait le précédent laboratoire. Avant de commencer, le professeur

Plus en détail

Manuel d utilisation pour la plateforme BeExcellent MANUEL D UTILISATION POUR LA PLATEFORME BEEXCELLENT

Manuel d utilisation pour la plateforme BeExcellent MANUEL D UTILISATION POUR LA PLATEFORME BEEXCELLENT Manuel d utilisation pour la plateforme MANUEL D UTILISATION POUR LA PLATEFORME BEEXCELLENT Manuel d utilisation pour la plateforme 13 14 Manuel d utilisation pour la plateforme Qu est-ce que 1. Qu est-ce

Plus en détail

COURS WINDEV NUMERO 3

COURS WINDEV NUMERO 3 COURS WINDEV NUMERO 3 01/02/2015 Travailler avec un fichier de données Etude du gestionnaire d analyse, Manipulation des tables mémoires, Manipulation de données, Création d états, Pré requis : Cours WinDev

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

Service On Line : Gestion des Incidents

Service On Line : Gestion des Incidents Service On Line : Gestion des Incidents Guide de l utilisateur VCSTIMELESS Support Client Octobre 07 Préface Le document SoL Guide de l utilisateur explique comment utiliser l application SoL implémentée

Plus en détail

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse IFT287 Exploitation de base de données relationnelles et orientées objet Laboratoire Mon premier programme Java en Eclipse Comment faire? Nous allons utiliser l environnement de travail proposé par Eclipse

Plus en détail

Description des pratiques à adopter pour la mise à jour du layout en utilisant le gestionnaire de conception de Sharepoint 2013

Description des pratiques à adopter pour la mise à jour du layout en utilisant le gestionnaire de conception de Sharepoint 2013 Exemple d utilisation du gestionnaire de conception Description des pratiques à adopter pour la mise à jour du layout en utilisant le gestionnaire de conception de Sharepoint 2013 6, rue de l Etang, L-5326

Plus en détail

Windows Internet Name Service (WINS)

Windows Internet Name Service (WINS) Windows Internet Name Service (WINS) WINDOWS INTERNET NAME SERVICE (WINS)...2 1.) Introduction au Service de nom Internet Windows (WINS)...2 1.1) Les Noms NetBIOS...2 1.2) Le processus de résolution WINS...2

Plus en détail

Avant-propos FICHES PRATIQUES EXERCICES DE PRISE EN MAIN CAS PRATIQUES

Avant-propos FICHES PRATIQUES EXERCICES DE PRISE EN MAIN CAS PRATIQUES Avant-propos Conçu par des pédagogues expérimentés, son originalité est d être à la fois un manuel de formation et un manuel de référence complet présentant les bonnes pratiques d utilisation. FICHES PRATIQUES

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

Apprendre Java et C++ avec NetBeans

Apprendre Java et C++ avec NetBeans E Apprendre Java et C++ avec NetBeans Généralités Est-ce le titre d un nouvel ouvrage? Pourquoi pas! NetBeans fait son apparition dans cette édition car un module, permettant d éditer et de compiler du

Plus en détail

Tutoriel. Votre site web en 30 minutes

Tutoriel. Votre site web en 30 minutes Tutoriel Votre site web en 30 minutes But du tutoriel Nous allons vous présenter comment réaliser rapidement votre site avec Web Creator Pro 6 en vous basant sur l utilisation des modèles fournis avec

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

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

Infolettre #18 : Les graphiques avec Excel 2010

Infolettre #18 : Les graphiques avec Excel 2010 Infolettre #18 : Les graphiques avec Excel 2010 Table des matières Introduction... 1 Hourra! Le retour du double-clic... 1 Modifier le graphique... 4 Onglet Création... 4 L onglet Disposition... 7 Onglet

Plus en détail

Installer Joomla. 2013 Pearson France Joomla! Le guide officiel Jennifer Marriott, Elin Waring

Installer Joomla. 2013 Pearson France Joomla! Le guide officiel Jennifer Marriott, Elin Waring 3 Installer Joomla Dans ce chapitre, nous procéderons au téléchargement et à l installation manuelle de Joomla, et nous expliquerons la configuration de base. Les captures d écran et les instructions font

Plus en détail

Création et utilisation de formulaire pdf

Création et utilisation de formulaire pdf Création et utilisation de formulaire pdf Grâce à Adobe Acrobat, il est plus facile de créer, de remplir et d envoyer des formulaires électroniques PDF. Vous pouvez concevoir et créer un formulaire complètement

Plus en détail

A. Structurer le catalogue. v Dans le menu Catalogue, sélectionnez Catégories. 1. Les catégories. Chapitre 6 : Construire le catalogue ...

A. Structurer le catalogue. v Dans le menu Catalogue, sélectionnez Catégories. 1. Les catégories. Chapitre 6 : Construire le catalogue ... Chapitre 6 :. Construire. le catalogue 177 Chapitre 6 : Construire le catalogue PrestaShop 1.5 - Créer un site de e-commerce A. Structurer le catalogue Ne vous précipitez pas pour créer vos produits immédiatement

Plus en détail

BIRT (Business Intelligence and Reporting Tools)

BIRT (Business Intelligence and Reporting Tools) BIRT (Business Intelligence and Reporting Tools) Introduction Cette publication a pour objectif de présenter l outil de reporting BIRT, dans le cadre de l unité de valeur «Data Warehouse et Outils Décisionnels»

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

- 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

Gestion des documents avec ALFRESCO

Gestion des documents avec ALFRESCO Gestion des documents avec ALFRESCO 1 INTRODUCTION : 2 1.1 A quoi sert ALFRESCO? 2 1.2 Comment s en servir? 2 2 Créer d un site collaboratif 3 2.1 Créer le site 3 2.2 Inviter des membres 4 3 Accéder à

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

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

Manuel d utilisation

Manuel d utilisation Manuel d utilisation La référence des comptables-fiscalistes Votre login Votre mot de passe Une question Voyez l aide détaillée accessible en ligne ou les questions les plus fréquemment posées par les

Plus en détail

Guide d utilisation. Version 1.1

Guide d utilisation. Version 1.1 Guide d utilisation Version 1.1 Guide d utilisation Version 1.1 OBJECTIF LUNE Inc. 2030 boulevard Pie-IX, bureau 500 Montréal (QC) Canada H1V 2C8 +1 514-875-5863 sales@ca.objectiflune.com http://captureonthego.objectiflune.com

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Direction générale statistique et information économique. Manuel d usage : l application web pour l enquête sur la structure des entreprises

Direction générale statistique et information économique. Manuel d usage : l application web pour l enquête sur la structure des entreprises Direction générale statistique et information économique Manuel d usage : l application web pour l enquête sur la structure des entreprises Année d enquête 2011 - Version 1.1 26 oktober 2012 1 Table des

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 dans ArtemiS SUITE

La base de données dans ArtemiS SUITE 08/14 Vous préférez passer votre temps à analyser vos données plutôt qu à chercher un fichier? La base de données d ArtemiS SUITE vous permet d administrer et d organiser confortablement vos données et

Plus en détail

Interfaces graphiques avec l API Swing

Interfaces graphiques avec l API Swing Interfaces graphiques avec l API Swing Les Swing Les classes graphiques Swing dérivent de la classe JComponent, qui hérite ellemême de la classe AWT (Abstract Window Toolkit). Tous les composants Swing

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

Access. Apprenez exactement ce dont vous avez besoin Progressez à votre rythme Téléchargez les exercices. Joyce Cox et Joan Lambert

Access. Apprenez exactement ce dont vous avez besoin Progressez à votre rythme Téléchargez les exercices. Joyce Cox et Joan Lambert Access Microsoft 2010 Maîtrisez rapidement Access 2010 avec le livre officiel de Microsoft Press Apprenez exactement ce dont vous avez besoin Progressez à votre rythme Téléchargez les exercices Joyce Cox

Plus en détail

Prise en main rapide

Prise en main rapide Prise en main rapide 4 Dans cette leçon, vous découvrirez les fonctionnalités de création de page web de Dreamweaver et apprendrez à les utiliser dans l espace de travail. Vous apprendrez à : définir un

Plus en détail

Comment insérer une image de fond?

Comment insérer une image de fond? COMMUNICATION VISUELLE Mise en page à l aide d un traitement de texte Comment insérer une image de fond? Image Plein papier ou au Format utile qu est-ce que cela veut dire? La mise en page d un document

Plus en détail

Tenrox. Guide d intégration Tenrox-Salesforce. Janvier 2012. 2012 Tenrox. Tous droits réservés.

Tenrox. Guide d intégration Tenrox-Salesforce. Janvier 2012. 2012 Tenrox. Tous droits réservés. Tenrox Guide d intégration Tenrox-Salesforce Janvier 2012 2012 Tenrox. Tous droits réservés. À propos de ce guide Le présent guide décrit les procédures nécessaires pour configurer les paramètres d intégration

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

Design adaptatif. Guide de l utilisateur VIENNA LONDON MUNICH BERLIN PARIS HONG KONG MOSCOW ISTANBUL BEIJING ZURICH

Design adaptatif. Guide de l utilisateur VIENNA LONDON MUNICH BERLIN PARIS HONG KONG MOSCOW ISTANBUL BEIJING ZURICH Design adaptatif Guide de l utilisateur VIENNA LONDON MUNICH BERLIN PARIS HONG KONG MOSCOW ISTANBUL BEIJING ZURICH Contenu Définition... 3 Avantages... 3 Fonctionnalités... 5 Modèle de Design mobile...

Plus en détail

Introduction aux concepts d ez Publish

Introduction aux concepts d ez Publish Introduction aux concepts d ez Publish Tutoriel rédigé par Bergfrid Skaara. Traduit de l Anglais par Benjamin Lemoine Mercredi 30 Janvier 2008 Sommaire Concepts d ez Publish... 3 Système de Gestion de

Plus en détail

Solutions en ligne Guide de l utilisateur

Solutions en ligne Guide de l utilisateur Solutions en ligne Guide de l utilisateur Décembre 2009 Informations générales... 1 Configuration minimale requise... 1 Connexion... 1 Page d accueil des Solutions en ligne... 2 Utilisation de la table

Plus en détail

Introduction à Expression Web 2

Introduction à Expression Web 2 Introduction à Expression Web 2 Définitions Expression Web 2 est l éditeur HTML de Microsoft qui répond aux standard dew3c. Lorsque vous démarrez le logiciel Expression Web 2, vous avez le choix de créer

Plus en détail

Guide d utilisation. Version 10

Guide d utilisation. Version 10 Guide d utilisation innovaphone mypbx Version 10 Utilisateur Vidéotéléphonie marche/arrêt Renvois d appels Configuration Séléction du terminal Affichage présence Notifications Profil Champ de recherche

Plus en détail

Tsoft et Groupe Eyrolles, 2005, ISBN : 2-212-11623-3

Tsoft et Groupe Eyrolles, 2005, ISBN : 2-212-11623-3 Tsoft et Groupe Eyrolles, 2005, ISBN : 2-212-11623-3 Configuration requise ForestPrep DomainPrep Installation interactive 5 Installation sans surveillance Module 5 : Installation d Exchange Server 2003

Plus en détail

Architectures Mobiles

Architectures Mobiles Architectures Mobiles Tarak Chaari Maître assistant à l ISECS Cours de Mastère de recherche à l ISECS Votre interlocuteur Tarak CHAARI Maître Assistant à l Institut Supérieur d Electronique et de Communication

Plus en détail

Windows Server 2008 R2

Windows Server 2008 R2 Installation de SQL Server 2008 R2 Express Bouron Dimitri 31/01/2015 Ce document sert de démonstration concise pour l installation et quelques bonnes pratiques pour un Windows SQL Server 2008 R2 Express.

Plus en détail

Tune Sweeper Manuel de l'utilisateur

Tune Sweeper Manuel de l'utilisateur Tune Sweeper Manuel de l'utilisateur www.wideanglesoftware.com Table des matières Introduction 2 Démarrage rapide 5 Recherche de doublons 9 Sélection des pistes à conserver 12 Éliminer les doublons 15

Plus en détail

145A, avenue de Port Royal, Bonaventure (Québec) G0C 1E0 Sans frais : 1 888 765 4636 www.solutioninfomedia.com

145A, avenue de Port Royal, Bonaventure (Québec) G0C 1E0 Sans frais : 1 888 765 4636 www.solutioninfomedia.com Guide de l utilisateur CMS 1 Navigation dans le CMS... 2 1.1 Menu principal... 2 1.2 Modules tableau... 3 1.3 Modules formulaire... 5 1.4 Navigation dans le site Web en mode édition... 6 2 Utilisation

Plus en détail

Utiliser Dev-C++ .1Installation de Dev-C++ Table des matières

Utiliser Dev-C++ .1Installation de Dev-C++ Table des matières Utiliser Dev-C++ Voici quelques explications sur l utilisation de Dev-C++, un excellent environnement de développement en C et C++ pour Windows qu on peut télécharger librement depuis le site www.bloodshed.net

Plus en détail

PREMIERE UTILISATION D IS-LOG

PREMIERE UTILISATION D IS-LOG PREMIERE UTILISATION D IS-LOG Is-LOG est un logiciel d identification et d authentification à un ordinateur qui se substitue à la saisie du couple «Login / mot passe» par la présentation au lecteur de

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

Table des matières. Réclamation Guide d apprentissage I. I. Configuration d un dossier de réclamation... 2 A. Assignation d un plan...

Table des matières. Réclamation Guide d apprentissage I. I. Configuration d un dossier de réclamation... 2 A. Assignation d un plan... Réclamation Guide d apprentissage I Table des matières I. Configuration d un dossier de réclamation... 2 A. Assignation d un plan... 2 1. Activer la gestion des réclamations... 2 B. Configuration des plans

Plus en détail

Manuel utilisateur Portail SAP

Manuel utilisateur Portail SAP Manuel utilisateur Portail SAP Procédures demande d achats Manuel Utilisateur SmileySup - Portail SAP v1.0 1/31 1. Table des matières 1. Table des matières... 2 2. Introduction... 3 3. Vue processus...

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

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8 Sage 100 CRM - Guide de la Fusion Avancée Version 8 Mise à jour : 2015 version 8 Composition du progiciel Votre progiciel est composé d un boîtier de rangement comprenant : le cédérom sur lequel est enregistré

Plus en détail

PRISE EN MAIN D ILLUSTRATOR

PRISE EN MAIN D ILLUSTRATOR CHAPITRE 1 PRISE EN MAIN D ILLUSTRATOR Présentation... 13 Contenu du livre... 13 Les nouveautés... 14 Composants de l interface... 15 Afficher les documents... 20 Organiser son espace de travail... 21

Plus en détail

Guide d installation CLX.PayMaker Office (3PC)

Guide d installation CLX.PayMaker Office (3PC) Guide d installation CLX.PayMaker Office (3PC) Sommaire 1. Installation et reprise des données... 2 2. Premiers pas établir une connexion au compte bancaire et recevoir des informations de compte... 4

Plus en détail

Freeway 7. Nouvelles fonctionnalités

Freeway 7. Nouvelles fonctionnalités ! Freeway 7 Nouvelles fonctionnalités À propos de ce guide... 3 Nouvelles fonctionnalités en un coup d'oeil... 3 À propos de la conception d'un site web réactif... 3 Travailler avec les pages pour créer

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

bbc Launch Pad Juillet 2011 Version 10.0

bbc Launch Pad Juillet 2011 Version 10.0 bbc Configuration d Adobe Digital Enterprise Platform Document Services - Launch Pad 10.0 Guide de l administrateur et du développeur Launch Pad Juillet 2011 Version 10.0 Mentions juridiques Pour plus

Plus en détail