{"id":1660,"date":"2023-01-15T10:19:31","date_gmt":"2023-01-15T09:19:31","guid":{"rendered":"https:\/\/jagullo.fr\/blog\/?p=1660"},"modified":"2023-01-15T10:30:17","modified_gmt":"2023-01-15T09:30:17","slug":"choisir-un-framework-de-developpement-web-ou-mobile","status":"publish","type":"post","link":"https:\/\/jagullo.fr\/blog\/choisir-un-framework-de-developpement-web-ou-mobile\/","title":{"rendered":"Choisir un framework de d\u00e9veloppement web ou mobile"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">D\u00e9finition d&rsquo;un framework web ou cadriciel<\/h2>\n\n\n\n<p>Avant de faire un tour d&rsquo;horizon des diff\u00e9rents <strong>frameworks web<\/strong> et de leurs utilit\u00e9s, nous allons commencer par d\u00e9finir ce que c&rsquo;est. Un framework est un ensemble de composants logiciels et de bonnes pratiques pour <strong>faciliter le d\u00e9veloppement et la maintenance<\/strong> d&rsquo;application web ou de site Internet. La plupart de ces solutions sont disponibles en open source, car elles sont d\u00e9velopp\u00e9es par une communaut\u00e9 d&rsquo;experts et de passionn\u00e9s pour les aider dans leurs travaux. Cet ensemble d&rsquo;outils va accompagner le d\u00e9veloppeur dans la r\u00e9alisation de son projet afin de bien structurer son code dans le respect des recommandations. <\/p>\n\n\n\n<p>Il ne faut pas le confondre avec une librairie, qui elle sert \u00e0 une fonctionnalit\u00e9 bien pr\u00e9cise de l&rsquo;application. Un cadriciel va proposer des fonctionnalit\u00e9s en rapport avec l&rsquo;environnement dans lequel il va \u00eatre impl\u00e9ment\u00e9. Un framework d\u00e9di\u00e9 au d\u00e9veloppement web peut proposer par exemple <strong>un routeur<\/strong> pour faciliter la navigation entre les pages ou un syst\u00e8me de <strong>gestion des formulaires<\/strong> pour d\u00e9tecter les erreurs. En plus des outils int\u00e9gr\u00e9s, le code va \u00eatre structur\u00e9 de fa\u00e7on pertinente en respectant des patrons de conception comme le MCV. Chaque langage de programmation poss\u00e8de un framework plus ou moins d\u00e9velopp\u00e9 servant \u00e0 la conception d&rsquo;application m\u00e9tier.<\/p>\n\n\n\n<p>En d\u00e9veloppement web on distingue g\u00e9n\u00e9ralement 2 grandes cat\u00e9gories que sont <strong>le front-end <\/strong>et<strong> le back-end<\/strong>. Un framework front-end sert \u00e0 d\u00e9velopper l&rsquo;interface client et le back-end quant \u00e0 lui est utilis\u00e9 au niveau du serveur pour l&rsquo;enregistrement des donn\u00e9es. Enfin il est possible d&rsquo;int\u00e9grer plusieurs frameworks compl\u00e9mentaires, mais ils doivent \u00eatre utilis\u00e9s si le projet le n\u00e9cessite et qu&rsquo;ils ont une r\u00e9elle utilit\u00e9 pour le d\u00e9veloppeur et la bonne conception de l&rsquo;application.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jagullo.fr\/blog\/wp-content\/uploads\/2023\/01\/illustration_framework-web.jpg\" alt=\"\" class=\"wp-image-2705\" width=\"720\" height=\"480\"\/><figcaption class=\"wp-element-caption\">Pr\u00e9sentation des frameworks pour le d\u00e9veloppement web<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Pour l&rsquo;int\u00e9gration d&rsquo;une interface web responsive<\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image alignleft size-full is-resized paragraph-img\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jagullo.fr\/blog\/wp-content\/uploads\/2023\/01\/logo_bootstrap.png\" alt=\"Boostrap un cadriciel pour le responsive web design\" class=\"wp-image-2600\" width=\"100\" height=\"80\"\/><figcaption class=\"wp-element-caption\">Bootstrap<\/figcaption><\/figure>\n\n\n\n<p><strong>Bootstrap<\/strong> est un framework CSS \/ JavaScript pour le d\u00e9veloppement d&rsquo;interface utilisateur. Il peut \u00eatre incorpor\u00e9 avec n&rsquo;importe quel framework r\u00e9actif comme Angular ou avec Symfony. Il est d\u00e9velopp\u00e9 par Twitter depuis 2011 et il est devenu le framework CSS le plus populaire. Int\u00e9gr\u00e9 dans la plupart des templates gratuits et payants, ce framework permet de r\u00e9aliser une interface graphique de sites Internet responsive et propose de nombreuses fonctionnalit\u00e9s.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Pour la conception d&rsquo;application client en JavaScript<\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image alignright size-full is-resized paragraph-img\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jagullo.fr\/blog\/wp-content\/uploads\/2023\/01\/logo_angular.png\" alt=\"Le framework Angular pour la cr\u00e9ation d'interface moderne\" class=\"wp-image-2599\" width=\"100\" height=\"107\"\/><figcaption class=\"wp-element-caption\">Angular<\/figcaption><\/figure>\n\n\n\n<p><strong>Angular<\/strong> est un framework JavaScript pour le d\u00e9veloppement d&rsquo;application web et mobile. D\u00e9velopp\u00e9 par Google depuis 2010, il propose de nombreux outils pour r\u00e9aliser une interface moderne et r\u00e9active. Il int\u00e8gre un routeur pour la navigation, la gestion des formulaires, un syst\u00e8me d&rsquo;optimisation d&rsquo;image, un support de requ\u00eates HTTP, un moteur d&rsquo;animation et de transition, etc. C&rsquo;est un framework front-end tr\u00e8s complet qui peut \u00eatre compil\u00e9 en une application mobile avec NativeScript.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image alignleft size-full is-resized paragraph-img\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jagullo.fr\/blog\/wp-content\/uploads\/2023\/01\/logo_vuejs.png\" alt=\"Le framework Vuejs pour la cr\u00e9ation d'interface r\u00e9active\" class=\"wp-image-2603\" width=\"100\" height=\"86\"\/><figcaption class=\"wp-element-caption\">Vuejs<\/figcaption><\/figure>\n\n\n\n<p><strong>Vuejs<\/strong> est un framework JavaScript d\u00e9velopp\u00e9 depuis 2014 par Evan You un ancien ing\u00e9nieur de Google utilisant Angular. Il se pr\u00e9sente comme un framework plus l\u00e9ger que ce dernier. Il permet de r\u00e9aliser des interfaces r\u00e9actives mais propose moins de fonctionnalit\u00e9s que Angular. Cependant la structure du code source des composants est plus simple et bien pens\u00e9. De nombreuses librairies sont disponibles et il peut \u00eatre compil\u00e9 en application native sur support mobile avec la biblioth\u00e8que NativeScript.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Pour la conception d&rsquo;application web en PHP<\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image alignright size-full is-resized paragraph-img\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jagullo.fr\/blog\/wp-content\/uploads\/2023\/01\/logo_symfony.png\" alt=\"Symfony est un framework PHP \u00e9dit\u00e9 par SensioLabs\" class=\"wp-image-2602\" width=\"100\" height=\"100\" srcset=\"https:\/\/jagullo.fr\/blog\/wp-content\/uploads\/2023\/01\/logo_symfony.png 200w, https:\/\/jagullo.fr\/blog\/wp-content\/uploads\/2023\/01\/logo_symfony-150x150.png 150w\" sizes=\"(max-width: 100px) 100vw, 100px\" \/><figcaption class=\"wp-element-caption\">Symfony<\/figcaption><\/figure>\n\n\n\n<p><strong>Symfony<\/strong> est un framework complet pour la conception d&rsquo;application web. D\u00e9velopp\u00e9 par SensioLabs depuis 2005, il propose grande liste de fonctionnalit\u00e9s. De la structure MVC au routage, \u00e0 la gestion des formulaires en passant par le moteur de template Twig ou de l&rsquo;incorporation de l&rsquo;ORM Doctrine pour la gestion des bases de donn\u00e9es, Symfony n\u00e9cessite des formations et m\u00eame des certifications. Il int\u00e8gre une CLI permettant la g\u00e9n\u00e9reration de code facilitant beaucoup la programmation.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image alignleft size-full is-resized paragraph-img\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jagullo.fr\/blog\/wp-content\/uploads\/2023\/01\/logo_slim.png\" alt=\"Le micro framework Slim est adapt\u00e9 pour la cr\u00e9ation d'API\" class=\"wp-image-2601\" width=\"150\" height=\"73\"\/><figcaption class=\"wp-element-caption\">Slim<\/figcaption><\/figure>\n\n\n\n<p>Enfin pour terminer <strong>Slim<\/strong> est un micro-framework qui permet avant tout de structurer son code. Il incorpore un routeur et il est tr\u00e8s bien adapt\u00e9 pour la conception d&rsquo;API c\u00f4t\u00e9 serveur. Il est l\u00e9ger et s&rsquo;utilise avec n&rsquo;importe quelle librairie PHP. Il peut \u00eatre coupl\u00e9 avec un framework JavaScript afin de g\u00e9rer une base de donn\u00e9es serveur et renvoyer les donn\u00e9es au client. Il permet la cr\u00e9ation de composants middleware injectant du code avant ou apr\u00e8s le traitement de la requ\u00eate.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Les frameworks web dans le monde professionnel<\/h2>\n\n\n\n<p>Dans le milieu professionnel, l&rsquo;utilisation des frameworks est devenue une n\u00e9cessit\u00e9. En effet connaitre un framework pr\u00e9cis <strong>peut \u00eatre requis afin de rejoindre une \u00e9quipe<\/strong> de d\u00e9veloppement sur un projet. En plus de devoir connaitre le langage de programmation, il est donc n\u00e9cessaire de savoir utiliser le cadriciel incorpor\u00e9 \u00e0 l&rsquo;application web. Aussi la popularit\u00e9 d&rsquo;un framework va d\u00e9pendre de la localisation. En effet les technologies utilis\u00e9es en Europe par les d\u00e9veloppeurs sont diff\u00e9rentes de l&rsquo;utilisation faite aux \u00c9tats-Unis ou dans un pays asiatique.<\/p>\n\n\n\n<p>Avant de choisir un framework, il faut regarder plusieurs choses pour ne pas rencontrer trop de difficult\u00e9s. Premi\u00e8rement il y a-t-il <strong>une communaut\u00e9 <\/strong>autour de cette technologie afin de pouvoir trouver des r\u00e9ponses facilement durant la phase de d\u00e9veloppement. Ensuite il faut v\u00e9rifier que le framework n&rsquo;est pas en fin de vie afin d&rsquo;\u00e9viter d&rsquo;incorporer une technologie qui va \u00eatre obsol\u00e8te dans ses applications ou ses sites Internet. Enfin tester <strong>la compatibilit\u00e9 du framework<\/strong> avec la version du langage de programmation que l&rsquo;on doit mettre en production.<\/p>\n\n\n\n<p>Un framework peut \u00eatre difficile \u00e0 appr\u00e9hender et peut <strong>n\u00e9cessiter une formation d\u00e9di\u00e9e<\/strong> afin de le maitriser. Si on a jamais utilis\u00e9 ce genre d&rsquo;outil, \u00e7a peut \u00eatre compliqu\u00e9 au d\u00e9but de comprendre comment l&rsquo;installer, de le configurer et d\u00e9velopper tout une application. Une fois maitris\u00e9, un framework procure un avantage ind\u00e9niable aussi bien en terme de comp\u00e9tence que de comp\u00e9titivit\u00e9. Il permet de r\u00e9aliser des applications complexes<strong>,<\/strong> faciles \u00e0 maintenir et \u00e9volutives. C&rsquo;est un outil qui va \u00eatre compl\u00e9mentaire au langage de programmation utilis\u00e9 et qui peut s&rsquo;int\u00e9grer avec des librairies externes.<\/p>\n<div class=\"list-tags\"><a href=\"https:\/\/jagullo.fr\/blog\/tag\/bootstrap\/\" class=\"link-tag\" title=\"Bootstrap\">Bootstrap<\/a><a href=\"https:\/\/jagullo.fr\/blog\/tag\/css-sass-less\/\" class=\"link-tag\" title=\"CSS \/ SASS \/ LESS\">CSS \/ SASS \/ LESS<\/a><a href=\"https:\/\/jagullo.fr\/blog\/tag\/design-pattern\/\" class=\"link-tag\" title=\"Design Pattern\">Design Pattern<\/a><a href=\"https:\/\/jagullo.fr\/blog\/tag\/javascript\/\" class=\"link-tag\" title=\"JavaScript\">JavaScript<\/a><a href=\"https:\/\/jagullo.fr\/blog\/tag\/php\/\" class=\"link-tag\" title=\"PHP\">PHP<\/a><\/div>","protected":false},"excerpt":{"rendered":"<p>D\u00e9finition d&rsquo;un framework web ou cadriciel Avant de faire un tour d&rsquo;horizon des diff\u00e9rents frameworks web et de leurs utilit\u00e9s, nous allons commencer par d\u00e9finir ce que c&rsquo;est. Un framework est un ensemble de composants logiciels et de bonnes pratiques pour faciliter le d\u00e9veloppement et la maintenance d&rsquo;application web ou de site Internet. La plupart [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2708,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[9],"tags":[23,28,26,33,27],"class_list":["post-1660","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-outils-et-technos","tag-bootstrap","tag-css-sass-less","tag-design-pattern","tag-javascript","tag-php","et-has-post-format-content","et_post_format-et-post-format-standard"],"_links":{"self":[{"href":"https:\/\/jagullo.fr\/blog\/wp-json\/wp\/v2\/posts\/1660","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jagullo.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jagullo.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jagullo.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jagullo.fr\/blog\/wp-json\/wp\/v2\/comments?post=1660"}],"version-history":[{"count":3,"href":"https:\/\/jagullo.fr\/blog\/wp-json\/wp\/v2\/posts\/1660\/revisions"}],"predecessor-version":[{"id":2706,"href":"https:\/\/jagullo.fr\/blog\/wp-json\/wp\/v2\/posts\/1660\/revisions\/2706"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jagullo.fr\/blog\/wp-json\/wp\/v2\/media\/2708"}],"wp:attachment":[{"href":"https:\/\/jagullo.fr\/blog\/wp-json\/wp\/v2\/media?parent=1660"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jagullo.fr\/blog\/wp-json\/wp\/v2\/categories?post=1660"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jagullo.fr\/blog\/wp-json\/wp\/v2\/tags?post=1660"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}