Vous êtes sur la page 1sur 47

‫الجمهوريــــــــــــــــــــــة الجزائريـــــــــــة الديمقراطيـــــــــة الشعبيـــــــة‬

‫وزارة التعليـــــــــــم العـــــــــــالي والبحـــــــــث العلـــــــمي‬


‫جامعة وهران للعلوم والتكنولوجيا محمد بوضياف‬
‫كلية الرياضيات واالعالم االلي‬
République Algérienne Démocratique et Populaire
Ministère de l’Enseignement Supérieur Et de la Recherche Scientifique
Université des Sciences et de la Technologie d’Oran Mohamed BOUDIAF
Faculté des Mathématiques et Informatique

Département : Informatique

Conception et réalisation d’une


application mobile de partage de livres
Mémoire de fin d’études électronique

Pour l’obtention du diplôme


de Licence

Domaine : Mathématiques – Informatique


Filière : Informatique.
Spécialité : Systèmes Informatiques /Ingénierie Système Informatique
Logiciel

Présenté le : 15/07/2021
Par :
-
_ALIOUA Marwa Jury Nom et Prénom Grade Université
-CHEURFI Med Habib
Examinateur : ELKETROUSSI Amel MAA USTO-MB

Encadrant : FERHANE Samia MAA USTO-MB

2020/2021
Conception et réalisation d’une
application mobile de partage de
livres électronique

1
Remerciements et dédicace

Notre mémoire n’aurait pas pu aboutir sans la contribution de plusieurs personnes à qui je tiens à
leur exprimer ma gratitude infinie.

Je tiens d’abord à remercier notre encadreur Madame FERHANE Samia pour son soutien et sa
confiance, ses remarques pertinentes et son encouragement.

Notre examinateur Madame ELKETROUSSI Amel pour son temps qu’elle a consacré à lire et juger
ce travail.

A mon cher binôme qui m’a accompagné dès le début de ce projet.

Mes chères amies Malek Benzerga et Abdelkader Yagoub pour leurs soutiens et amitié pour leurs
accompagnements, conseils et sur tous prendre mes questions fréquemment posées et y répondre, pour
toute leur aides, j’espère qu’ils accepteront mon appréciation et mon amour les plus sincères.

A ma famille le premier et le dernier soutien tout au long de ma carrière universitaire, ma chère mère,
la personne pour qui j’ai le plus de respect et d’admiration, mon père, ma soeur Hafida et mon petit
frère Abdennour, ma petite nièce Lyna et ma cousine Meriem pour leurs présence et tous mes amis plus
précisément Aya et Mehdi, pour leur support moral et leurs prières pour moi.

A tous mes collègues, en particulier Chihez pour son amitié et son encouragement.

Enfin je tiens à remercier toutes les personnes qui ont contribué de près ou de loin à la réalisation de
ce travail.

Marwa

2
Remerciements et dédicace

Ce travail est le fruit de la combinaison d’efforts de plusieurs personnes. Je remercie tout d’abord le
tout puissant qui, par sa grâce m’a permis d’arriver au bout de mes efforts en me donnant la santé, la
force, le courage et en me faisant entourer des merveilleuses personnes dont je tiens à remercier.

Je voudrais tout d’abord adresser toute ma reconnaissance à notre encadreur Madame FERHANE
Samia, pour sa patience, sa disponibilité et surtout ses judicieux conseils, qui ont contribué à alimenter
ma réflexion.

A notre Examinateur Madame ELKETROUSSI Amel pour avoir participé au juré et consacré son
temps à juger ce travail.

A mon cher binôme et à mon amie pour tous les bons moments que nous avons passés à réaliser ce
projet.

Mes chers amis et collègues qui m’ont apporté leur soutien moral et intellectuel tout au long de ma
démarche.
Je tiens à remercier spécialement mes chers parents pour leur affection inépuisable et leurs précieux
conseils. Ils n’ont cessé de prier pour moi durant mon cursus scolaire et m’ont encouragé régulièrement.

Mes chers frères et sœurs et tantes, Sarah, Amina, Abdeljalil, Inès pour leurs soutiens et attentions.
Ils m’ont permis de réaliser que la famille est sacrée. Ils étaient pour moi, une vraie source d’inspiration
et ont toujours été à mes côtés durant les moments difficiles.

Enfin, je tiens à remercier spécialement ma chère petite nièce Neyla Rahaf.

Mohamed

3
Résumé

Pendant des siècles, le livre a été considéré comme le meilleur ami de l’homme et lu Faites de l’exercice
et enrichit l’esprit.

Aujourd’hui, même si les appareils mobiles occupent une position de leader, le livre conserve toujours
son poste indispensable pour les gens. Par conséquent, l’évolution de la technologie a permis de fusionner
les deux en créant des applications (mobile /web) dédiées aux livres.

Notre projet de fin d’études vise à créer une application mobile engagée pour partager des livres
que les utilisateurs peuvent découvrir nouveau produit. Cela lui permettra également de partager divers
livres et de sortir ses idées et imaginez en quelques lignes.

Mots clés :
Livre, Application mobile, développement, Flutter, Partage de livres.

4
Table des matières

1 Etat de l’art 10
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 Modélisation Informatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.1 Systeme Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.2 UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3 Présentation de notre sujet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1 Définition du thème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.2 But . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.3 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.4 Application similaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.5 Tableau comparatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.3.6 Qu’est ce qu’on a de plus ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2 Conception 19
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2 Diagramme de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.1 Diagramme de cas d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.2 Diagramme d’activité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.3 Diagramme de séquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.4 Diagramme de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3 Implémentation et mise en œuvre 26


3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 Matériel et outils utilisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.1 Matériels utilisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.2 Environnement de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.3 .Outils utilisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3 Maquette Fonctionnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.4 Présentation de notre base de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.5 Interface de notre application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5
Table des figures

1.1 Exemple de diagramme de cas d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . 12


1.2 Exemple de diagramme d’activité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3 Exemple de diagramme de séquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4 Exemple de diagramme de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5 logo de goodreads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.6 Logo de Electre-LH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.7 logo de Le choix des libraires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.8 Logo de Chapitre.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.9 Tableau comparatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.1 Diagramme de cas d’utilisation de l’application . . . . . . . . . . . . . . . . . . . . . . . . 20


2.2 Diagramme d’Activité de l’application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3 Diagramme d’activité de la connexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4 Diagramme d’activité de l’ajout d’un livre . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.5 Diagramme d’activité d’accès au profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.6 Diagramme de séquence d’inscription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.7 Diagramme de séquence de la connexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.8 Diagramme de séquence d’ajout d’un livre . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.9 Diagramme de séquence du choix de la catégorie . . . . . . . . . . . . . . . . . . . . . . . 24
2.10 Diagramme de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.1 Logo de Android Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27


