{"id":307877,"date":"2022-12-14T18:58:40","date_gmt":"2022-12-14T17:58:40","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=appcode&#038;p=307877"},"modified":"2022-12-15T09:16:21","modified_gmt":"2022-12-15T08:16:21","slug":"appcode-2022-3-release-and-end-of-sales-and-support","status":"publish","type":"appcode","link":"https:\/\/blog.jetbrains.com\/fr\/appcode\/2022\/12\/appcode-2022-3-release-and-end-of-sales-and-support\/","title":{"rendered":"Publication d&#8217;AppCode\u00a02022.3 et annonce de la fin de sa commercialisation et de l&#8217;assistance technique"},"content":{"rendered":"\n<p>Bonjour,<\/p>\n\n\n\n<p>AppCode 2022.3 vient d&#8217;\u00eatre publi\u00e9&nbsp;! Il est compatible avec macOS&nbsp;13 et Xcode&nbsp;14.2, apporte davantage de capacit\u00e9s de refactorisation pour Swift, permet des injections de langage et propose une nouvelle approche de la synchronisation des param\u00e8tres.<\/p>\n\n\n\n<p><em><em>\u00c0<\/em> l&#8217;occasion de la publications de sa version&nbsp;2022.3, nous annon\u00e7ons \u00e9galement la fin <em>prochaine<\/em><\/em> <em>de sa commercialisation. \u00c0 compter du 14&nbsp;d\u00e9cembre 2022, nous ne vendrons plus de nouveaux abonnements et ne renouvellerons plus les abonnements. Tous les abonnements actifs recevront une licence perp\u00e9tuelle de secours pour la version&nbsp;2022.3.<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1600\" height=\"800\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/12\/Release_blog_image_800x400_AppCode-2x-3.png\" alt=\"\" class=\"wp-image-307884\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"sunsetting_appcode\">Fin de la commercialisation d&#8217;AppCode<\/h2>\n\n\n\n<p>Depuis le lancement d&#8217;<a href=\"https:\/\/blog.jetbrains.com\/appcode\/2011\/10\/appcode-1-0-a-new-ide-for-objective-c-is-generally-available\/\">AppCode\u00a01.0<\/a> il y a 11\u00a0ans, nous avons mis en \u0153uvre notre expertise pour rendre le codage pour iOS\/macOS plus agr\u00e9able. Nous avons r\u00e9alis\u00e9 beaucoup de choses, notamment une prise en charge de premier ordre du langage C++ (qui a donn\u00e9 naissance \u00e0 <a href=\"https:\/\/www.jetbrains.com\/fr-fr\/clion\/\" target=\"_blank\" rel=\"noopener\">CLion<\/a>, notre IDE C\/C++ multiplateforme), une <a href=\"https:\/\/blog.jetbrains.com\/appcode\/2014\/06\/appcode-3-0-1-update-xcode-6-and-basic-swift-support\/\">publication<\/a> extr\u00eamement rapide de la prise en charge initiale du nouveau langage Swift et la technologie <a href=\"https:\/\/blog.jetbrains.com\/fr\/kotlin\/2022\/10\/kmm-beta\/\">Kotlin Multiplatform Mobile<\/a>, qui combine notre passion pour Kotlin et notre connaissance des technologies mobiles.<\/p>\n\n\n\n<p>Si nous avons connu une certaine croissance en mati\u00e8re d&#8217;adoption, nous n&#8217;avons pas atteint la part de march\u00e9 que nous esp\u00e9rions. Nous pensons donc que le moment est venu de mettre fin \u00e0 la commercialisation de ce produit pour concentrer nos efforts dans d&#8217;autres directions.<\/p>\n\n\n\n<p>Jusqu&#8217;au 31&nbsp;d\u00e9cembre 2023, nous continuerons \u00e0 fournir une assistance technique et \u00e0 publier des mises \u00e0 jour pour g\u00e9rer sp\u00e9cifiquement les probl\u00e8mes de compatibilit\u00e9 avec Xcode&nbsp;14, ainsi que des mises \u00e0 jour de s\u00e9curit\u00e9 critiques si n\u00e9cessaire. La port\u00e9e des mises \u00e0 jour sera limit\u00e9e \u00e0 ces deux domaines.<\/p>\n\n\n\n<p><em>Veuillez noter que Kotlin Multiplatform Mobile <\/em><em>n&#8217;est pas concern\u00e9<\/em><em> par l&#8217;arr\u00eat d&#8217;AppCode et que les investissements dans ces outils se poursuivent. Consultez le <\/em><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/\"><em>blog de Kotlin<\/em><\/a> pour plus d&#8217;informations et de mises \u00e0 jour.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"extending_the_fallback\">Extension de la licence perp\u00e9tuelle de secours<\/h3>\n\n\n\n<p>Normalement, lorsqu&#8217;une licence perp\u00e9tuelle de secours est accord\u00e9e, l&#8217;utilisateur re\u00e7oit une licence pour la version du produit avec laquelle il a commenc\u00e9 son abonnement. Mais en guise de reconnaissance, nous avons d\u00e9cide d&#8217;opter pour une autre approche cette fois-ci : les utilisateurs qui recevront une licence perp\u00e9tuelle de secours en b\u00e9n\u00e9ficieront pour la version qui sera disponible \u00e0 la fin de leur abonnement.<\/p>\n\n\n\n<p>Nous tenons \u00e0 remercier tous nos utilisateurs pour leur soutien et pour avoir aid\u00e9 AppCode \u00e0 \u00e9voluer au fil des ans&nbsp;!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"appcode_update\">Mise \u00e0 jour d&#8217;AppCode&nbsp;2022.3<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"compatibility\">Compatibilit\u00e9<\/h3>\n\n\n\n<p>Dans cette version, nous avons corrig\u00e9 une exception qui se produisait lors de l&#8217;ouverture d&#8217;un projet, d\u00e9sactiv\u00e9 l&#8217;avertissement de compatibilit\u00e9 avec macOS et corrig\u00e9 un probl\u00e8me de cr\u00e9ation de build sur un p\u00e9riph\u00e9rique dans l&#8217;int\u00e9gration de Reveal sous macOS&nbsp;13. Suite \u00e0 ces mises \u00e0 jour, AppCode&nbsp;2022.3 est d\u00e9sormais compatible avec macOS&nbsp;13 et Xcode&nbsp;14.2.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"better_swift_refactoring_capabilities\">Capacit\u00e9s de refactorisation am\u00e9lior\u00e9es pour Swift<\/h3>\n\n\n\n<p>Nous avons eu \u00e0 c\u0153ur d&#8217;am\u00e9liorer la refactorisation de Swift. Dans cette version, nous avons \u00e9tendu la liste des capacit\u00e9s et am\u00e9lior\u00e9 celles qui existaient d\u00e9j\u00e0&nbsp;:<\/p>\n\n\n\n<ul><li>Une nouvelle refactorisation <em>Inline function<\/em> (\u2325\u2318N) a \u00e9t\u00e9 ajout\u00e9e. L&#8217;utilisateur peut sp\u00e9cifier si tous les appels doivent \u00eatre substitu\u00e9s ou seulement celui qui est s\u00e9lectionn\u00e9, et si la fonction concern\u00e9e doit \u00eatre supprim\u00e9e&nbsp;:<br><img decoding=\"async\" width=\"600\" data-gif-src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/12\/inline_swift.gif\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/12\/inline_swift.png\" alt=\"Inline Function in Swift\"><br>Lors de l&#8217;insertion, l&#8217;IDE v\u00e9rifie l&#8217;accessibilit\u00e9 des symboles utilis\u00e9s dans la fonction concern\u00e9e, traite correctement les arguments de la fonction <code>inout<\/code>, ins\u00e8re avec pr\u00e9cision les appels implicites aux m\u00e9thodes statiques, et plus encore.<\/li><li>Lorsque vous cr\u00e9ez une propri\u00e9t\u00e9 \u00e0 partir de son utilisation ou que vous en extrayez une, AppCode vous propose d\u00e9sormais de choisir entre les d\u00e9clarations de propri\u00e9t\u00e9s <code>var<\/code> et <code>let<\/code>.<\/li><li>L&#8217;extraction d&#8217;une m\u00e9thode \u00e0 partir de <code>static subscript<\/code> g\u00e9n\u00e8re maintenant une m\u00e9thode <code>static<\/code>. Elle tient compte de la dur\u00e9e de vie et de la port\u00e9e de la variable et int\u00e8gre bien le modificateur <code>mutating<\/code>.<\/li><li>L&#8217;extraction de la conformit\u00e9 d&#8217;un protocole vers<code> extension<\/code> ne perd plus les commentaires de la documentation.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"enhanced_completion_for_initializers_and_deinitializers\">Saisie semi-automatique am\u00e9lior\u00e9e pour les initialiseurs et les d\u00e9sinitialiseurs<\/h3>\n\n\n\n<p>La saisie semi-automatique du code dans Swift a re\u00e7u plusieurs am\u00e9liorations&nbsp;:<\/p>\n\n\n\n<ul><li>La saisie semi-automatique intelligente ignore d\u00e9sormais <code>@autoclosure<\/code> pour l&#8217;affectabilit\u00e9 lors de la cr\u00e9ation d&#8217;une liste d&#8217;options.<\/li><li>Lorsque vous utilisez la saisie semi-automatique des mots-cl\u00e9s <code>init<\/code> et <code>deinit<\/code>, les espaces redondants sont supprim\u00e9s et les accolades et parenth\u00e8ses requises sont ajout\u00e9es apr\u00e8s les mots-cl\u00e9s.<\/li><li>AppCode&nbsp;2022.3 permet \u00e9galement l&#8217;action <em>Complete statement<\/em> pour les initialiseurs et les d\u00e9sinitialiseurs.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/12\/complete_init.png\" alt=\"Saisie automatique des instructions\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"intention_previews\">Pr\u00e9visualisation des intentions<\/h3>\n\n\n\n<p>Si vous doutez du correctif rapide ou si vous vous demandez ce qui va changer exactement, ouvrez la fen\u00eatre contextuelle <em>Quick Documentation<\/em> (<code>F1<\/code>) pour un correctif rapide donn\u00e9 dans le menu <code>\u2325Entr\u00e9e<\/code>. Cela activera une pr\u00e9visualisation des intentions afin que vous puissiez voir les modifications du code une fois le correctif appliqu\u00e9.<br><img decoding=\"async\" width=\"600\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/12\/preview-1.png\" alt=\"Aper\u00e7u des intentions\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"injected_languages\">Langages inject\u00e9s<\/h3>\n\n\n\n<p>Les litt\u00e9raux de cha\u00eenes de caract\u00e8res en Swift contenant des cha\u00eenes SQL, le code HTML, les expressions r\u00e9guli\u00e8res ou des exemples provenant d&#8217;autres langages, peuvent \u00eatre inject\u00e9s dans la cha\u00eene de caract\u00e8res \u00e0 l&#8217;aide du menu <code>\u2325Entr\u00e9e<\/code>. Vous obtiendrez ainsi une mise en \u00e9vidence pr\u00e9cise du code en fonction du langage choisi, des intentions sp\u00e9cifiques au langage et une section d&#8217;\u00e9diteur d\u00e9di\u00e9e \u00e0 l&#8217;\u00e9dition du fragment de code sp\u00e9cifique.<br><img decoding=\"async\" width=\"600\" data-gif-src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/12\/injections.gif\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/12\/injections.png\" alt=\"Injections de langage\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"updates_to_uml_diagrams\">Mises \u00e0 jour des diagrammes UML<\/h3>\n\n\n\n<p>AppCode&nbsp;2022.3 am\u00e9liore les diagrammes UML pour les classes Swift et Objective-C&nbsp;:<\/p>\n\n\n\n<ul><li>Vous pouvez glisser des fichiers de <em>Project View<\/em> vers le diagramme.<\/li><li>Vous pouvez filtrer les n\u0153uds du diagramme par port\u00e9e, par exemple pour afficher tous les fichiers modifi\u00e9s, les fichiers ouverts ou les fichiers sources du projet.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"new_solution_for_settings_synchronization\">Nouvelle solution pour la synchronisation des param\u00e8tres<\/h3>\n\n\n\n<p>Une nouvelle solution est disponible pour synchroniser les param\u00e8tres entre plusieurs installations du produit, et m\u00eame entre divers IDE bas\u00e9s sur IntelliJ. Elle stocke les param\u00e8tres dans le cloud associ\u00e9 au compte JetBrains Account de l&#8217;utilisateur et peut synchroniser tous les param\u00e8tres partageables de la plateforme, des plugins int\u00e9gr\u00e9s et des plugins tiers. Pour en <a href=\"https:\/\/blog.jetbrains.com\/appcode\/2022\/10\/appcode-2022-3-eap-new-settings-sync-solution\/#new_solution_for_synchronizing_settings\">savoir plus<\/a> et l&#8217;activer, allez dans <em>Preferences | Settings Sync | Enable Settings Sync<\/em>.<\/p>\n\n\n\n<p><a class=\"jb-download-button\" href=\"https:\/\/www.jetbrains.com\/fr-fr\/objc\/download\/\" target=\"_blank\" rel=\"noopener\"><i class=\"download-icon\"><\/i>T\u00e9l\u00e9charger AppCode<\/a><\/p>\n\n\n\n<p><em>L&#8217;\u00c9quipe AppCode<\/em><br><em>JetBrains<\/em><br><em>The Drive to Develop<\/em><\/p>\n\n\n\n<p><em>Auteur de l\u2019article original en anglais<\/em>&nbsp;:<\/p>\n\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                <div class=\"about-author__box-img\">\n                    <img decoding=\"async\" src=\"https:\/\/secure.gravatar.com\/avatar\/?s=200&#038;r=g\" width=\"200\" height=\"200\" alt=\"\" loading=\"lazy\"  class=\"avatar avatar-200 wp-user-avatar wp-user-avatar-200 photo avatar-default\">\n                <\/div>\n                <div class=\"about-author__box-text\">\n                                                        <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"author":813,"featured_media":307897,"comment_status":"closed","ping_status":"closed","template":"","categories":[89,907],"tags":[7086,195,7135,7165],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/appcode\/307877"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/appcode"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/types\/appcode"}],"author":[{"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=307877"}],"version-history":[{"count":9,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/appcode\/307877\/revisions"}],"predecessor-version":[{"id":308188,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/appcode\/307877\/revisions\/308188"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media\/307897"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=307877"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=307877"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=307877"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=307877"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}