Vous êtes sur la page 1sur 11

 

Institut  Supérieur  d’Informatique  


Université  de  Tunis  el  Manar  

Chapitre  1  :  Initiation  à  la  


Programmation  Mobile,  Java  et  
Eclipse  
Programmation  Mobile  –  2ème  Licence  –  Systèmes  Embarqués  

Année  Universitaire  :  2011/2012  


 

   

MME.  LILIA  SFAXI  


 

 
Chapitre  1  :  Initiation  à  la  Programmation  Mobile,  Java  et  Eclipse   1    

Chapitre  1  :  Initiation  à  la  Programmation  


Mobile,  Java  et  Eclipse  
Programmation  Mobile  

I. Programmation  Mobile  
Appareils  Mobiles  :  
-­‐‑ deviennent  de  plus  en  plus  petits  
-­‐‑ deviennent  de  plus  en  plus  intelligents  
-­‐‑ les  OS  et  les  appareils  se  multiplient  
 Plusieurs  moyens  de  développer  des  applications  mobiles  :  
1. Développement  de  sites  web  mobiles  
• Indépendants  du  site  traditionnel  
• Exploitant  les  données  ou  le  CMS  du  site  traditionnel  
2. Développement  d’applications  natives  sur  les  différents  OS  
• iOS  
• Blackberry  OS  
• Android  
• Windows  Phone  7  
3. Développement   d’applications   en   HTML5   pour   les   différents   systèmes   d’exploitation   basés   sur  
Webkit  
 Plusieurs  fonctionnalités  sont  populaires  sur  les  plateformes  mobiles  
1. Géo-­‐‑localisation  de  l’utilisateur    
2. Partage  d’information  avec  les  utilisateurs  à  proximité  
3. Intégration  avec  les  plateformes  sociales  
4. Reconnaissance  des  images  prises  avec  la  caméra  
 Il  faut  prendre  en  considération  plusieurs  critères  pendant  le  développement  :    
1. Un  écran  très  petit  
2. Pas  de  clavier/souris  (du  moins,  un  clavier  virtuel  assez  difficile  à  manipuler)  
3. Taille  de  stockage  souvent  réduite  
4. Fonctionne  sur  batterie  (attention  à  la  consommation  !)  
 Le  marché  des  mobiles  :  

Le  nombre  d'ʹutilisateur  de  mobiles  évolués,  faisant  tourner  des  applications  réalisées  par  de  tierces  parties,  est  
déjà  plus  important  que  le  nombre  d'ʹordinateurs  de  bureau.  Il  est  donc  évident  qu'ʹun  programmeur  doit  maintenant  
privilégier  ce  marché.  

MME.  LILIA  SFAXI                  2011/2012  


Chapitre  1  :  Initiation  à  la  Programmation  Mobile,  Java  et  Eclipse   2    

 
Il  ne  faut  pas  compter  sur  la  compatibilité  avec  les  systèmes  de  bureau  (même  si  des  émulateurs  sont  fournis  
pour  developper  sous  Windows,  Mac,  Linux).  Les  interfaces,  les  écrans  sont  différents  et  à  moins  qu'ʹon  ne  se  limite  
aux  applications  dans  le  navigateur,  il  faut  repenser  l'ʹapplication,  et  prévoir  d'ʹutiliser  des  APIs  différentes.  

 Parts  de  marché  :  

 Systèmes  d’exploitation  Mobiles  

OS   Téléphone/Société   Langage   Remarques  


