Les frameworks hybrides

Les frameworks hybrides

Dรฉmarche

Depuis des annรฉes, diffรฉrentes solutions ont รฉtรฉ proposรฉes pour traiter cette problรฉmatique du dรฉveloppement multi-plateforme. Parmi ces solutions nous trouvons lโ€™approche de lโ€™ingรฉnierie Dirigรฉe par les Modรจles (MDA) qui est une pratique d’ingรฉnierie des systรจmes utilisant les capacitรฉs des technologies informatiques pour dรฉcrire ร  la fois le problรจme (besoin) et sa solution ร  travers les modรจles, les concepts, et les langages. Cela peut simplifier le dรฉveloppement et rรฉduire le temps et le coรปt d’implรฉmentation. Le modรจle reprรฉsente clairement l’idรฉe de l’application ร  l’aide des outils de modรฉlisation comme UML (Unified Modeling Language) et s’il y a des erreurs, il est facile et rapide de corriger en revoyant et modifiant les modรจles. L’idรฉe de l’approche d’ingรฉnierie dirigรฉe par les modรจles, que nous avons adoptรฉ pour notre travail, est que le dรฉveloppement de l’application est guidรฉ par les modรจles. Elle est trรจs bien adaptรฉe avec l’approche Cross-Platform2 afin de rรฉaliser l’application mobile pour des diffรฉrents systรจmes d’exploitation. Le code est gรฉnรฉrรฉ ร  partir des modรจles qui sont dรฉfinis par le dรฉveloppeur. En effet, en premier lieu, nous avons conรงu et dรฉveloppรฉ ร  lโ€™aide de lโ€™outil Xtext, une grammaire gรฉnรฉrale permettant de dรฉfinir un langage dรฉdiรฉ aux applications mobiles DSL3 (Domain Specific Language). En second lieu, et en se basant sur le mรฉta-modรจle gรฉnรฉrรฉ par Xtext ร  partir de notre grammaire, nous proposons un atelier de modรฉlisation graphique ร  lโ€™aide de lโ€™outil Sirius pour gรฉnรฉrer des modรจles indรฉpendants des plate-formes PIM (Platform Independent Model). Ces derniers, seront utilisรฉs pour dรฉfinir la sรฉmantique de notre langage en les traduisant en un code react-native compatible avec les trois plate-formes iOS, android et WindowsPhone.

Le dรฉveloppement hybride

Certaines communautรฉs ont trรจs bien compris le problรจme de compatibilitรฉ et proposent dโ€™autres mรฉthodes qui permettent, avec un seul code, de lancer des applications sur les diffรฉrentes plate-formes d’exรฉcution, โ€œWrite once, run everyWhereโ€. Une application hybride est dรฉveloppรฉe ร  partir des langages web (HTML, JavaScript, CSSโ€ฆ.), et qui sโ€™appuie sur des technologies natives mobiles afin de pouvoir utiliser des fonctionnalitรฉes du smartphone telles que : camรฉra, GPS, etcโ€ฆ, ces types dโ€™applications sont aussi tรฉlรฉchargรฉes depuis les magasins dโ€™applications en ligne et installรฉes sur le mobile. La solution la plus connue รฉtant Titanium Platform pour dรฉcrire une application en utilisant du JavaScript et leur API, une autre nouvelle solution qui vient d’apparaรฎtre est lโ€™utilisation du framework react-native. Lโ€™avantage majeur de ces solutions est de coder avec un langage connu qui est le JavaScript pour avoir un code unique compatible avec plusieurs plate-formes, par exemple, lโ€™utilisation du framework react-native permet dโ€™avoir un code source dโ€™applications mobiles exรฉcutables dans trois systรจmes dโ€™exploitation : android, iOS et WindowsPhone.

React-native

Cela fait dรฉjร  plus d’un an que lโ€™annonce dโ€™une possible rรฉvolution dans le dรฉveloppement mobile est faite par facebook : il sโ€™agit de React-Native ou comme certains lโ€™appellent ยซ La nouvelle bombe de chez facebook ยป. [MaxLab, 2015] Comme react, react-native est un framework mobile hybride dรฉveloppรฉ par Facebook en 2015, ร  la diffรฉrence de son grand frรจre qui vise les interfaces web, react-native cible les applications natives. [Antoine, 2017]. React-native comme son nom lโ€™indique est basรฉ sur react, et il repose sur la mรชme API que son grand frรจre, sans offrir pour autant la mรชme librairie JavaScript. Il est trรจs rรฉcent sur le marchรฉ des outils multi-plateformes, il adopte la philosophie: โ€Learn once, write everywhereโ€ [MaxLab, 2015], car il utilise le langage JavaScript ainsi que react comme couche dโ€™abstraction sans rรฉรฉcrire un nouveau framework mobile, la seule diffรฉrence ici est au lieu de crรฉer des รฉlรฉments de DOM12 [TECFA, 2003], nous allons piloter des composants natifs. La figure suivante est une comparaison entre lโ€™architecture des deux moteurs :

