Академический Документы
Профессиональный Документы
Культура Документы
Chapitre 1 : Initiation à la Programmation Mobile, Java et Eclipse 1
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é.
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.
-‐‑ 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.
-‐‑ 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.
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.
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
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
Plusieurs logiciels commerciaux sont basés sur ce logiciel libre, comme par exemple IBM Lotus Notes 8, IBM
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.
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.
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é :
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)
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 ;
(méthode main)
...
Vehicule v = new Vehicule(2,4.6,1.5,true) ;
...
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).
Il est possible de limiter la visibilité des attributs et méthodes définies à l'ʹintérieure des classes.
public Vehicule() {
age = 1.0F ;
taille = 1.0F ;
poids = 1 ;
moteur = false ;
}
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.
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 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.
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.
public Vehicule() {
age = 1.0F ;
taille = 1.0F ;
poids = 1 ;
moteur = false ;
}
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 Voiture() {
moteur = true ;
places = 4 ;
}
}
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.