iOS   iPhone   C  /  Objective  C  ou  HTML   Outil  de  développement  :  Cocoa  
Framework  :  UIKit  
Android   Google   Java   Portable,  open  source,  gratuit  
Plugin  Eclipse  (ADT)  
NDK  (Native  DK)  :  ajouter  du  code  natif  en  C  
Tizen   Intel/Samsung   HTML5  /  Linux    
Windows  Mobile   Windows  Phone   C#  /  C++   Applications   tournent   sur   une   version   allégée  
de  .Net  
Blackberry  OS   Blackberry  /  RIM   Java  /  SDK  pour  le  web    
WebOS   Palm  puis  HP   HTML5/Javascript/CSS   (bientôt  abandonné)  
C/C++  
Symbian   Nokia   C++   /   J2ME   /   Python/   (bientôt  abandonné,  progressivement  remplacé  
Ruby  /  Flash  /  HTML5   par  Windows  7)  
 
 Les  outils  de  développement  portables  

-­‐‑   Titanium  :   Interface   de   developpement   pour   Android   ou   les   applications   locales.   Il   dispose   de   son   propre  
SDK,  interface  aux  APIs  du  système,  qui  facilite  le  port  d'ʹune  plateforme  à  l'ʹautre.  

MME.  LILIA  SFAXI                  2011/2012  


Chapitre  1  :  Initiation  à  la  Programmation  Mobile,  Java  et  Eclipse   3    

 
-­‐‑   Unity3D  :   Unity   est   une   plateforme   de   développement   et   Unity3D   une   version   spécialisée   pour   les   jeux.  
L'ʹAPI   peut   être   programmée   en   JavaScript   ou   C#.  Ces   langages   sont   compilés   en   langage   natif   (ARM)   pour   les  
mobiles.    Les  mêmes  applications  peuvent  fonctionner  sur  un  navigateur  grâce  à  un  plugin.  Elles  fonctionnent  aussi  
sur  Windows  et  Mac,  sur  .NET.  

-­‐‑  MonoTouch  :  Produit  par  Novell,  c'ʹest  une  version  pour  iPhone  et  iPad  du  framework  Mono.  Les  applications  
écrites  en  C#  sont  compilées  et  liées  à  l'ʹAPI  du  mobile  ou  la  tablette.  Elles  ne  seront  pas  distribuées  sur  l'ʹApp  Store.  

 La  plateforme  universelle:  HTML  5  

HTML   5   reste   la   plateforme   universelle,   fonctionnant   sur   tous   les   mobiles   sans   aucune   adaptation   du   code  
mais  avec  des  limitations.  Nokia  propose  un  outil  de  développement  pour  des  applications  portables  sans  code  natif.  

II. Environnement  de  Développement  :  Eclipse  


Eclipse  est  un  environnement  de  développement  intégré  libre  extensible,  universel  et  polyvalent,  permettant  

de  créer  des  projets  de  développement  mettant  en  œuvre  n'ʹimporte  quel  langage  de  programmation.  Eclipse  IDE  est  

principalement   écrit   en   Java   (à   l'ʹaide   de   la   bibliothèque   graphique   SWT,   d'ʹIBM),   et   ce   langage,   grâce   à   des  

bibliothèques  spécifiques,  est  également  utilisé  pour  écrire  des  extensions.  

La   spécificité   d'ʹEclipse   IDE   (Integrated   Development   Environement)   vient   du   fait   de   son   architecture  

totalement  développée  autour  de  la  notion  de  plugin  (en  conformité  avec  la  norme  OSGi)  :  toutes  les  fonctionnalités  

de  cet  atelier  logiciel  sont  développées  en  tant  que  plug-­‐‑in.  

Plusieurs  logiciels  commerciaux  sont  basés  sur  ce  logiciel  libre,  comme  par  exemple  IBM  Lotus  Notes  8,  IBM  

Symphony  ou  WebSphere  Studio  Application  Developer.  

III. Initiation  à  Java  


Le   langage   Java   est   un   langage   de   programmation   informatique   orienté   objet   créé   par   James   Gosling   et  
Patrick  Naughton,  employés  de  Sun  Microsystems,  avec  le  soutien  de  Bill  Joy  (cofondateur  de  Sun  Microsystems  en  
1982),  présenté  officiellement  le  23  mai  1995  au  SunWorld.    