3.2 SDK package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3 Emulateur android studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.4 Logo de Flutter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.5 Exemple de hiérarchie des widgets [8] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.6 L’architecture de Flutter[8] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.7 logo de Dart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.8 Logo de Firebase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.9 Logo Lucidchart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.10 Logo de Figma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.11 Logo de Balsamiq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.12 Maquette” Accueil” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.13 Maquette” Catégorie et Recherche” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.14 Maquette” Partage” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.15 Maquette” Contact us” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.16 Maquette” Profil” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.17 Base de données “Utilisateur” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.18 Base de données “Catégorie” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.19 Base de données “Livre” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.20 Base de données “Catégorie /pour relier les photos” . . . . . . . . . . . . . . . . . . . . . 40
3.21 Base de données “Catégorie/Url des photos” . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.22 Connexion/Inscription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.23 Accueil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.24 Catégorie/ Recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.25 About . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.26 Profil/Modifier Profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

6
TABLE DES FIGURES

3.27 Ajouté Livre/Livre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43


3.28 Contacter Nous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

7
Glossaire et acronymes

SI Système d’information.

UML Unified Modeling Language.

OMG Object Management Group.

IDE Integrated Development Environment.

SDK Software Development Kit.

Framework Un framework est une sorte d’infrastructure de développement, il désigne un ensemble


cohérent de composants logiciels structurels qui sert à créer les fondations ainsi que les grandes lignes de
tout ou d’une partie d’un logiciel ou application.

AOT Ahead of Time.

JIT Just In Time.

JSX JavaScript XML.

XML Extensible Markup Language.

serverless L’informatique sans serveur ou serverless computing est un paradigme de cloud compu-
ting dans lequel le fournisseur de serveur gère dynamiquement les ressources allouées au service client. Le
prix dépend des ressources effectivement consommées et non des capacités d’un serveur acheté à l’avance.
Mais le terme ’sans serveur’ ne signifie pas qu’il n’y a pas de serveurs impliqués. Cela signifie qu’ils sont
gérés par les fournisseurs et non par les consommateurs.[20]

BETA Une pré-version du logiciel est donnée à un grand groupe d’utilisateurs à essayer dans des
conditions réelles. Les versions bêta ont subi des tests alpha en interne et sont généralement assez proches
du point de vue de la présentation et de la fonctionnalité du produit final ; cependant, des modifications
de conception sont souvent apportées.[19]

ML Machine Learning.

API Une API (Application Programming Interface) est un ensemble de règles et spécifications qu’un
programme peut suivre pour accéder et faire usage des services et des ressources fournis par un autre
programme particulier qui implémente cette API.

REST est un style d’architecture logicielle qui fournit une approche pratique et cohérente pour de-
mander et modifier des données. Le terme REST est l’abréviation de Representational State Transfer.
Dans le contexte des API Google, il s’agit d’utiliser des verbes HTTP pour récupérer et modifier les
représentations des données stockées par Google.

JSON JavaScript Object Notation.

HTTP HyperText Transfer Protocol.

OCR Reconnaissance optique de caractères.

8
Introduction Générale

Depuis sa création le livre a été conçu le principal vecteur de connaissance tels que les sciences et la
théologie d’une génération à l’autre. De jour en jour la population considère la lecture comme un mode
de vie et le livre comme le meilleur compagnon qu’une personne puisse avoir .

Cependant revenant au monde actuel et plus particulièrement dans notre pays, l’Algérie ce mode de
vie devient difficile à maintenir de plus en plus, pour des raisons aussi diverses que la disponibilité de
certains livres, la difficulté d’en trouver d’autres et les difficultés rencontrées pour se connecter à d’autres
lecteurs qui partagent les mêmes intérêts et amour pour la lecture.

Afin de résoudre ces problèmes, nous nous sommes tournés vers la technologie, en exploitant le pou-
voir offert par les smartphones qui envahissent tous les poches et l’énorme popularité des réseaux sociaux,
nous avons décidé de concevoir et de mettre en œuvre une application mobile.

Le rapport de ce projet se divise en trois chapitres. Le premier consiste en une modalisation et des
définitions sur (UML) et ses différents diagrammes. Spécification des besoins fonctionnels de l’application.

Le deuxième quant à lui détaille l’architecture logicielle du système conçu et finalement le troisième
chapitre contient les détails de l’implémentation et le résultats obtenu du prototype développé.

9
Chapitre 1

Etat de l’art

10
CHAPITRE 1. ETAT DE L’ART

1.1 Introduction
Dans ce chapitre nous présentons des notions de base sur la modélisation informatique ensuite nous
exposons notre problématique qui est le partage de livres plus la présentation du thème de projet Nous
proposons la solution de l’application mobile, qui sert à partager des livres et autres fonctionnalités que
nous allons citer dans ce chapitre pour résoudre notre fameux problème qui est déjà à l’introduction.

1.2 Modélisation Informatique


1.2.1 Systeme Information
Définition
Un système d’information (SI) est l’ensemble des ressources de l’entreprise qui permettent la gestion
de l’information. Le SI est généralement associé aux technologies (matériel, logiciel et communication),
aux processus qui les accompagnent, et aux hommes qui les supportent. D’abord simplement appelé
informatique, cet ensemble a pris le nom de SI avec l’arrivée des nouvelles technologies qui ont élargi son
domaine.

Signification
Il y a trois voix pour évoquer le SI :
1. La première reprend la vision des solutions informatiques (matériel, logiciel, communication), et
évoque les ressources pour collecter, stocker , traiter et communiquer les informations , c’est la
plus communément retenue .
2. La seconde est orientée processus , et va au-delà des solutions informatiques pour impliquer la stra-
tégie de l’entreprise et l’alignement des métiers , elle prend en compte l’évolution de l’informatique
hors de la DSI (Direction des systèmes d’Information).
3. La troisième , rarement évoquée car récente, se détache de l’approche informatique traditionnelle
pour entrer dans celle de la valeur de l’information au travers des modèles économiques emportés
par la transformation digitale qui déconstruit les deux premières voix[1]

1.2.2 UML
Définition
Le Langage de Modélisation Unifié, de l’anglais Unified Modeling Language (UML), est un langage de
modélisation graphique à base de pictogrammes conçus comme une méthode normalisée de visualisation
dans les domaines du développement logiciel et en conception orientée objet.

L’UML est une synthèse de langages de modélisation objet antérieurs : Booch, OMT, OOSE. Princi-
palement issu des travaux de Grady Booch, James Rumbaugh et Ivar Jacobson, UML est à présent un
standard adopté par l’Object Management Group (OMG). UML 1.0 a été normalisé en janvier 1997 ;
UML 2.0 a été adopté par l’OMG en juillet 2005.[2]

