Le blog de Bastien

Le blog de Bastien

Stage seconde année, Troisième semaine

17/03

Aujourd'hui débute un nouveau projet, celui d'une application smartphone faite moi même sans utiliser de site en ligne qui ont pré-fait la totalité de l'application.

Après de nombreuses recherches, je trouve un site developpez.com où Jean-Michel DOUDOUX, un développeur nous explique parfaitement de A à Z le langage JAVA. De plus il s'intéresse à divers frameworks ainsi que des API qu'il présente de façon très claires. On accède à ce site avec un lien magique qui apparait quand on clique  ici !

J'en reviens au langage JAVA, notre cher Jean-Michel nous propose une quantité considérable d'informations en 16 chapitres qui contiennent au total plus de 100 parties qui elles-mêmes.

Tout cela pour en venir à la partie technologie mobile qu'il y a dans ce cours. malheureusement, celui-ci est dépassé car le développement est fait pour les anciens téléphones portables qui ne sont plus utilisés ...*

 

Je vais donc basculer sur la programmation Android qui me parait bien plus adéquate à la situation. Sur le même site developpez.com, il y a une multitude de tutoriels ici, et sur androidpit par . J'ai trouvé un autre site qui me semble plus propice à l'apprentissage qui est openclassrooms.

 

 

18/03

 Aujourd'hui, je débute l'apprentissage du langage Android. Je vais tenter de faire en même temps l'application lié à mon stage pour réussir à faire quelque chose de constructif.

On commence avec un historique de Android :

Quand on pense à Android, on pense immédiatement à Google, et pourtant il faut savoir que cette multinationale n'est pas à l'initiative du projet. D'ailleurs, elle n'est même pas la seule à contribuer à plein temps à son évolution. À l'origine, « Android » était le nom d'une PME américaine, créée en 2003 puis rachetée par Google en 2005, qui avait la ferme intention de s'introduire sur le marché des produits mobiles. La gageure, derrière Android, était de développer un système d'exploitation mobile plus intelligent, qui ne se contenterait pas uniquement de permettre d’envoyer des SMS et transmettre des appels, mais qui devait permettre à l'utilisateur d'interagir avec son environnement (notamment avec son emplacement géographique). C'est pourquoi, contrairement à une croyance populaire, il n'est pas possible de dire qu'Android est une réponse de Google à l'iPhone d'Apple, puisque l'existence de ce dernier n'a été révélée que deux années plus tard.

C'est en 2007 que la situation prit une autre tournure. À cette époque, chaque constructeur équipait son téléphone d'un système d'exploitation propriétaire. Chaque téléphone avait ainsi un système plus ou moins différent. Ce système entravait la possibilité de développer facilement des applications qui s'adapteraient à tous les téléphones, puisque la base était complètement différente. Un développeur était plutôt spécialisé dans un système particulier et il devait se contenter de langages de bas niveaux comme le C ou le C++. De plus, les constructeurs faisaient en sorte de livrer des bibliothèques de développement très réduites de manière à dissimuler leurs secrets de fabrication. En janvier 2007, Apple dévoilait l'iPhone, un téléphone tout simplement révolutionnaire pour l'époque. L'annonce est un désastre pour les autres constructeurs, qui doivent s'aligner sur cette nouvelle concurrence. Le problème étant que pour atteindre le niveau d'iOS (iPhone OS), il aurait fallu des années de recherche et développement à chaque constructeur...

C'est pourquoi est créée en novembre de l'année 2007 l'Open Handset Alliance (que j'appellerai désormais par son sigle OHA), et qui comptait à sa création 35 entreprises évoluant dans l'univers du mobile, dont Google. Cette alliance a pour but de développer un système open source (c'est-à-dire dont les sources sont disponibles librement sur internet) pour l'exploitation sur mobile et ainsi concurrencer les systèmes propriétaires, par exemple Windows Mobile et iOS. Cette alliance a pour logiciel vedette Android, mais il ne s'agit pas de sa seule activité.

L'OHA compte à l'heure actuelle 80 membres.

 

Nous avons aussi de la chance, ayant fait du Java, il sera utile d'en connaitre les bases en grande partie. On va utiliser les variables, les primitives, les objets, les héritages.

 

Nous passons à une étape importante : l'installation et la configuration des outils.

Notre ordinateur aura besoin de 800Mo pour installer tous les outils Android dont nous aurons besoin pour développer. Il nous faut aussi une version de Windows supérieure à Windows XP 32 bits et non 64 car on ne pourrait développer.

Ayant déjà développé en Java, nous avons déjà installé le JDK (Java Development Kit).