Pour  un  cours  ciblé  pour  Android  :  http://mobile.tutsplus.com/series/learn-­‐‑java-­‐‑android-­‐‑development/  

III.  1. Cas  d’étude  :  Gestion  des  cours  

Nous  allons  dans  cette  partie  vous  initier  aux  concepts  en  base  de  Java  en  réalisant  une  petite  application  de  
gestion   des   cours.   Cette   application   permet   de   gérer   l’affectation   des   étudiants   et   enseignants   à   une   ou   plusieurs  
matières.    

MME.  LILIA  SFAXI                  2011/2012  


Chapitre  1  :  Initiation  à  la  Programmation  Mobile,  Java  et  Eclipse   4    

TAF-­‐‑1  :   Pour  commencer,  créer  un  projet  qui  s’appelle  GestionCours  sur  Eclipse.  Dans  le  répertoire  src,  créer  
un   package   appelé   cours   et   un   package   appelé   main.   Dans   le   package   main,   créer   une   classe   Main   contenant   une  
méthode  main  qu’on  laissera  vide  pour  l’instant.    

III.  2. Classes  et  objets  

Une  classe  représente  la  description  informatique  des  caractéristiques  d'ʹun  objet  abstrait  (destiné  à  modéliser  
un   objet   réel).   Elle   décrit   les   constituantes   élémentaires   de   l'ʹobjet   ainsi   que   les   opérations   (méthodes)   pouvant  
s'ʹappliquer  à  cet  objet.  

class Vehicule { Une  classe  Vehicule  sauvegardée  dans  un  fichier  Vehicule.java  
int age ;
float taille ;
Quatre  "ʺattributs"ʺ  :  age,  taille,  poids  et  moteur  
float poids ;
boolean moteur ;
Une  "ʺméthode"ʺ  :  getWeight  retourne  le  poids  d'ʹun  véhicule  
int getWeight() {
return(poids) ;
}
}

Un   objet   est   une   instance   d'ʹune   classe.   Il   est   généré   à   partir   d'ʹune   classe   et   stocké   dans   une   variable.   Pour  
créer  un  nouvel  objet,  l’opérateur  new  est  utilisé  :    

Vehicule v = new Vehicule() ;

Conventions  de  nommage:  

1. Une  classe  commence  toujours  par  une  majuscule,  tous  les  autres  identifiants  commencent  en  minuscule  
(les  objets,  les  méthodes,  les  types  primitifs,  les  variables…)  
2. Si   un   identifiant   est   composé   de   plusieurs   mots,   ces   mots   sont   collés   l’un   à   la   suite   de   l’autre   avec   une  
majuscule  pour  chaque  début  de  mot,  mais  en  respectant  la  convention  1.  Par  exemple,  pour  une  classe  :  
NomDeClasse,  et  pour  un  objet  nomDeLObjet.  

Un   constructeur   est   une   méthode   spécifique   appelée   automatiquement   lors   de   l'ʹinstanciation   d'ʹun   objet.   Le  
constructeur  a  les  particularités  suivantes  :    

1. C’est  la  seule  méthode  qui  porte  le  nom  de  la  classe  
2. C’est  la  seule  méthode  qui  ne  contient  pas  de  type  de  retour  (même  pas  void)  
3. C’est  la  seule  méthode  dont  le  nom  commence  par  une  majuscule  (puisque  c’est  le  nom  de  la  classe)  

MME.  LILIA  SFAXI                  2011/2012  


Chapitre  1  :  Initiation  à  la  Programmation  Mobile,  Java  et  Eclipse   5    

class Vehicule {
int age ;
float taille ;
float poids ;
boolean moteur ;

Vehicule() {
age = 0 ;
taille = 0.0 ;
poids = 0.0 ;
moteur = false ;
}

int getWeight() {
return(poids) ;
}
}

Il   est   possible   de   définir   un   ou   plusieurs   constructeurs   avec   paramètres   en   plus   du   constructeur   par   défaut  
(sans  paramètres)  