Les différents diagrammes


Les diagrammes sont dépendants hiérarchiquement et se complètent, de façon à permettre la modé-
lisation d’un projet tout au long de son cycle de vie. Il en existe quatorze depuis UML 2.3.

Diagrammes de structure ou diagrammes statique


-Diagramme de classe
-Diagramme d’objet
-Diagramme de composants

Diagramme de comportement
-Diagramme de cas d’utilisation
-Diagramme états-transitions

11
CHAPITRE 1. ETAT DE L’ART

-Diagramme d’activité

Diagramme d’interaction ou dynamique


-Diagramme de séquence
-Diagramme de communication

Diagramme de cas d’utilisation


Définition
Ils permettent de décrire l’interaction entre l’acteur et le système. L’idée forte est de dire que l’utilisateur
d’un système logiciel a un objectif quand il utilise le système ! Le cas d’utilisation est une description des
interactions qui vont permettre à l’acteur d’atteindre son objectif en utilisant le système.

Exemple

Figure 1.1 – Exemple de diagramme de cas d’utilisation

Diagramme d’activité
Définition

Un diagramme d’activité permet de modéliser le comportement du système, dont la séquence des


actions et leurs conditions d’exécution. Les actions sont les unités de base du comportement du système.
Un diagramme d’activités permet de grouper et de dissocier des actions. Si une action peut être divisée
en plusieurs actions en séquence, vous pouvez créer une activité les représentant.

12
CHAPITRE 1. ETAT DE L’ART

Exemple

Figure 1.2 – Exemple de diagramme d’activité

Diagramme de séquence
Définition
Le diagramme de séquence représente la succession chronologique des opérations réalisées par les acteurs.
Il montre les interactions entre les objets, en montrant les messages qu’ils échangent entre eux ordonnés
dans le temps. Nous allons expliquer les fonctionnalités les importantes de l’application à travers ce
diagramme.

Exemple

Figure 1.3 – Exemple de diagramme de séquence

13
CHAPITRE 1. ETAT DE L’ART

Diagramme de classe
Définition
Le diagramme de classes est le point central dans le développement orienté objet. Côté analyse, il a pour
objectif de décrire la structure des entités manipulées par les utilisateurs. Côté conception, le diagramme
de classes représente la structure d’un code orienté objet ou, à un niveau de détail plus important, les
modules du langage de développement. Une classe est composée des attributs et opérations.

Exemple

Figure 1.4 – Exemple de diagramme de classe

1.3 Présentation de notre sujet


1.3.1 Définition du thème
Notre projet consiste à réaliser une application mobile de partage de livres aussi bien qu’une commu-
nauté de livre en ligne, le catalogue d’utilisateurs réservé à un rayon de bibliothèque virtuel qui affiche
la couverture de chaque livre classer en catégorie. Si vous pointez le curseur sur la couverture un popup
afficherez des informations sur le livre comme les révisions, l’auteur, et le lieux où les autres utilisateurs
peuvent le trouver.

Chaque utilisateur qui a un compte sur cette application peut ajouter ou consulter des livres qui sont
déjà mis en ligne, et donner leurs avis en commentant les livres qui sont mis sous forme de publications.

1.3.2 But
L’objectif principal de cette application est d’améliorer la culture personnelle, de renforcer la com-
munication en partageant des livres et aussi d’aider les utilisateurs à trouver l’endroit d’où ils peuvent
acheter ces livres, encourager la lecture personnelle, et revivre la culture de la lecture des livres.

1.3.3 Fonctionnement
L’application doit permettre à l’utilisateur de :
1. Consulter une liste de livres cités par (titre, auteur, catégorie, description).
2. Ajouter un nouveau livre (avec son emplacement).
3. Noter un livre(commenter).
4. Rechercher un livre par titre.

1.3.4 Application similaire


Goodreads
est un site web de critiques et de notation de livres. Fondé en décembre 2006, puis lancé en janvier
2007 par Otis Chandler II, un ingénieur informatique et entrepreneur, et Elizabeth Khuri.[3]

14
CHAPITRE 1. ETAT DE L’ART

Ce site se base sur des notions de catalogage social et permet aux individus de faire des recherches
dans une vaste base de données comprenant des livres, des annotations et des critiques littéraires. Les
usagers peuvent y créer un compte pour consigner leurs impressions de lecture, ce qui génère des listes
de suggestions personnalisées. Ils ont également la possibilité de créer leurs propres clubs de lecture, des
sondages, des blogs et de lancer des discussions.
Le 28 mars 2013, Amazon annonce l’acquisition de Goodreads pour un montant non divulgué[4] et
la startup est devenue une application mobile plus le site web.

Les avantages :

1. On suit les lectures de ses amis (le livre lu actuellement, à quelle page ils en sont) et leurs avis
2. On peut facilement partager son avis
3. Les fiches des livres sont suivies des avis de la communauté
4. Une bonne ergonomie
5. L’outil de scannage du code barre

Les inconvénient :

1. Passer votre chemin si vous êtes allergique à l’anglais


2. Pas de mise en valeur de l’actualité ou des sorties récentes

Figure 1.5 – logo de goodreads

Electre-LH
Electre-LH est l’application proposée par Livres Hebdo. Elle permet de suivre l’actualité du monde
littéraire et de rechercher un livre dans une base de données de plus d’un million d’ouvrages papier ou
numériques. Il est possible de sauvegarder ses recherches.

Les avantages :

1. Le moteur de recherche très pratique pour trouver un ouvrage, son prix et sa disponibilité (épuisé/à
paraître/disponible)
2. L’option de recherche de la librairie la plus proche avec ses coordonnées complètes
3. L’actualité et l’outil «recherche » réunis dans une seule application

Les inconvénients :

1. L’application ne permet pas le partage d’avis des lecteurs sur les livres

15
CHAPITRE 1. ETAT DE L’ART

Figure 1.6 – Logo de Electre-LH

Le choix des libraires(La Grande librairie)


Cette application réunit une sélection de livres faite par les libraires, une revue de presse, des inter-
views d’auteurs et des commentaires de lecteurs et demande aux libraires les livres qui ont changé leur vie.

Les avantages :

1. Des extraits des livres pour mieux les découvrir


2. Des avis pertinents sur des sorties récentes
3. Une bonne ergonomie
4. L’annuaire des libraires près de chez soi

Les inconvénients :

1. Pas de possibilité de rechercher un titre précis


2. Une liste de livres qui gagnerait à être étoffée

Figure 1.7 – logo de Le choix des libraires

16
CHAPITRE 1. ETAT DE L’ART

Chapitre.com
Il s’agit de l’application de la librairie Chapitre, chapitre.com est de base une entreprise commerciale
française spécialisée dans la vente de livres, créée en 1997 sous la forme d’un site internet.