Ce qui est intรฉressant ici est lโ€™utilisation des ingrรฉdients de base :

JavaScript, des feuilles de style CSS et mรชme des balises HTML ce qui donne la mรชme syntaxe que dans un navigateur, seuls les composants changent. Comme react, les composants sont le coeur du react-native, ils s’intรจgrent bien dans toute application react-native et peuvent รชtre utilisรฉs avec du code JS. Chaque composant graphique crรฉรฉ possรจde un template, des รฉvรจnements, des paramรจtres et un รฉtat, de maniรจre complรจtement indรฉpendante aux autres composants. Chaque composant peut avoir des sous composants ainsi de suite, pour obtenir ร  la fin un seul composant global qui englobe tous les sous composants qui lui appartiennent. Parmi les avantages de ces composants, cโ€™est quโ€™ils sont : rรฉutilisables, testables, maintenables [Sandrine, 2017]. Et dans la figure suivante nous prรฉsentons quelques exemples de composants et รฉlรฉments react-native:

Dans un premier temps, react-native est utilisรฉ pour crรฉer des applications mobiles compatibles avec les deux plate-formes Android et iOS, et pas trรจs longtemps d’aujourd’hui exactement avril 2017 il intรจgre la troisiรจme plate-forme qui est WindowsPhone. De plus en plus react-native devient cรฉlรจbre, sa popularitรฉ n’a cessรฉ de progresser ces derniers mois, car il prรฉsente beaucoup de points forts ce qui le rend spรฉcial, les derniรจres statistiques montrent que 78% des dรฉveloppeurs s’intรฉressent ร  l’apprentissage de cette nouvelle technologie comme le montre diagramme ร  secteur suivant :

Choix du framework

Il existe plusieurs solutions hybrides multi-plateformes, comme Cordova, Ionic et react-native, la question qui se pose toujours dans le dรฉveloppement mobile est : quel framework choisir pour notre future application ? Pour rรฉpondre ร  cette question nous faisons une comparaison entre ces diffรฉrents frameworks. Cordova et d’autres types comme Ionic, permettent la crรฉation des applications mobiles avec un accรจs aux API natives (l’accรฉlรฉromรจtre, camรฉra…). Cรดtรฉ interface graphique, ils sont conรงus autour d’une WebView qui est affichรฉe en pleine รฉcran, ce qui veut dire que leurs interfaces sont basรฉes sur des technologies web classiques HTML/CSS/JS. Pour plus de fonctionnalitรฉs, il est possible d’รฉtendre lโ€™API du navigateur en installant des plugins afin d’enrichir le moteur JavaScript. Mais le problรจme est que les performances de ses applications seront donc รฉquivalentes ร  une application web, et non une application mobile. Avec react-native, il est obligatoire de composer chaque interface ร  l’aide de composants React, ces derniers font appel au layout natif de chaque plateforme. Les performances de l’UI sont donc quasi similaires aux performances natives. [Zoontek, 2016]

Pour y voir plus clair, nous avons rรฉsumรฉ ici les possibilitรฉs et les limites de ces diffรฉrentes technologies de dรฉveloppement : De plus, il offre un cadre multi-plateforme pour l’avenir qui dรฉpasse lโ€™api iOS et Android, car il couvrira selon les prรฉvisions mรชme les tรฉlรฉviseurs intelligents, consoles Xbox, pรฉriphรฉriques Windows et la liste reste longue, il sโ€™appuie sur une communautรฉ active et il a une interface ergonomique. Pour terminer, vous lโ€™avez compris, notre choix se tourne vers react-native qui est une technologie trรจs prometteuse avec un รฉnorme potentiel, et qui a dรฉjร  รฉtรฉ apprรฉciรฉe par des gรฉants comme Baidu, Discovery, Instagram et d’autres, elle est ร  deux pas de devenir une alternative ร  part entiรจre ร  Objective C, Swift et Java, en particulier sur des projets qui ne sont pas critiques.

Les transformations des modรจles MDA