On peut rappeller la différence qu'il y a encore les 2 plateformes existantes en Java :

  • Le JRE (Java Runtime Environment), qui contient la JVM (Java Virtual Machine, les bibliothèques de base du langage ainsi que tous les composants nécessaires au lancement d'applications ou d'applets Java. En gros, c'est l'ensemble d'outils qui nous permettrons d’exécuter des applications Java.

  • Le JDK (Java Development Kit), qui contient le JRE (afin d’exécuter les applications Java), mais aussi un ensemble d'outils pour compiler et déboguer notre code !

 

On passe maintenant au plus important pour nous, le téléchargement et l'installation du SDK Android. On le télécharge ici, il faut cliquer sur "Use an existing IDE" puis sur "Download the SDK Tools". Au lancement de celui-ci, une page va s'afficher telle quelle. L'Android SDK Manager va nous permettre de choisir les paquets à télécharger.

sdkmanager.png

 

 

Un IDE est un logiciel dont l'objectif est de faciliter le développement, généralement pour un ensemble restreint de langages. Il contient un certain nombre d'outils, dont au moins un éditeur de texte - souvent étendu pour avoir des fonctionnalités avancées telles que l'auto-complétion ou la génération automatique de code - des outils de compilation et un débogueur. Dans le cas du développement Android, un IDE est très pratique pour ceux qui souhaitent ne pas avoir à utiliser les lignes de commande.

On va télécharger le plug-in (l'extension) Android Development Tools (ADT). Il nous aidera à créer des projets pour Android avec les fichiers de base, mais aussi à tester, à déboguer et à exporter notre projet au format APK (pour pouvoir publier nos applications). Pour cela, il faut aller dans Help, puis dans Install New Softwares... La première case nommée Work with: on clique sur le bouton Add... Pour le Name, on peut par exemple écrire ADT et dans Location il faut mettre l'adresse suivante : https://dl-ssl.google.com/android/eclipse/ 

 installadt.png

 

Dès que les éléments sont téléchargés, on nous propose de cocher les fichiers disponibles. Nous allons choisir d'agrandir le fichier Developer Tools grâce au triangle. Nous allons cocher ici les 4 premiers fichiers que je vais expliquer plus en détails :

  • Android DDMS est l'Android Dalvik Debug Monitor Server, il permet d’exécuter quelques fonctions pour nous aider à déboguer notre application (simuler un appel ou une position géographique par exemple) et d'avoir accès à d'autres informations utiles.

  • L'ADT.

  • Android Hierarchy Viewer, qui permet d'optimiser et de déboguer son interface graphique.

  • Android Traceview, qui permet d'optimiser et de déboguer son application.

 

On finit d'accepter les divers éléments avec Next, puis on clique sur "I accept the terms of the license agreements" et Finish. De là, l'ordinateur téléchargera et installera les composants. Une fenêtre va nous afficher un message comme quoi l'ordinateur ne sait pas si ces programmes sont sûrs ou non. D'après les sources de téléchargements, on peut-être sur de leur fiabilité.

 

Pour développer sous Android, et sans avoir sous la main un appareil Android on va devoir utiliser un émulateur appelé ici Android Virtual Device (AVD). L'émulateur va faire croire à l'ordinateur qu'il est un appareil sous Android. Si Eclipse était ouvert durant le téléchargement des composants, celui-ci va se fermer pour ensuite se réouvrir en intégrant les nouveaux composants. On y verra deux nouvelles icônes : SDK et AVD.

La barre d'outils d'Eclipse

barreoutils.png

 

Les deux icônes réservées au SDK et à l'AVD

sdkavdicones.png

 

 

19/03

Aujourd'hui, on va enfin créer notre premier projet Android ! Oui enfin car il y a eu quelques complications dans les téléchargements et les icônes de SDK et AVD apparaissent comme par magie. Bref ... Avant de se lancer dans le projet, je vais vous parler de Android Studio qui est une alternative à Eclipse et son ADT. Une explication claire et simple est disponible sur ce site.

 

Passons au plus important, le projet, notre tout premier à vrai dire. Cliquez sur l'icône AVD afin d'en créer une. J'ai choisi selon des aides pour ne pas m'embrouiller dès le début. On peut donc prendre comme je l'ai fais.

createnewandroidvirtualdevice.png

 

L'émulateur créé, on atterrit sur une page avec divers éléments dès qu'on clique sur notre AVD :

  • Edit... permet de changer les caractéristiques de l'AVD sélectionné.

  • Delete... permet de supprimer l'AVD sélectionné.

  • Repair... ne sera peut-être jamais d'aucune utilité, il permet de réparer un AVD quand le gestionnaire indique qu'il faut le faire.

  • Details... lancera une nouvelle fenêtre qui listera les caractéristiques de l'AVD sélectionné.

  • Start... est le bouton qui nous intéresse maintenant, il permet de lancer l'AVD.

listeemul.png

 

Nous allons donc cliquer sur Start... Puis sur Lauch dans la nouvelle fenêtre qui s'ouvrira. On laisse tout tel quel pour le moment. L'émulateur se met en action, le téléphone simulé se met en marche, pas besoin de vous expliquer le fonctionnement des boutons, ils sont assez facile à comprendre. On remarque tout de suite que l'heure n'est pas correcte et que la langue non plus. En effet, nous sommes sur un émulateur, il prend la langue par défaut ainsi que pour la date. Nous avons l'habitude que les téléphones soient configurés par rapport à leur pays de mise en commercialisation.

Pour résoudre cette terrible affaire ... Rien de plus simple : Il faut aller dans le "menu", puis "Setting", une multitude d'options vont s'afficher. Pas de panique si cela met un peu de temps à s'afficher, nous sommes sur un émulateur, il se peut qu'il soit lent. Il suffit avec la souris de faire le même geste qu'avec un doigt pour descendre tout en bas de la liste. On peut commencer par "Language & Keyboard".

languagekeyboard.png

 

On choisit de cliquer sur "Select locale" puis la langue dans laquelle on va vouloir utiliser l'appareil. On retourne ensuite en arrière pour retourner dans les options principales pour choisir la date et l'heure. Il faut décocher le format automatique et choisir un fuseau horaire.

 

Il nous reste plus qu'à faire une seule chose avant le lancement du développement de notre première application. Toujours dans le menu de configuration, il nous faut aller dans "Applications" puis sur "Développement". Il faut que tout soit activé comme ci-dessous.

developpement.png

 

Nous allons voir pour commencer notre projet, ce qu'est une activité. Une activité est l'architecture d'une application, on remarque que les applications sont similaires entre elles dans leurs constructions. On prend une application au hasard, quand on clique dessus, une fenêtre s'ouvre, puis encore une autre si on clique dans cette même fenêtre etc ... On remarque qu'une application est un assemblage de fenêtres entre lesquelles il est possible de naviguer.

Ces fenêtres sont appelées des activités. Une activité remplie l'écran entier, il ne peut y en avoir qu'une seule à la fois. On peut affecter à une activité une interface graphique pour que l'utilisateur puisse interagir avec celle-ci. Si une activité contient des informations sur l'état actuel de l'application, ces informations s'appellent le "context".

On peut lancer 2 activités à la fois si elles ne se bloquent pas l'une avec l'autre comme par exemple une activité utilisant uniquement le fond sonore pendant qu'une autre utilise l'interface graphique :

  • La navigation sur internet, permise par une interface graphique (la barre d'adresse et le contenu de la page web, au moins) ;

  • La musique, qui est diffusée en fond sonore, mais qui n'affiche pas d'interface graphique à l'heure actuelle puisque l'utilisateur consulte le navigateur.

 

On peut parler d'états d'une activité selon l'importance que celle-ci a :

  • À tout moment votre application peut laisser place à une autre application, qui a une priorité plus élevée. Si votre application utilise trop de ressources système, alors elle empêchera le système de fonctionner correctement et Android l'arrêtera sans vergogne.

  • Votre activité existera dans plusieurs états au cours de sa vie, par exemple un état actif pendant lequel l'utilisateur l'exploite, et un état de pause quand l'utilisateur reçoit un appel.

On peut aussi expliquer que les activités se rangent par piles. Quand on est sur une activité et qu'une autre est lancée, celle qu'on utilise se met en haut de la pile. Si on relance une autre activité, c'est aussi elle qui sera en haut de la pile pendant que la précédente sera en seconde. Si on veut retourner à une activité moins récente, il faut fermer toutes les autres activités.

 L'activité que l'on voit sur notre téléphone est celle au dessus de la pile, on peut retrouver la règle qui dit qu'il ne peut y avoir qu'une seule activité en vue.

 

Mais une activité peut avoir 3 états qui se différencient par leur visibilité :

  • Active (active ou running) : L'activité est visible en totalité, elle se trouve au dessus de la pile, l'utilisateur la consulte en ce moment. Elle a ce qu'on appelle le "focus".
  • Suspendue (paused) : L'activité est partiellement visible à l'écran, exemple d'un SMS reçu avec une fenêtre semi-transparente. L'application principale n'a plus le focus, pour que l'application puisse retrouver ce focus, il faudra se débarrasser de l'application qui l'obstrue.
  • Arrêtée (stopped) : L'activité est tout simplement oblitérée par une autre activité, on ne peut plus la voir du tout. Elle n'a plus le focus, l'utilisateur ne la voit pu, le système retient son état pour la reprendre plus tard mais cela n'empêche pas qu'elle puisse être tuée pour libérer de la mémoire système.

On va maintenant parler du cycle de vie d'une activité, qui nous montre une activité en vie jusqu'à sa mort en y ajoutant des "méthodes" qui l'on verra plus précisément un peu plus tard.

Les "vues" sont des composants qui vont venir se greffer sur l'échafaudage que l'on est en train de faire. Il s'agit de l'unité de base de l'interface graphique. Leur rôle est de fournir du contenu visuel avec lequel il est possible d'interagir. Les vues héritent de la classe View. On les retrouve dans le package android.view.View.

 

 

20/03

Nous allons commencer notre premier projet. Pour ce faire, il faut aller dans Eclipse => File => New => Project... => Android => Android Application Project (par la suite, en ayant fait le chemin une fois, il se retrouvera en raccourcie à partir de l'étape "New".

Il va nous falloir renseigner ces champs, d'abord choisir un nom à l'application. Ce nom sera celui affiché sur l'appareil ainsi que sur Google Play pour nos futures applications, il faut donc trouver un nom accrocheur pour attirer les curieux.

Le Project Name est le nom de notre projet pour Eclipse, il n'a pas d'influence particulière pour l'application, ce sera juste sous ce nom qu'Eclipse reconnaitra l'appli.

Le Package Name est très important, il va agir comme identifiant de l'application sur le marché des applis.

newandroidapp.png

 

Passons aux listes déroulantes. La première "Minimum Required SDK" permet de définir à partir de quelle version d'Android notre application sera visible sur le marché des applications. La seconde va nous permettre de choisir quelle version du SDK on veut compiler notre application. Pour commencer, on va prendre la 7 en suivant le tutoriel afin d'apprendre plus facilement le langage Android. La troisième nous demande avec quelle API on veut compiler notre application, on choisit la 7. On passe à l'étape suivante.

Cette nouvelle étape permet de créer l'icône qui sera vu de tous sur le PlayStore. Il faut donc être attentif à ce que l'on va mettre. Je vous laisse découvrir ce que l'on peut faire et choisir avec les icônes. Quand on est satisfait du résultat, on passe à l'étape qui suit.

https://static.blog4ever.com/2013/05/740548/artfichier_740548_3579889_201403251037460.png

configurelaunchericon2.png

Cette étape, on peut choisir la mise en page, on prend BlanckActivity basique.

Ici encore une fois, on fait face à cinq champs à renseigner :

  • Activity Name permet d'indiquer le nom de la classe Java qui contiendra votre activité, ce champ doit donc respecter la syntaxe Java standard.

  • Le champ suivant, Layout Name renseignera sur le nom du fichier qui contiendra l'interface graphique qui correspondra à cette activité.

  • En ce qui concerne Navigation Type, son contenu est trop complexe pour être analysé maintenant. Il permet de définir facilement comment s'effectueront les transitions entre plusieurs activités.

 

Cela fait, on se retrouve sur la grande page d'Eclipse avec un nombre de choses ... Incalculable qui sont apparues ! ;)

resultatdebutprojet.png

 

On a aussi la classe MainActivity, on peut la regarder afin de découvrir de quoi elle est faite. Les @Override permettent d'indiquer que l'on va redéfinir une méthode qui existait auparavant, car une activité a une méthode void onCreate() qui héritait de Activity.

On va modifier cette class afin de faire un test. On ajoute ceci :

public class MainActivity extends ActionBarActivity{

 private TextView coucou = null;

Ainsi que :

coucou = new TextView(this);

coucou.setText("Bonjour, ceci est un test");

setContentView(coucou);

 

Le fait d'ajouter un TextView permet d'afficher un texte sur l'activité. La méthode  void setContentView (View vue) permet d'indiquer l'interface graphique de notre activité.

On sauvegarde puis on Run. Ca lance une fenêtre qui nous demande ce que l'on veut runner. On sélectionne bien évidemment Android Application.

runas.png

 

 

 

 

 

21/03

Continuité de l'application, j'ai dû faire face à de nombreux problèmes de compatibilités liés aux versions antérieures et supérieures de l'API d'Android. Il a fallu télécharger les autres versions API ce qui a prit un temps considérable.



18/03/2014
0 Poster un commentaire

A découvrir aussi


Ces blogs de Informatique & Internet pourraient vous intéresser

Inscrivez-vous au blog

Soyez prévenu par email des prochaines mises à jour