Les avantages :

1. La possibilité d’ajouter ses amis pour partager ses envies lecture avec son entourage
2. Des conseils lecture en fonction de ses goûts

Les inconvénients :

1. Une mauvaise définition des couvertures montrée


2. Une consultation des fiches de livres qui n’est pas très pratiques
3. Aucune fiche détaillée pour les livres lors d’une recherche
4. Pas de possibilité de commande [5]

Figure 1.8 – Logo de Chapitre.com

1.3.5 Tableau comparatif

Figure 1.9 – Tableau comparatif

17
CHAPITRE 1. ETAT DE L’ART

1.3.6 Qu’est ce qu’on a de plus ?


Notre application avec ses fonctions que nous avons déjà précisé apporte de plus par rapport aux
applications cités précédemment les liens de localisation des bibliothèque qui facilite la recherche aux
utilisateurs de trouver l’emplacement où ils peuvent acheter ou lire ces livres en version papier, en prenant
des avis des autres, et aussi des petits résumés à partir de notre application.

1.4 Conclusion
Dans ce chapitre, nous avons présenté en première partie, les notions de base concernant les systèmes
d’information, ensuite nous avons détaillé le langage de modélisation UML. En deuxième partie, nous
avons abordé notre problématique avec la liste des fonctionnalités attendues en citant quelques systèmes
existants sur le marché qui traitent le même problème avec leurs caractéristiques. En dernier lieu, nous
avons mis l’accent sur l’apport de notre application par rapport à celles existantes sur le marché.

18
Chapitre 2

Conception

19
CHAPITRE 2. CONCEPTION

2.1 Introduction
La conception d’une application informatique ou d’un ensemble d’applications est basée sur plusieurs
diagrammes. Ces diagrammes doivent unifier la vision de l’équipe de développement et l’orienter vers la
création d’une solution bien alignée sur les exigences du problème, et permettre également à l’équipe de
proposer à ses clients une expérience utilisateur cohérente tout au long de l’application.

La pratique des conceptions logicielles n’est pas une pratique rigide dans laquelle plusieurs étapes clés
sont toujours présentes dans un ordre particulier, par exemple : Le langage UML ne préconise aucune
démarche, ce n’est donc pas une méthode. Chacun est libre d’utiliser les types de diagrammes qu’il
souhaite, dans l’ordre qu’il veut. Il suffit que les diagrammes réalisés soient cohérents entre eux, avant
de passer à la réalisation de l’application .

2.2 Diagramme de base


Nous présentons les diagrammes sur lesquels notre application mobile se base, chacun avec une petite
explication .

2.2.1 Diagramme de cas d’utilisation

Figure 2.1 – Diagramme de cas d’utilisation de l’application

L’utilisateur peut rechercher ou consulter les livres sans inscription dès son entrée à l’application,
après inscription ou connexion à son compte, Il peut partager des livres en remplissant le formulaire et
ajouter le lien d’emplacement, une couverture(image) du livre et aussi la description, il peut commenter
les livres, donner son avis, aimer le post(livre) et lire ses information, l’utilisateur peut modifier son
propre profil aussi.

20
CHAPITRE 2. CONCEPTION

2.2.2 Diagramme d’activité

Figure 2.2 – Diagramme d’Activité de l’application

Ce diagramme d’activité montre le fonctionnement général de l’application, dès son lancement à sa


fermeture. Chaque fonctionnalité sera détaillée séparément avec les diagrammes ci- dessous.

Figure 2.3 – Diagramme d’activité de la connexion

L’utilisateur doit passer par l’authentification pour accéder aux plusieurs fonctionnalités de l’appli-
cation, après être inscrit, il doit valider son adresse émail, après la vérification il peut utiliser son email
et son mot de passe pour se connecter.

21
CHAPITRE 2. CONCEPTION

Figure 2.4 – Diagramme d’activité de l’ajout d’un livre

L’ajout d’un livre est assez simple, l’utilisateur doit juste remplir les champs et valider l’ajout.

Figure 2.5 – Diagramme d’activité d’accès au profil

Les informations personnelles de l’utilisateur, ainsi que celle de ses livres peuvent facilement être
modifiées, en ouvrant l’interface (Profil).

22
CHAPITRE 2. CONCEPTION

2.2.3 Diagramme de séquence

Figure 2.6 – Diagramme de séquence d’inscription

L’inscription doit se faire pour pouvoir accéder à l’application, pour cela, l’utilisateur doit écrire
quelques informations essentielles tel que son nom d’utilisateur, son mot de passe ainsi que son email.
Une fois validé, l’adresse email sera vérifiée grâce à une fonction définie , et ainsi, si le code écrit correspond
au code utilisé pour envoyer le mail, son compte sera fonctionnel.

Figure 2.7 – Diagramme de séquence de la connexion

La connexion se fait à l’aide de son nom d’utilisateur ou son adresse électronique (Email) et du mot
de passe.

23
CHAPITRE 2. CONCEPTION

Figure 2.8 – Diagramme de séquence d’ajout d’un livre

Pour ajouter un livre , l’utilisateur remplit un formulaire avec les informations correspondantes et il
valide.

Figure 2.9 – Diagramme de séquence du choix de la catégorie

Par défaut, l’interface principale contient les livres classés et triés par catégorie, cependant, l’utilisa-
teur en choisissant une des catégories, cette action doit lui permettre de consulter tous les livres de cette
catégorie.

24
CHAPITRE 2. CONCEPTION

2.2.4 Diagramme de classe

Figure 2.10 – Diagramme de classe

Ce diagramme de classe montre toutes les classes que nous avons utilisées , ainsi que les jointures
entre elles qui se font via les clés principales et les clés secondaires .

Règle de gestions :
- Pour plus explication, un utilisateur peut ajouter zéro ou plusieurs livres.
- Un livre à des commentaires (faites par d’autres utilisateurs ou le propriétaire du livre ) ou aucun
commentaire.
- Un livre se trouve dans un ou plus d’endroits(liens), un lien est un lien GPS, page facebook, un
compte instagram, un site web....etc
- Une categorie contient aucun ou plusieurs livres.
- Un lien peut appartenir à un ou plusieurs livres.

2.3 Conclusion
Tout au long de ce chapitre, nous avons détaillé la conception de notre application à travers des
diagrammes afin que la phase réalisation et la mise en place de l’application soient plus souples et
plus aisées. Le chapitre suivant mettra en évidence, le fruit de ce passage et les différents résultats du
développement de l’application demandée.

25
Chapitre 3

Implémentation et mise en œuvre

26
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE

3.1 Introduction
Après avoir spécifié les besoins du système et conceptualiser la solution requise, nous allons dans ce
chapitre, citer les détails de l’implémentation, justifier nos choix technologiques et exposer vers la fin les
résultats de l’exécution de l’application.