Les transformations sont au coeur de lโ€™approche MDA. Elles permettent convertir un modรจle en un autre modรจle et dโ€™obtenir diffรฉrentes vues de ce dernier, de le raffiner ou de lโ€™abstraire, de plus elles permettent de passer dโ€™un langage vers un autre. Elle assure le passage dโ€™un ou plusieurs modรจles dโ€™un niveau dโ€™abstraction donnรฉ vers un ou plusieurs autres modรจles du mรชme niveau (transformation horizontale) ou dโ€™un niveau diffรฉrent (transformation verticale). Les transformations horizontales sont de type PIM vers PIM ou bien PSM vers PSM. Les transformations verticales sont de type PIM vers PSM ou bien PSM vers code. Les transformations inverses verticales (rรฉtro-ingรฉnierie) sont type PSM vers PIM ou bien code vers PSM. [Fourati, 2010] Tout d’abord, nous trouvons le modรจle CIM (Computation Independent Model), nous sommes exactement dans le niveau M0 [Figure III.1] ou le monde rรฉel qui rรฉsume les besoins de l’utilisateur et les fonctionnalitรฉs du systรจme.

La suite du processus est la construction des modรจles PIM (Platform Independent Model) partielles ร  partir des modรจles CIM, cela permet de vรฉhiculer lโ€™information contenue dans les CIM vers les modรจles PIM. Ce dernier sera transformรฉ [PIMโ†’ PIM] pour enrichir les PIM partielles en ajoutant des informations et en spรฉcifiant leur contenu. Le modรจle PSM (Platform Specific Model) est obtenu dโ€™une transformation de modรจle PIM. Il faut noter quโ€™un modรจle PIM doit persister ร  lโ€™apparition de nouveaux PSM. Dans le cas oรน le modรจle d’analyse et de conception (PIM), ainsi que le modรจle de code (PSM) reprรฉsentent le systรจme, nous sommes exactement dans le niveau M1 [Figure III.1] de lโ€™architecture de lโ€™approche MDA. Remarque Derniรจre รฉtape est la transformation du modรจle PSM vers un code source, cette รฉtape n’est pas ร  proprement dit considรฉrรฉe comme une transformation par lโ€™approche MDA car cโ€™est une transformation modรจleโ†’ texte, nous pouvons plutรดt la considรฉrer comme une รฉtape de retranscription textuelle du modรจle PSM. Le code source obtenu est compatible avec une ou plusieurs plate-formes dโ€™exรฉcution.

Le rapport de stage ou le pfe est un document d’analyse, de synthรจse et d’รฉvaluation de votre apprentissage, c’est pour cela rapport gratuit propose le tรฉlรฉchargement des modรจles gratuits de projet de fin d’รฉtude, rapport de stage, mรฉmoire, pfe, thรจse, pour connaรฎtre la mรฉthodologie ร  avoir et savoir comment construire les parties d’un projet de fin d’รฉtude.

Table des matiรจres

Introduction Gรฉnรฉrale
I.Introduction
II.Problรฉmatique
III. Dรฉmarche
IV.Plan de travail
Chapitre I : Dรฉveloppement des applications mobiles
I.Introduction
II.Applications mobiles
III. Les solutions pour dรฉvelopper une application mobile
III.1. Le dรฉveloppement natif
III.2. Le dรฉveloppement web(HTML)
III.3. Le dรฉveloppement hybride
Choix de la solution
Conclusion
Chapitre II : Les frameworks hybrides
I.Introduction
II.Frameworks des applications mobiles hybrides
II.1. Apache Cordova
II.2. Ionic
II.3. React-native
III. Choix du framework
Conclusion
Chapitre III : Lโ€™approche de lโ€™ingรฉnierie dirigรฉ par les modรจles MDA
I.Introduction
II.Gรฉnรฉralitรฉ sur lโ€™IDM
III. Lโ€™approche de lโ€™ingรฉnierie dirigรฉe par les modรจles MDA
III.1. Les modรจles MDA
III.2. Les transformations des modรจles MDA
Les objectifs de lโ€™approche MDA
Conclusion
Chapitre IV : Atelier graphique de modรฉlisation dโ€™applications mobiles
I.Introduction
II.Dรฉtails de la solution proposรฉe
II.1. Crรฉation du mรฉta-modรจle
II.2. Manipulation du modรจle
II.3. Gรฉnรฉration du code source
III. Application de la mรฉthode proposรฉe
III.1. Processus de dรฉveloppement
III.2. Evaluation
Conclusion
Conclusion Gรฉnรฉrale
Conclusion
Perspectives
Rรฉfรฉrences Bibliographique
Annexes
I.Annexe A : Dรฉfinir une grammaire DSL avec Xtext
I.1. Gรฉnรฉralitรฉ sur les DSLs
I.2. Types de DSL
I.3. Conclusion
Annexe B : Crรฉation dโ€™un รฉditeur graphique avec sirius
II.1. Gรฉnรฉralitรฉ sur Sirius
II.2. Commencer avec sirius
II.3. Conclusion
Liste des figures
Liste des tableaux

Rapport PFE, mรฉmoire et thรจse PDFTรฉlรฉcharger le rapport complet

Tรฉlรฉcharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiรฉe. Les champs obligatoires sont indiquรฉs avec *