class Vehicule {
int age ;
float taille ;
float poids ;
boolean moteur ;

Vehicule(int a, float t, float p, boolean m) {


age = a ;
taille = t ;
poids = p ;
moteur = m ;
}
...
}

(méthode main)
...
Vehicule v = new Vehicule(2,4.6,1.5,true) ;
...

MME.  LILIA  SFAXI                  2011/2012  


Chapitre  1  :  Initiation  à  la  Programmation  Mobile,  Java  et  Eclipse   6    

TAF-­‐‑2  :   Sous   le   package   cours,   créer   une   classe   Etudiant,   une   classe   Enseignant   et   une   classe   Matiere,   qui  
respectent   le   diagramme   de   classes   suivant  (pour   l’instant,   seuls   les   constructeurs   sont   à   implémenter.   Les   autres  
méthodes  restent  vides).    

III.  3. Encapsulation  

Il  est  possible  de  limiter  la  visibilité  des  attributs  et  méthodes  définies  à  l'ʹintérieure  des  classes.  

 public  :  pas  de  limitation  


 protected  :  visible  depuis  l'ʹintérieur  de  la  classe  et  depuis  classes  qui  en  héritent  
 private  :  visible  uniquement  depuis  intérieur  de  la  classe  

public class Vehicule {


public float age ;
protected float taille ;
private int poids ;
private boolean moteur ;

public Vehicule() {
age = 1.0F ;
taille = 1.0F ;
poids = 1 ;
moteur = false ;
}

public int getWeight() {


return(poids) ;
}
}

La   déclaration   public   des   classes   elles-­‐‑mêmes   répond   à   un   impératif   de   sécurité,   par   une   déclaration   public  
elles  seront  rendues  accessibles  aux  autres  classes.  

TAF-­‐‑3  :   Ajouter   les   modificateurs   de   visibilité   aux   classes   que   vous   avez   créé   de   manière   à   ce   que   les  
méthodes  soient  visibles  par  tout  le  monde  et  les  attributs  privés.    

MME.  LILIA  SFAXI                  2011/2012  


Chapitre  1  :  Initiation  à  la  Programmation  Mobile,  Java  et  Eclipse   7    

III.  4. Héritage  

Il  est  possible  de  décrire  une  nouvelle  classe  en  la  faisant  hériter  (dériver)  d'ʹune  autre  classe.  Cela  implique  
que  les  attributs  et  méthodes  sont  hérités  de  la  classe  mère  (superclasse)  et  des  superclasses  de  celle-­‐‑ci  jusqu’à  arriver  
à  la  classe  Object,  dont  héritent  implicitement  toutes  les  classes.  

public class Voiture extends Vehicule {


public int places ;

public Voiture() {
moteur = true ;
places = 4 ;
}
}

Important  :  En  Java,  il  est  impossible  pour  une  classe  d’hériter  de  plusieurs  classes.  

TAF-­‐‑4  :   Ajouter   une   classe   Personne   dont   héritent   les   classes   Etudiant   et   Enseignant,   comme   défini   dans   le  
diagramme   suivant.   Modifier   les   constructeurs   des   classes   filles   pour   qu’ils   prennent   en   considération   celui   de   sa  
classe  mère.  

III.  5. Association  

Deux   classes   sont   en   association   lorsque   certains   de   leurs   objets   ont   besoin   s'ʹenvoyer   des   messages   pour  
réaliser  un  traitement.  En  Java,  une  association  est  représentée  par  l’ajout  une  référence  d’une  classe  comme  attribut  
dans  l’autre.    

MME.  LILIA  SFAXI                  2011/2012  


Chapitre  1  :  Initiation  à  la  Programmation  Mobile,  Java  et  Eclipse   8    

public class Vehicule {


public float age ;
protected float taille ;
private int poids ;
private boolean moteur ;

private Personne proprietaire ;

public Vehicule() {
age = 1.0F ;
taille = 1.0F ;
poids = 1 ;
moteur = false ;
}

public int getWeight() {


return(poids) ;
}
}