3.2 Matériel et outils utilisés


3.2.1 Matériels utilisés
Machine principale :
1. Marque : Lenovo Thinkpad
2. Système d’exploitation : Windows 10
3. Microprocesseur : Intel Core i7
4. Mémoire vive : 16 Go

Machine secondaire :
1. Marque : Asus
2. Système d’exploitation : Windows 10
3. Microprocesseur : Intel Core i5
4. Mémoire vive : 16 Go

3.2.2 Environnement de travail


Android Studio
C’est un environnement de développement pour développer des applications Android, basé sur IntelliJ
IDEA et utilise le moteur de production Gradle. Il peut être téléchargé sous les systèmes d’exploitation
Windows, macOS, Chrome OS et Linux. [6]

Figure 3.1 – Logo de Android Studio

27
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE

Le SDK d’Android
SDK est l’abréviation de Kit de développement (Software Development Kit), c’est l’ensemble des
outils de développement, il inclut un débogueur, des bibliothèques ainsi qu’un émulateur.

Figure 3.2 – SDK package

L’émulateur
C’est la machine virtuelle

Figure 3.3 – Emulateur android studio

28
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE

Flutter & Dart


C’est quoi Flutter ?
Flutter est un kit de développement de logiciels (SDK) d’interface utilisateur open-source créé par Google.
Il est utilisé pour développer des applications pour Android, iOS, Linux, Mac, Windows, à partir d’une
seule base de code.

La première version de Flutter était connue sous le nom de code Sky et fonctionnait sur le système
d’exploitation Android. Elle a été dévoilée lors du sommet des développeurs Dart de 20153, avec l’in-
tention déclarée de pouvoir effectuer un rendu cohérent à 120 images par seconde. Lors du discours
d’ouverture des Google Developer Days à Shanghai, Google a annoncé la sortie de Flutter Release Pre-
view 2 qui est la dernière grande version avant Flutter 1.0. Le 4 décembre 2018, Flutter 1.0 a été publié
lors de l’événement Flutter Live, ce qui représente la première version "stable" du Framework.[7]

L’objectif est de permettre aux développeurs de proposer des applications hautes performances qui se
sentent naturelles sur différentes plates-formes. Comme React Native, Flutter fournit également des vues
de style réactif. Flutter adopte une approche différente pour éviter les problèmes de performances causés
par la nécessité d’un pont JavaScript en utilisant un langage de programmation compilé, à savoir Dart.
Dart est compilé «à l’avance» AOT en code natif pour plusieurs plates-formes. Cela permet à Flutter
de communiquer avec la plate-forme sans passer par un pont JavaScript qui effectue un changement de
contexte. La compilation en code natif améliore également les temps de démarrage des applications.

Figure 3.4 – Logo de Flutter

Tous c’est un widget -Principe de Flutter :


La stratégie de Flutter « Tout est un widget » intègre de manière systématique la programmation orien-
tée objet jusque dans l’interface utilisateur : l’interface d’un programme se compose de différents widgets
pouvant être imbriqués les uns dans les autres. Chaque bouton et texte affiché est un widget. Ces widgets
présentent diverses caractéristiques modifiables. Ils peuvent s’influencer les uns les autres et réagir à des
modifications d’état extérieures grâce à des fonctions intégrées.

Des widgets sont fournis pour tous les éléments principaux de l’interface utilisateur. Ils sont conformes
aux designs prescrits par Android et iOS, ainsi qu’à ceux des applications web usuelles. Au besoin, des
fonctions supplémentaires peuvent être ajoutées. Des widgets personnalisés peuvent également être créés
et facilement combinés avec les widgets existants.

Par comparaison avec les concepts d’autres SDK, les widgets offrent une flexibilité accrue. Cependant,
dans la mesure où ils sont tous ancrés dans le code source du programme, ils sont fortement imbriqués,
ce qui peut rapidement entraîner une certaine confusion.

Un widget peut définir :


• un élément structurel (comme un bouton ou un menu).
• un élément stylistique (comme une police ou un jeu de couleurs).
• un aspect de la mise en page (comme le rembourrage).
• etc...

29
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE

Les widgets forment une hiérarchie basée sur la composition. Chaque widget niche à l’intérieur et
hérite des propriétés de son parent. Il n’y a pas d’objet «application» séparé. Au lieu de cela, le widget
racine joue ce rôle.Vous pouvez répondre à des événements, comme une interaction utilisateur,en indi-
quant au cadre de remplacer un widget de la hiérarchie par un autre. La structure compare ensuite les
nouveaux et les anciens widgets et met efficacement à jour l’interface utilisateur.

Figure 3.5 – Exemple de hiérarchie des widgets [8]

Couche de framework de Flutter


Flutter est conçu comme un système extensible en couches. Il existe sous la forme d’une série de biblio-
thèques indépendantes qui dépendent chacune de la couche sous-jacente. Aucune couche n’a un accès
privilégié à la couche inférieure, et chaque partie du niveau du framework est conçue pour être facultative
et remplaçable.[8]

Le but de cette conception est de vous aider à faire plus avec moins de code.

30
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE

Figure 3.6 – L’architecture de Flutter[8]

Sur quel langage de programmation se base Flutter ?


Le Flutter SDK se base sur le langage de programmation Dart également développé par Google. Il se
veut le successeur moderne du langage JavaScript classique et, tout comme ce dernier, il s’exécute di-
rectement sur les navigateurs, sous forme d’application web. Les programmes Dart peuvent aussi être
exécutés directement sur un serveur.

Dart est un langage de programmation polyvalent développé à l’origine par Google et ensuite ap-
prouvé en tant que norme par Ecma (ECMA-408). Il est utilisé pour créer des applications Web, serveur,
bureau et mobiles.

Dart est un langage basé sur les objets, orienté objet, défini par la classe et utilisant une syntaxe de
style C qui trans compile éventuellement en JavaScript. Il prend en charge les interfaces, mixins, classes
abstraites, génériques réifiés, typage statique et un système de type sonore.[9]

Figure 3.7 – logo de Dart

31
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE

Pourquoi Flutter utilise le langage Dart ? Flutter utilise le langage Dart pour plusieurs raisons
nous citons :

• Dart est AOT compilé en un code natif rapide et prévisible, qui permet à presque tout de Flutter
d’être écrit en Dart. Cela rend non seulement Flutter rapide, mais pratiquement tout (y compris tous
les widgets) peut être personnalisé.

• Dart peut également être compilé JIT (Just In Time) pour des cycles de développement excep-
tionnellement rapides et un flux de travail révolutionnaire (y compris le populaire rechargement à chaud
avec état sous la seconde de Flutter).

