{"id":34202,"date":"2019-12-20T15:25:25","date_gmt":"2019-12-20T14:25:25","guid":{"rendered":"https:\/\/blog.jetbrains.com\/fr\/?p=431"},"modified":"2020-01-14T09:36:30","modified_gmt":"2020-01-14T08:36:30","slug":"de-lart-pour-votre-desktop","status":"publish","type":"post","link":"https:\/\/blog.jetbrains.com\/fr\/2019\/12\/20\/de-lart-pour-votre-desktop\/","title":{"rendered":"De l&#8217;art pour votre desktop"},"content":{"rendered":"Pour beaucoup de d\u00e9veloppeurs,\u00a0coder est un art.\r\nJetBrains partage cette id\u00e9e et notre Artwork Generator, qui r\u00e9sulte de la rencontre entre cr\u00e9ativit\u00e9 et science, en atteste.\r\n\r\n\r\n\r\nDepuis sa cr\u00e9ation en 2017\u00a0nous avons d\u00e9velopp\u00e9 JetBrains Artwork Generator en continu et nous vous avions pr\u00e9sent\u00e9 ses premi\u00e8res am\u00e9liorations en 2018.\r\n\r\nNous arrivons \u00e0 pr\u00e9sent \u00e0 la fin de 2019 et continuons \u00e0\u00a0utiliser le potentiel illimit\u00e9 de la technologie pour le faire \u00e9voluer.\r\nNouveaut\u00e9s\r\nNous utilisons notre art g\u00e9n\u00e9r\u00e9 par code pour cr\u00e9er des illustrations originales pour tous nos \u00e9crans de d\u00e9marrage, banni\u00e8res et graphismes pour les publications des nouvelles versions de nos outils. Chacun de nos produits dispose d'une identit\u00e9 graphique unique.\r\n\r\n Cette version d'Artwork Generator cr\u00e9e des graphismes anim\u00e9s et statiques \u00e0 partir du mod\u00e8le de calcul des\u00a0metaballs, qui pr\u00e9dit les interf\u00e9rences de gouttes de fluide (ou sph\u00e8res \u00e9lastiques) entre elles dans le vide.\r\n\r\n\r\n\r\nLes\u00a0\u00e9crans de veille et fonds d'\u00e9cran de JetBrains sont disponibles sur la page Art du desktop de notre site.\r\n\r\nSi vous \u00eates \u00e0 la recherche de quelque chose d'unique, notre g\u00e9n\u00e9rateur vous permet de produire des graphismes personnalis\u00e9s\u00a0:\u00a0code2art.jetbrains.com.\r\n\r\nVoici quelques exemples de ce que vous pouvez cr\u00e9er avec le\u00a0g\u00e9n\u00e9rateur.\r\n\r\nMetarings\r\n\r\n\r\nMyopia and biomorphs\r\n\r\n\r\nKhokhloma\r\n\r\n\r\nChromatic Holes\r\n\r\n\r\nARRT !\r\n\r\n\r\nVous pouvez utiliser les \u00e9crans de veille et les fonds d'\u00e9cran pour votre bureau, mais aussi comme\u00a0arri\u00e8re-plan de votre EDI JetBrains. Consultez ce guide pour des instructions \u00e9tape par \u00e9tape.\u00a0\r\nLes d\u00e9tails techniques\r\nNous avons poursuivi le d\u00e9veloppement du g\u00e9n\u00e9rateur\u00a0avec le\u00a0langage Elm, et l'animation utilise la biblioth\u00e8que Elm-WebGL.\r\n\r\nL'approche fonctionnelle et\u00a0le typage strict nous ont permis de\u00a0reconstruire\u00a0enti\u00e8rement la structure du projet en quelques semaines. Les couches sont d\u00e9sormais v\u00e9ritablement modulaires et vous pouvez les activer ou les d\u00e9sactiver pour composer les effets visuels de votre choix. Vous pouvez utiliser n'importe quelle source graphique comme couche : animation de tableaux 2D, WebGL avec des scripts shaders, du simple HTML ou un SVG (\u00e9galement anim\u00e9), etc. Une couche peut m\u00eame \u00eatre \u00e9crite en JavaScript et incluse dans le syst\u00e8me.\r\n\r\nC'est possible gr\u00e2ce \u00e0 l'Architecture Elm , similaire \u00e0 celle utilis\u00e9e pour les composants imbriqu\u00e9s. Chaque couche a son cycle Model\/Update\/View, est responsable de l'importation et de l'exportation et peut \u00e9galement recevoir des \u00e9v\u00e9nements globaux, tels que \"I feel lucky\". Dans le cas de l'\u00e9v\u00e9nement \"I feel lucky\", la couche elle-m\u00eame g\u00e9n\u00e8re une version al\u00e9atoire de son mod\u00e8le.\r\n\r\nD'un point de vue technique, Elm est un excellent choix pour g\u00e9n\u00e9rer des graphismes :\r\n\r\n\tIl nous aide \u00e0 d\u00e9crire le mod\u00e8le de couches ainsi que toutes les structures complexes en utilisant les types de donn\u00e9es alg\u00e9briques dans leur forme la plus pure, et c'est le moyen le plus simple et le plus naturel de le faire pour nous.\r\n\tCette fa\u00e7on fonctionnelle de programmer est extr\u00eamement conviviale avec des algorithmes g\u00e9n\u00e9ratifs ; il est facile de les s\u00e9parer en fonctions ind\u00e9pendantes et de les r\u00e9utiliser avec n'importe quel type d'entr\u00e9e.\r\n\tCombin\u00e9s, les types de donn\u00e9es alg\u00e9briques et les fonctionnalit\u00e9s nous aident \u00e0 organiser le code de fa\u00e7on modulaire. Il est facile de d\u00e9brancher ou de brancher ce que l'on souhaite.\r\n\tLe code dans Elm est beaucoup plus lisible (si vous prenez le temps de vous habituer \u00e0 la nouvelle syntaxe) que le code de la plupart des autres langages - m\u00eame le code Haskell, duquel il emprunte la plupart de ses id\u00e9es.\r\n\tLe paquet Elm-WebGL n'est pas qu'un simple wrapper. Il s'agit plut\u00f4t d'une API qui propose des moyens utiles et faciles de cr\u00e9er une sc\u00e8ne, de v\u00e9rifier les types de donn\u00e9es que vous fournissez aux shaders ou de charger des textures \u00e0 la mani\u00e8re d'Elm, entre autres nombreuses choses utiles.\r\n\tLes ports JavaScript nous permettent d'inclure gui.js comme GUI actuelle tout en conservant le mod\u00e8le du c\u00f4t\u00e9 Elm.\r\n\r\nIl y a toutefois quelques inconv\u00e9nients \u00e0 \u00e9crire en Elm :\r\n\r\n\tIl manque au paquet Elm-WebGL certaines fonctionnalit\u00e9s dont nous avons besoin, comme le rendu dynamique de la texture et le passage de tableaux de donn\u00e9es dans les shaders, et en Elm il est d\u00e9sormais limit\u00e9 \u00e0 l'utilisation de code JavaScript natif. Nous avons essay\u00e9 d'utiliser un rempla\u00e7ant pilot\u00e9 par JS, sans succ\u00e8s. Nous avons donc quelques couches \u00e9crites en JS-WebGL pur, et le mod\u00e8le fait des allers-retours lors des mises \u00e0 jour \u00e0 l'aide des ports JS.\r\n\tPour l'instant, sans raison apparente, le paquet Elm\/url ne prend pas en charge les URL de type file:\/\/\/-, donc pour permettre aux utilisateurs de t\u00e9l\u00e9charger la version sans serveur auto-h\u00e9berg\u00e9e de l'illustration g\u00e9n\u00e9r\u00e9e, nous devons corriger la sortie du JavaScript WebPack \u00e0 l'aide d'expressions r\u00e9guli\u00e8res.\r\n\r\nDes modifications sont toujours ajout\u00e9es \u00e0 la plateforme en continu. Le code source de l'application, comme toujours, est disponible sur GitHub sous la licence Creative Commons.\r\nExplorer nos Graphismes de bureau\r\nExp\u00e9rimentez\u00a0le g\u00e9n\u00e9rateur et\u00a0n\u2019h\u00e9sitez pas \u00e0\u00a0partager vos r\u00e9sultats sur les r\u00e9seaux sociaux et \u00e0 taguer JetBrains.\u00a0Nous avons h\u00e2te de d\u00e9couvrir\u00a0vos \u0153uvres !\r\n\r\nJetBrains\r\nThe Drive to Develop\r\n\r\nAuteur de l'article original en anglais :\u00a0Anastasia Chumak","protected":false},"excerpt":{"rendered":"Pour beaucoup de d\u00e9veloppeurs,\u00a0coder est un art.JetBrains partage cette id\u00e9e et notre Artwork Generator, qui r\u00e9sulte de la rencontre entre cr\u00e9ativit\u00e9 et science, en atteste.Depuis sa cr\u00e9atio","protected":false},"author":{"name":"Delphine Massenhove","link":"https:\/\/blog.jetbrains.com\/fr\/author\/delphine-massenhovejetbrains-com"},"featured_media":34210,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[],"tags":[],"cross-post-tag":[],"acf":[],"featured_image":"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2019\/12\/fr-JetBrains-Artwork-Generator-V3.png","_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/posts\/34202"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/users\/813"},{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/users\/813"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/comments?post=34202"}],"version-history":[{"count":0,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/posts\/34202\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media\/34210"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=34202"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=34202"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=34202"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=34202"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}