Ainsi,  dans  l’exemple  suivant,  une  association  est  réalisée  entre  un  objet  de  type  Voiture  et  un  objet  de  type  
Personne.  Chaque  voiture  a  maintenant  une  instance  de  Personne  qui  en  est  le  propriétaire.    

Si   une   association   est   n-­‐‑aire,   on   utilise   les   tableaux.     Par   exemple,   une   voiture   contient   en   général   5   roues.  
L’agrégation  (qui  est  une  association  particulière)  avec  la  classe  Roue  se  fait  de  la  manière  suivante  :  

public class Voiture extends Vehicule {


public int places ;
private Roue[] roues ;

public Voiture() {
moteur = true ;
places = 4 ;
}
}

Un  tableau  d’objets  doit  toujours  être  initialisé  avant  d’être  utilisé.    

Roue[] roues = new Roue[5] ; Roue roue1 = new Roue() ;


roues[0] = new Roue() ; Roue roue2 = new Roue() ;
roues[1] = new Roue() ; …
… Roue[] roues = {roue1,roue2,…} ;
 

MME.  LILIA  SFAXI                  2011/2012  


Chapitre  1  :  Initiation  à  la  Programmation  Mobile,  Java  et  Eclipse   9    

TAF-­‐‑5  :    

1. Réaliser   une   association   entre   les   classes   Etudiant   et   Matière,   puis   entre   les   classes   Enseignant   et   Matière,  
comme  l’indique  le  diagramme  suivant.    
 

 
2. Implémenter  toutes  les  méthodes  manquantes  dans  les  classes  Etudiant,  Enseignant  et  Matiere.  Définition  
d’une  variable  partagée    

IV. Homework  
Soit   un   programme   simple   permettant   la   gestion   d’un   compte   bancaire.   On   définit   dans   ce   programme  
principalement  trois  objets  :  Personne,  Banque  et  Compte.    

-­‐‑ Personne  :    
o Une  personne  a  un  nom,  prénom,  numéro  de  carte  d’identité    
o Une  personne  peut  avoir  un  seul  compte  bancaire.    
o Une  personne  peut  déposer  ou  retirer  une  somme  d’argent  de  son  compte.    
o Une  personne  peut  consulter  son  compte.  La  consultation  affiche  simplement  la  somme  existant  
dans  son  compte  bancaire.  
-­‐‑ Compte  :  
o Un    compte  bancaire  a  un  identifiant,  est  associé  à  une  seule  personne  et  appartient  à  une  seule  
banque.    
o Au  moment  de  la  création  d’un  compte  bancaire,  on  précise  obligatoirement  son  propriétaire.  
-­‐‑ Banque  :    
o Une  banque  a  une  adresse  et  un  nom,    
o Une  banque  peut  contenir  jusqu'ʹà  100  comptes  bancaires,  et  peut  avoir  jusqu’à  100  clients.    
o Une  banque  peut  créer  ou  supprimer  un  compte.  

MME.  LILIA  SFAXI                  2011/2012  


Chapitre  1  :  Initiation  à  la  Programmation  Mobile,  Java  et  Eclipse   10  
 
 
Réaliser   cette   application   en   Java   sur   Eclipse.   La   méthode   main   principale   permet   de   créer   une   nouvelle  
banque,  deux  personnes  (Ali  et  Hedia)  et  leurs  comptes  bancaires.  Les  étapes  suivantes  sont  réalisées  :  

-­‐‑ Ali  dépose  500  dt.  


-­‐‑ Hedia  dépose  300  dt.  
-­‐‑ Ali  retire  100  dt.  
-­‐‑ Ali  consulte  son  compte.    
-­‐‑ Hedia  consulte  son  compte.      

MME.  LILIA  SFAXI                  2011/2012  

Vous aimerez peut-être aussi