• Dart facilite la création d’animations lisses et de transitions exécutées à 60 images par seconde.
Dart peut faire l’allocation d’objets et la collecte de place sans verrous. Et comme JavaScript, Dart évite
la planification préemptive et la mémoire partagée (et donc les verrous). Les applications Flutter étant
compilées en code natif, elles ne nécessitent pas de pont lent entre les domaines (par exemple, JavaScript
vers natif). Ils démarrent aussi beaucoup plus vite.

• Dart permet à Flutter d’éviter le recours à un langage de présentation déclaratif distinct, tel que
JSX ou XML, ou à des générateurs d’interface visuelle distincts, car la présentation déclarative et pro-
grammatique de Dart est facile à lire et à visualiser. Et avec toute la mise en page dans une langue et à
un endroit, il est facile pour Flutter de fournir des outils avancés qui facilitent la mise en page.

• Les développeurs ont découvert que Dart est particulièrement facile à apprendre car il comporte
des fonctionnalités bien connues des utilisateurs de langages statiques et dynamiques.Toutes ces fonc-
tionnalités ne sont pas propres à Dart, mais leur combinaison constitue un atout qui confère à Dart une
puissance unique pour la mise en œuvre de Flutter. Tant pis, il est difficile d’imaginer que Flutter soit
aussi puissant qu’il est sans Dart.[10]
Pourquoi flutter ?
Google utilise Flutter pour plusieurs modules de l’assistant Google et pour l’interface utilisateur du
Google Home Hub, entre autres. Cela dit, même des fournisseurs de commerce en ligne, tels qu’eBay,
Groupon ou le groupe Alibaba, utilisent Flutter pour doter leurs applications web et mobiles d’un look
et de fonctionnalités uniformes.[11]

Multiplateforme :
Un produit ou système informatique multiplate-forme est un produit ou système pouvant fonctionner sur
plusieurs types de plates-formes ou d’environnements d’exploitation. Différents types de systèmes multi
plates-formes incluent des systèmes matériels et logiciels, ainsi que des systèmes qui impliquent des ver-
sions séparées pour chaque plate-forme, ainsi que d’autres systèmes plus vastes conçus pour fonctionner
de la même manière sur plusieurs plates-formes. La plateforme croisée est également connue en tant que
plate-forme indépendante[12]

Flutter offre la possibilité de créer une application compilée pour fonctionner à la fois sur Android et
iOS à partir de la même base de code. Tout en maintenant l’expérience utilisateur appropriée sur chaque
plate-forme.

Intégration directe avec Firebase :


Firebase fournit un support prêt à l’emploi pour un ensemble de services tels que le stockage en nuage,
les fonctions de nuage, les bases de données en temps réel, l’hébergement, l’authentification et bien plus
encore. Votre infrastructure est instantanément sans serveur (serverless), redondante et évolutive. Cela
signifie que vous n’avez pas à passer beaucoup de temps et de ressources à construire le backend. Il est
également simple de le combiner avec un outil permettant d’automatiser votre processus de développe-
ment et de publication, tel que Fastlane ; faciliter la livraison continue. Par conséquent, vous n’avez pas
besoin de support DevOps dédié dans votre équipe.

Performances :
l’application est compilée à l’avance en code ARM natif, pas au moment de l’exécution, comme dans
React Native. Cela donne de meilleures performances car il n’y a pas de pont JS au milieu pour analyser
et exécuter le code.

32
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE

Les avantages de Flutter

1. Base de code unique pour toutes les plateformes cibles majeures


2. Dart, un langage de programmation d’apprentissage facile pour les débutants
3. Concept « Tout est un widget » offrant de nombreuses opportunités
4. Exécution performante d’applications natives sur smartphones
5. Accès à des bibliothèques complètes d’éléments d’IU préconçus
6. Implémentation facile de flux de données pour la mise à jour continue des utilisateurs
7. Rechargement à chaud (« Hot Reload ») pour l’accélération des tests durant la phase de dévelop-
pement.[11]

Firebase
Firebase est un ensemble de services d’hébergement pour n’importe quel type d’application (Android,
iOS, Javascript, Node.js, Java, Unity, PHP, C++ ...). Il propose d’héberger en NoSQL et en temps réel
des bases de données, du contenu, de l’authentification sociale (Google, Facebook, Twitter et Github),
et des notifications, ou encore des services, tel que par exemple un serveur de communication temps réel.
Lancé en 2011 sous le nom d’Envolve, par Andrew Lee et par James Templin, le service est racheté par
Google en octobre 2014. Il appartient aujourd’hui à la maison mère de Google : Alphabet.

Toute l’implémentation et la gestion serveur de Firebase est à la charge exclusive de la société Alpha-
bet. Les applications qui utilisent Firebase intègrent une bibliothèque qui permet les diverses interactions
possibles.[13]

Figure 3.8 – Logo de Firebase

Les services de Firebase :


On peut diviser les services de Firebase en trois groupes :

1. Construction des meilleures applications ( Firestore Cloud, Kit ML BETA, Fonctions Cloud,
Authentification, Hébergement, Stockage en ligne, Base de données en temps réel)
2. Amélioration de la qualité de l’application ( Crashlytics, Suivi de la performance, Labora-
toire de test)
3. Développement d’entreprise ( Messagerie In-App, Google Analytics, Prédictions, Cloud Mes-
saging, Configuration à distance, Liens dynamiques, Indexation d’applications, Test A / B BETA)
Dans notre applications nous avons bénéficié des services déjà cité au dessus nous définissons les
suivants :

Firestore Cloud stocke et synchronise des données entre utilisateurs et appareils - à l’échelle mon-
diale - à l’aide d’une base de données NoSQL hébergée dans le cloud. Cloud Firestore vous offre une
synchronisation en direct et une assistance hors ligne, ainsi que des requêtes de données efficaces. Son
intégration avec d’autres produits Firebase vous permet de créer de véritables applications sans serveur.

Fonctions Cloud Étendez votre application avec du code d’arrière-plan personnalisé sans avoir à
gérer et à faire évoluer vos propres serveurs. Les fonctions peuvent être déclenchées par des événements,
émis par des produits Firebase, des services Google Cloud ou des tiers, à l’aide de Webhooks.

33
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE

Authentification gérez vos utilisateurs de manière simple et sécurisée. Firebase Auth propose plu-
sieurs méthodes d’authentification, notamment un courrier électronique et un mot de passe, des four-
nisseurs tiers tels que Google ou Facebook et l’utilisation directe de votre système de compte existant.
Construisez votre propre interface ou profitez de l’interface utilisateur open source entièrement person-
nalisable.

Authentification Stockez et partagez des contenus générés par les utilisateurs, tels que des images,
du son et de la vidéo, avec un stockage d’objets puissant, simple et économique, conçu à l’échelle de
Google. Les SDK Firebase pour le stockage en nuage ajoutent la sécurité Google aux téléchargements de
fichiers et aux téléchargements pour vos applications Firebase, quelle que soit la qualité du réseau.

