Dans ce projet technique, nous allons construire une application mobile Android de base pour la gestion de tâches. L'objectif est de permettre à l'utilisateur d'ajouter des tâches, de consulter une liste et de supprimer des éléments. Ce processus permettra de se familiariser avec l'environnement de développement Android Studio, la conception d'interfaces graphiques, la manipulation des entrées utilisateur et la persistence des données via SQLite.
Fonctionnalités principales de l'application
- Ajout d'une nouvelle tâche via un champ de saisie.
- Affichage de l'ensemble des tâches enregistrées dans une liste.
- Suppression d'une tâche par un geste de glissement.
Architecture logicieelle proposée
L'application sera structurée autour des composants suivants :
- ActivitéPrincipale : Point d'entrée de l'application, contenant la vue de la liste et le formulaire d'ajout.
- Tâche : Classse métier représentant un élément de travail.
- AdaptateurTâche : Composant responsable de l'alimentation de la vue de liste (RecyclerView) avec les données.
- AideBaseDeDonnées : Classe utilitaire pour gérer la création, la mise à jour et l'accès à la base de données SQLite.
Mise en place du projet
-
Initialiser un nouveau projet dans Android Studio en choisissant le modèle « Empty Activity ». Nommer le projet, par exemple « GestionnaireTâches ».
-
L'arborescence des fichiers ressemblera à ceci : ```
app/ ├── src/main/ │ ├── java/com/exemple/gestionnairetaches/ │ │ ├── ActivitePrincipale.java │ │ ├── Tache.java │ │ ├── AdaptateurTache.java │ │ └── AideBaseDeDonnees.java │ └── res/ │ ├── layout/ │ │ └── activite_principale.xml │ └── values/ │ ├── strings.xml │ └── themes.xml
Définition de la classe métier « Tache »
Cette classe encapsule les données d'une tâche. Elle contient un identifiant unique et une description textuelle.
package com.exemple.gestionnairetaches;
public class Tache {
private long identifiant;
private String libelle;
public Tache() {
// Constructeur par défaut
}
public Tache(long id, String desc) {
this.identifiant = id;
this.libelle = desc;
}
// Getters et Setters
public long obtenirIdentifiant() {
return identifiant;
}
public void definirIdentifiant(long id) {
this.identifiant = id;
}
public String obtenirLibelle() {
return libelle;
}
public void definirLibelle(String desc) {
this.libelle = desc;
}
}
Implémentation de l'aide à la base de données SQLite
Cette classe hérite de SQLiteOpenHelper pour gérer le cycle de vie de la base de données locale. Elle définit le nom de la table et ses colonnes.
package com.exemple.gestionnairetaches;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class AideBaseDeDonnees extends SQLiteOpenHelper {
private static final String NOM_BDD = "bd_taches.db";
private static final int VERSION_BDD = 1;
public static final String TABLE_TACHES = "items";
public static final String COLONNE_ID = "_id";
public static final String COLONNE_LIBELLE = "texte_tache";
private static final String SQL_CREATION =
"CREATE TABLE " + TABLE_TACHES + " (" +
COLONNE_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLONNE_LIBELLE + " TEXT NOT NULL)";
public AideBaseDeDonnees(Context contexte) {
super(contexte, NOM_BDD, null, VERSION_BDD);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(SQL_CREATION);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_TACHES);
onCreate(db);
}
}