Académique Documents
Professionnel Documents
Culture Documents
Département : Informatique
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
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.
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.
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
5
Table des figures
6
TABLE DES FIGURES
7
Glossaire et acronymes
SI Système d’information.
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.
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.
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]
Diagramme de comportement
-Diagramme de cas d’utilisation
-Diagramme états-transitions
11
CHAPITRE 1. ETAT DE L’ART
-Diagramme d’activité
Exemple
Diagramme d’activité
Définition
12
CHAPITRE 1. ETAT DE L’ART
Exemple
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
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
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.
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 :
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
Les avantages :
Les inconvénients :
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 :
17
CHAPITRE 1. ETAT DE L’ART
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 .
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
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
L’ajout d’un livre est assez simple, l’utilisateur doit juste remplir les champs et valider l’ajout.
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
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.
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
Pour ajouter un livre , l’utilisateur remplit un formulaire avec les informations correspondantes et il
valide.
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
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
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.
Machine secondaire :
1. Marque : Asus
2. Système d’exploitation : Windows 10
3. Microprocesseur : Intel Core i5
4. Mémoire vive : 16 Go
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.
L’émulateur
C’est la machine virtuelle
28
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE
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.
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.
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.
Le but de cette conception est de vous aider à faire plus avec moins de code.
30
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE
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]
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.
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
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]
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.
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 :
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]
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
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]
36
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE
37
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE
38
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE
39
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE
40
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE
41
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE
42
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE
43
CHAPITRE 3. IMPLÉMENTATION ET MISE EN ŒUVRE
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 :
45
Webographie
46