Base de données en temps réel Stockez et synchronisez les données entre les utilisateurs et les
périphériques en temps réel à l’aide d’une base de données NoSQL hébergée dans le cloud. Les données
mises à jour se synchronisent sur les appareils connectés en quelques millisecondes. Les données restent
disponibles si votre application est déconnectée, offrant ainsi une expérience utilisateur exceptionnelle,
quelle que soit la connectivité réseau.

Laboratoire de test Exécutez des tests automatiques et personnalisés pour votre application sur
des périphériques virtuels et physiques hébergés par Google. Utilisez le laboratoire de test Firebase tout
au long de votre cycle de développement pour détecter les bogues et les incohérences afin de pouvoir
offrir une expérience inoubliable sur une grande variété de périphériques.

Liens dynamiques Utilisez les liens dynamiques pour offrir une expérience utilisateur personnalisée
pour iOS, Android et le Web. Vous pouvez les utiliser pour alimenter le Web mobile afin de générer des
conversions d’applications natives, le partage d’utilisateur à utilisateur, des campagnes sociales et mar-
keting, etc. Dynamic Links vous fournit les attributions dont vous avez besoin pour mieux comprendre
votre croissance mobile.

Pourquoi utiliser Firebase ?


Lorsqu’on développe une application, qu’elle soit destinée au grand public ou réservée à un usage interne
à l’entreprise, certaines fonctionnalités sont systématiquement requises, telles que la gestion des utilisa-
teurs, de la connexion et des notifications. La gestion de ces fonctionnalités est fastidieuse, répétitive si
votre SI se compose de plusieurs applications, et critiques en termes de sécurité, dans la mesure où l’on
va stocker des mots de passe. Firebase vous permet d’externaliser cette gestion, en même temps qu’il
vous offre la possibilité de proposer de manière unifiée des connexions Facebook, Twitter, Google...

De plus, Firebase offre des SDK pour chaque environnement de développement classique.

Cette API de haut niveau vous permet de gérer vos utilisateurs de manière transparente, à la fois
entre une application mobile, un back office et votre propre backend.[14]

Google APIs
Les API Google sont un ensemble d’interfaces de programmation d’applications (API) développées
par Google qui permettent la communication avec Google Services et leur intégration à d’autres services.
Parmi ceux-ci figurent Search, Gmail, Translate ou Google Maps. Les applications tierces peuvent utiliser
ces API pour exploiter ou étendre les fonctionnalités des services existants.

Les API fournissent des fonctionnalités telles que l’analyse, l’apprentissage automatique en tant que
service (l’API de prédiction) ou l’accès aux données utilisateur (lorsque l’autorisation de lire les données
est donnée). Un autre exemple important est une carte Google intégrée sur un site Web, qui peut être
réalisée à l’aide de l’API Static Maps, API Places ou de Google Earth.[15]

L’API (Books) s’appelle RESTful car elle est basée sur l’architecture REST qu’elle est basée sur le
protocole HTTP permettant de récupérer les données au format JSON.

Google Books

34
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE

Google Books (anciennement Google Books Search et Google Print et son nom de code Project Ocean)
est un service de Google Inc. qui effectue une recherche dans le texte intégral des livres et des magazines
scannés par Google et convertis en texte à l’aide de la reconnaissance optique de caractères. (OCR), et
stockés dans sa base de données numérique. Les livres sont fournis par les éditeurs et les auteurs, via
le programme Partenaires Google Books, ou par les partenaires bibliothèques de Google, via le projet
Library. De plus, Google s’est associé à plusieurs éditeurs de magazines pour numériser leurs archives.[16]
La nouvelle API v1 de Google Books vous permet d’accéder par programme à de nombreuses opérations
disponibles sur le site Web de Google Books. Vous pouvez l’utiliser pour créer des applications puissantes
offrant une intégration plus poussée avec Google Books. Les principales fonctionnalités de l’API sont les
suivantes :

1. rechercher et parcourir la liste des livres correspondant à une requête donnée.


2. afficher des informations sur un livre, notamment les métadonnées, la disponibilité et le prix, ainsi
que des liens vers la page d’aperçu.
3. gérer vos propres étagères.

3.2.3 .Outils utilisés


Lucidchart
Lucidchart, est une plateforme de collaboration en ligne, basée sur le cloud, permettant la création
de diagrammes et la visualisation de données, et autres schémas conceptuels. [17]

Créé par le Logiciel Lucide, est le fait de présenter sous forme de schéma à base de web en collabora-
tion et l’application d’organigramme. Il est construit sur les normes de web comme HTML5 et Javascript
et peut à ce titre être accédé de n’importe quel artifice avec un navigateur. Il peut être utilisé pour créer
des organigrammes, iPhone app les maquettes, les cartes d’esprit, les graphiques d’organisation, le site
Internet wireframes, les diagrammes d’UML, les diagrammes de réseau et beaucoup d’autres types de
diagramme. Ses capacités de collaboration en temps réel cassant terre sont ci-dessus et au-delà d’autre
application présentent sous forme de schéma sur le marché. Le Logiciel Lucide a lancé LucidPress, des
caractères en ligne et un logiciel de publication numérique, en octobre de 2013.[18]

Figure 3.9 – Logo Lucidchart

Figma
Figma est un éditeur de graphiques vectoriels et un outil de prototypage. Il est principalement basé sur
le web, avec des fonctionnalités hors ligne supplémentaires activées par des applications de bureau pour
MacOS et Windows. Les Figma Mirror companion apps pour Android et iOS permettent de visualiser
des prototypes Figma sur des appareils mobiles. L’ensemble des fonctionnalités de Figma est axé sur
l’utilisation dans la conception de l’interface utilisateur et de l’expérience utilisateur, en mettant l’accent
sur la collaboration en temps réel.[21]

35
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE

Figure 3.10 – Logo de Figma

Balsamiq Mockups
Balsamiq Mockups est un outil de conception d’interface utilisateur permettant de créer des structures
filaires (également appelées maquettes ou prototypes basse fidélité). Vous pouvez l’utiliser pour générer
des esquisses numériques de vos idées de produits afin de faciliter la discussion et la compréhension avant
l’écriture de tout code.[23]

Figure 3.11 – Logo de Balsamiq

3.3 Maquette Fonctionnelle


Le wireframe ou maquette fonctionnelle est un schéma utilisé lors de la conception d’une interface
pour définir les zones et composants qu’elle doit contenir. À partir d’un wireframe peut être réalisée
l’interface proprement dite par un graphiste. La démarche de recourir à des wireframes s’inscrit dans
une recherche d’ergonomie. Elle est surtout utilisée dans le cadre du développement logiciel et des sites
et applications Web. Le wireframe consiste concrètement en un croquis, un collage papier ou un schéma
numérique[22].

36
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE

Figure 3.12 – Maquette” Accueil”

Figure 3.13 – Maquette” Catégorie et Recherche”

37
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE

Figure 3.14 – Maquette” Partage”

Figure 3.15 – Maquette” Contact us”

38
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE

Figure 3.16 – Maquette” Profil”

3.4 Présentation de notre base de données

Figure 3.17 – Base de données “Utilisateur”

39
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE

Figure 3.18 – Base de données “Catégorie”

Figure 3.19 – Base de données “Livre”

Figure 3.20 – Base de données “Catégorie /pour relier les photos”

Figure 3.21 – Base de données “Catégorie/Url des photos”

40
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE

3.5 Interface de notre application

Figure 3.22 – Connexion/Inscription

Figure 3.23 – Accueil

41
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE

Figure 3.24 – Catégorie/ Recherche

Figure 3.25 – About

42
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE

Figure 3.26 – Profil/Modifier Profil

Figure 3.27 – Ajouté Livre/Livre

43
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE

Figure 3.28 – Contacter Nous

3.6 Conclusion
Ce dernier chapitre a pour but de rappeler les objectifs et contraintes de l’application. Ensuite nous
énumérons les différents composants et outils matériels et logiciels utilisés durant la réalisation de notre
projet. Enfin nous présentons nos maquettes et la base de données utilisée. Pour conclure, nous exposons
les fonctionnalités de l’application toutes illustrées par des captures d’écran.

44
Conclusion générale

Le travail présenté dans ce document de licence décrit les outils et les procédures, et la base de
connaissances nécessaire pour créer une application mobile, qui est une plateforme pour faciliter le pro-
cessus de partage de livres, elle touche une marge non négligeable de popularité. Elle peut servir, les
accros à la lecture, les débutants cherchant un moyen pour leur faciliter le choix et la retrouvaille des
livres et ainsi de suite.

Il s’agit d’un projet réalisé entre deux étudiants. Le projet nous a permis d’apprendre quelques leçons
importantes. Il nous a aussi permis de faire face à plusieurs contraintes à la fois telles que le manque
d’expérience et de communication et des connaissances techniques et de l’expérience véritablement ac-
quises grâce à la conception d’interface utilisateur pour une utilisation efficace de la documentation du
logiciel en ligne.

Nous espérons que ce projet sera une bonne expérience d’apprentissage et plus important encore,
qu’il devrait défier nos zones de confort et nos compétences. Dans un but particulier, un code en uti-
lisant un langage de programmation nouveaux, avant ce projet nous ne le connaissions pas. Parce que
nous manquons délibérément d’expérience et de connaissances techniques que nous utilisons, nous avons
adopté une stratégie qui a fait ses preuves dans notre situation actuelle. Il s’agit de créer en premier le
front-end de l’application utilise des données factices (données) indépendantes du back-end, puis rem-
place progressivement ces faux travaux Les données sont des données réelles extraites du serveur.

Ce travail reste une première version faite en utilisant les moyens relativement limités à notre dis-
position. Mais cela reste un bon point de départ qu’il serait intéressant de développer. Plusieurs points
pourraient améliorer ce modèle, nous citons :

- L’enrichissement de l’application en ajoutant de nouvelles fonctions permettant l’interaction entre


les utilisateurs telles que les conversations privées.

- Ajouter l’option de notation pour les livres(rating).

- Améliorer l’expérience utilisateur en ajoutant la fonction abonnés pour utilisateurs.

45
Webographie

[1] Qu’est-ce que le système d’information (SI) ? https://itsocial.fr/ consulté le (03-06-2021)


[2] OMG Document – ad/97-08-11 (Set of PDF versions of ad/97-08-02 through ad/97-08-09, v1.1).
https://www.omg.org/ consulté le (03-06-2021)
[3] About Goodreads. https://www.goodreads.com/ consulté le (06-06-2021)
[4] Amazon Acquires Social Reading Site Goodreads, Which Gives The Company A Social Advantage
Over Apple. http://techCrunch.com/ consulté le (06-06-2021)
[5] 5 applications gratuites pour les fans de lecture - Page Turners. http://pageturners-romans.com
consulté le (07-06-2021)
[6] Download Android Studio and SDK tools | Android Developers sur Android. http://developers.
android.com consulté le (30-05-2021)
[7] Google’s Dart language on Android aims for Java-free, 120 FPS apps | Ars Technica http:
//arstechnica.com consulté le (17-06-2021)
[8] Flutter architectural overview - Flutter | http://flutter.dev consulté le (15-06-2021)
[9] Langage de programmation Dart : Wikipedia, April 2019. Page Version ID :894124175. consulté le
(17-06-2021)
[10] Pourquoi Flutter utilise le langage Dart ? | Hacker Noon. https://hackernoon.com/
whats-revolutionary-about-flutter946915b09514 consulté le (16-06-2021)
[11] Flutter pour le développement d’applications multiplateforme - IONOS. https://ionos.fr/
digitalguide/sites-internet/developpement-we/flutter-cest-quoi/ consulté le (15-06-2021)
[12] What is Cross Platform ? - Definition from Techopedia. https://www.techopedia.com/ consulté
le (17-06-2021)
[13] Firebase (google.com) http://firebase.google.com consulté le (18-06-2021)
[14] Firebase | Axopen : http://axopen.com consulté le (18-06-2021)
[15] Google APIs. Wikipedia, January 2019. Page Version ID : 877520298. consulté le (18-06-2021)
[16] Google Books - Wikipedia. https://en.wikipedia.org/wiki/Google_Books consulté le (18-06-
2021)
[17] LucidChart Nabs 1 Million. https://techcrunch.com consulté le (30-05-2021)
[18] What does Lucidchart mean ? http://definitions.net/definition/LUCIDCHART consulté le (30-
05-2021)
[19] Beta version Definition from PC Magazine Encyclopedia. https://www.pcmag.com/encyclopedia/
term/38567/beta-version consulté le (20-06-2021)
[20] Informatique sans serveur — Wikipédia. https://fr.wikipedia.org/wiki/Informatique_sans_
serveur consulté le (02-07-2021)
[21] Figma Wants Designers to Collaborate Google-Docs Style | WIRED. https://www.wired.com
consulté le (03-07-2021)
[22] Wireframe (design) — Wikipédia. https://fr.wikipedia.org/wiki/Wireframe_(design)
consulté le (05-07-2021)
[23] Balsamiq Mockups 3 Application Overview - Balsamiq for Desktop Documentation | Balsamiq.
https://balsamiq.com/wireframes/desktop/docs/overview/ consulté le (05-07-2021)

46

Vous aimerez peut-être aussi