JetBrains Blog https://blog.jetbrains.com/fr Developer Tools for Professionals and Teams Thu, 15 Jun 2023 13:57:18 +0000 fr-FR hourly 1 https://blog.jetbrains.com/wp-content/uploads/2023/02/cropped-icon-512-32x32.png JetBrains Blog https://blog.jetbrains.com/fr 32 32 Fleet 1.19 : fonctionnalités assistées par IA et configuration simplifiée pour rust-analyzer, interpréteurs Python et npm https://blog.jetbrains.com/fr/fleet/2023/06/fleet-1-19-fonctionnalites-assistees-par-ia-et-configuration-simplifiee-pour-rust-analyzer-interpreteurs-python-et-npm/ Thu, 15 Jun 2023 13:42:21 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/06/Fleet-1-19_Featured-Blog-image-1280x720-2x-FRA.png https://blog.jetbrains.com/?post_type=fleet&p=363611 La mise à jour de Fleet 1.19 est disponible et vous pouvez la télécharger dans Toolbox App. Il s’agit d’une mise à jour spéciale, car en plus d’améliorer des fonctionnalités existantes, elle apporte une nouveauté majeure.

En effet, Fleet comprend maintenant une assistance générée par IA ! Cette implémentation initiale inclut plusieurs nouvelles fonctionnalités alimentées par IA, via l’API OpenAI. Nous faisons beaucoup d’expérimentations pour faire évoluer Fleet, au niveau de son architecture comme de l’expérience utilisateur, vos retours sont donc très importants pour nous.

Voici les fonctionnalités initiales générées par IA que vous pouvez essayer dans Fleet 1.19 :

  1. Prompt d’IA inline. Appuyez simplement sur Cmd+./Ctrl+. ou appelez « Generate Code » à n’importe quel emplacement de tout fichier de code pour écrire ce dont vous avez besoin. L’IA de Fleet insèrera le meilleur code dans l’emplacement et vous pouvez alors accepter sa proposition ou générer de nouveau le code.
    Fleet 1.19 : Prompt d'IA inline
  2. Générer un message de commit. L’IA de Fleet peut décrire les modifications que vous avez faites, les examiner et effectuer des commits. Faites le bonheur de vos collègues !
    Fleet 1.19 : Générer un message de commit
  3. Expliquer le commit. vous voyez qu’un commit a fait l’objet de modifications significatives et vous voulez en savoir plus à ce sujet ? L’AI Assistant de Fleet saura tout vous expliquer.
    Fleet 1.19 : Expliquer le commit
  4. Générer de la documentation. Chaque fois que vous estimez que de la documentation serait bénéfique à un morceau de code, vous pouvez l’ajouter vous-même ou demander à l’IA de Fleet de vous aider.
    Fleet 1.19 : Générer de la documentation
  5. Chat avec IA. L’AI Assistant de Fleet aime parler de programmation et maîtrise le sujet. Essayez-le ! Fleet fournit un nouveau type de fenêtre d’outils de chat avec IA et garde une trace de vos discussions pour vous permettre de les consulter ultérieurement.
    Fleet 1.19 : Chat avec l'IA
  6. Expliquer le code. Le code peut parfois sembler complexe à première vue. Fleet peut vous aider à le comprendre, voire vous apprendre une ou deux astuces. Sélectionnez un morceau de code et appelez « Explain Code ». Fleet ouvrira une nouvelle fenêtre de chat dans laquelle il vous fournira une explication. Vous pouvez poser plusieurs questions et la discussion sera conservée pour servir de référence et pouvoir de nouveau être consultée ultérieurement.
    Fleet 1.19: Explain code
  7. Assistance dans le terminal. Vous ne vous souvenez plus quelle commande du terminal utiliser pour effectuer une action précise ? Ouvrez le terminal, appuyez sur Cmd+./Ctrl+. et interrogez l’assistant. Pas besoin de quitter l’IDE ni de parcourir tout le contenu de --help.
    Fleet 1.19 : Assistance dans le terminal
  8. Copier sur le terminal. Lorsque l’AI Assistant de Fleet vous fournit une commande Shell dans sa réponse sur le chat, vous pouvez copier cette commande sur votre terminal en un clic. Appuyez simplement sur Entrée pour exécuter la commande.
    Fleet 1.19 : Copie sur le terminal

De nouvelles fonctionnalités seront disponibles dans les prochaines mises à jour !

Comment cela fonctionne

Pour faciliter autant que possible l’essai des nouvelles fonctionnalités, nous proposons un accès en preview au nouveau service JetBrains AI. Il s’agit d’une façade qui vous connecte de façon transparente, en tant qu’utilisateur du produit, à de grands modèles de langage (LLM), et active les fonctionnalités spécifiques générées par l’IA dans de nombreux produits JetBrains. Le service JetBrains AI héberge actuellement OpenAI et plusieurs modèles créés par JetBrains. D’autres modèles seront intégrés par la suite. La prise en charge des IDE basés sur IntelliJ et de ReSharper sera bientôt disponible.

Cette approche nous donne la flexibilité indispensable pour intégrer davantage de modèles à l’avenir et permet à nos utilisateurs d’accéder aux meilleurs modèles et options possibles. La fonctionnalité alimentée par IA est intégrée de façon native et apparaît directement dans les outils que vous utilisez déjà, ce qui permet d’accéder plus facilement et rapidement aux fonctionnalités souhaitées. 

Veuillez noter que le service JetBrains AI ne pourra pas être accessible à tous dans l’immédiat. Nous allons commencer avec un pool d’utilisateurs limité et mettrons les autres utilisateurs sur liste d’attente. D’autres personnes seront progressivement invitées à essayer le produit au cours des semaines à venir.

Comment nous gérons votre code et vos données

Nous sommes conscients de l’importance de la transparence dans la gestion de votre code et de vos données. JetBrains ne lit pas vos données, ne les stocke pas et ne les utilise pas pour entraîner ses modèles. Fleet envoie les données aux modèles LLM et aux fournisseurs de services tels qu’OpenAI pour recevoir les résultats. En complément de vos prompts, Fleet peut envoyer des informations supplémentaires telles que des extraits de votre code, les types de fichiers, les frameworks utilisés ou toute autre information pouvant être utile pour fournir du contexte au LLM. Pour plus d’informations, veuillez lire les Conditions d’utilisation du service JetBrains AI et/ou notre Charte de confidentialité.

Comment essayer les fonctionnalités de la nouvelle assistance par IA

Après avoir démarré, Fleet 1.19 ouvre une fenêtre d’outil dédiée au Chat IA, dans laquelle vous vous connectez au service JetBrains AI. Vous pouvez vous connecter avec votre compte JetBrains ou créer facilement un nouveau compte. Vous avez ensuite accès à toutes les fonctionnalités mentionnées ci-dessus.

Certaines fonctionnalités sont disponibles dans l’éditeur et d’autres dans différentes parties de l’interface utilisateur, notamment dans l’historique Git. N’oubliez pas que vous pouvez rechercher et exécuter de nombreuses actions dans la palette Actions de Fleet. Vous trouverez également des actions assistées par l’IA comme « AI Chats History ». Le symbole étoiles ✨ indique les fonctionnalités et actions de Fleet qui sont générés par l’IA dans l’interface utilisateur.

Attendez, ce n’est pas tout !

Vous avez probablement hâte d’essayer ces nouvelles fonctionnalités, mais Fleet 1.19 apporte d’autres améliorations intéressantes.

En réponse aux nombreuses demandes que nous avons reçues, nous avons ajouté la possibilité d’utiliser les configurations d’exécution de npm et de Node.js. Cette mise à jour simplifie considérablement les processus de création d’un projet et d’exécution de tests, ainsi que la réalisation d’autres tâches nécessaires. Configurer npm ou Node.js est maintenant beaucoup plus facile.

Fleet 1.19 : configurations d'exécution npm et Node.js

Les retours que nous avons reçus nous signalaient que lors de la consultation des résultats d’une recherche, il était difficile de trouver le texte correspondant dans l’aperçu. Nous avons résolu ce problème en ajoutant une mise en évidence du texte par un surlignage de couleur vive afin que les informations pertinentes soient immédiatement visibles.

Fleet 1.19 : amélioration de la mise en évidence des résultats de recherches

Fleet 1.19 permet d’ajouter des paramètres rust-analyzer au fichier settings.json. Vous pouvez personnaliser le rust-analyzer en ajoutant les éléments décrits dans le manuel de rust-analyzer à votre fichier settings.json home ou project.

Fleet 1.19 : rust-analyzer

Les actions comme renommer, créer des dossiers, copier et effectuer d’autres modifications peuvent maintenant être exécutées sur des nœuds de répertoire réduits dans la vue projet. Nous espérons que cette amélioration vous permettra d’accroître votre productivité et simplifiera votre workflow.

Fleet 1.19 : Actions sur les répertoires réduits

Nous avons ajouté une nouvelle fonctionnalité pour améliorer l’expérience pour les tests Python. Avec la dernière mise à jour, vous pouvez définir un targetType avec prise en charge des descripteurs de module et des chemins. De plus, les cibles multiples sont maintenant prises en charge, ce qui permet d’exécuter des tests dans des fichiers ou dans des répertoires spécifiques de façon plus fluide.

Fleet 1.19 : Amélioration des tests Python

La dernière mise à jour permet de distinguer facilement les interpréteurs Python dans les paramètres. Cette amélioration permet d’identifier et de gérer rapidement vos interpréteurs Python.

Fleet 1.19 : Les interpréteurs Python peuvent désormais être facilement identifiés

Nous espérons que vous apprécierez  toutes les évolutions apportées par cette mise à jour ! Pour obtenir la liste complète des modifications, consultez les notes de version .

Merci de nous signaler tout problème dans notre outil de suivi et restez à l’écoute pour les futures annonces.

Pour télécharger cette mise à jour, allez dans Toolbox App et installez la version 1.19.

P.S. : La prise en charge des plugins et l’API des plugins sont encore en cours de développement. Nous espérons avoir bientôt plus de nouvelles à vous communiquer sur ces points.

FAQ de JetBrains AI

  1. Les fonctionnalités générées par l’IA seront-elles bientôt disponibles dans les IDE basés sur IntelliJ et dans ReSharper ?
    Oui. Restez à l’écoute et suivez les mises à jour.
  2. Quel sera le coût de l’AI Assistant dans les IDE JetBrains ?
    L’AI Assistant sera gratuit pendant toute la phase de preview. Nous fournirons les informations sur les modèles de licence et la tarification ultérieurement.
  3. Quels LLM sont utilisés par JetBrains AI ?
    Les informations sur tous les fournisseurs de service tiers et leurs modèles figurent sur cette page dédiée. Par ailleurs, JetBrains a créé plusieurs modèles.
  4. J’ai été mis·e sur liste d’attente. Dans combien de temps aurais-je accès à ce nouveau service ?
    Nous vous préviendrons par e-mail dès que vous pourrez essayer JetBrains AI. Nous voulons nous assurer que ce service offre la meilleure expérience possible à nos utilisateurs. Dans les mois à venir, nous allons graduellement inviter les personnes qui ont été mises sur liste d’attente à l’essayer. Toutefois, nous ne sommes pas encore en mesure de donner une date précise.


Rejoignez JetBrains Tech Insights Lab pour participer à des enquêtes, des entretiens et des études sur l’expérience utilisateur. Aidez-nous à améliorer JetBrains Fleet !

Article original en anglais par :

Delphine Massenhove

Eugene Toporov

]]>
https://blog.jetbrains.com/pt-br/fleet/2023/06/fleet-1-19-fonctionnalites-assistees-par-ia-et-configuration-simplifiee-pour-rust-analyzer-interpreteurs-python-et-npm/ https://blog.jetbrains.com/ko/fleet/2023/06/fleet-1-19-fonctionnalites-assistees-par-ia-et-configuration-simplifiee-pour-rust-analyzer-interpreteurs-python-et-npm/ https://blog.jetbrains.com/ja/fleet/2023/06/fleet-1-19-fonctionnalites-assistees-par-ia-et-configuration-simplifiee-pour-rust-analyzer-interpreteurs-python-et-npm/ https://blog.jetbrains.com/es/fleet/2023/06/fleet-1-19-fonctionnalites-assistees-par-ia-et-configuration-simplifiee-pour-rust-analyzer-interpreteurs-python-et-npm/ https://blog.jetbrains.com/fleet/2023/06/fleet-1-19-fonctionnalites-assistees-par-ia-et-configuration-simplifiee-pour-rust-analyzer-interpreteurs-python-et-npm/ https://blog.jetbrains.com/de/fleet/2023/06/fleet-1-19-fonctionnalites-assistees-par-ia-et-configuration-simplifiee-pour-rust-analyzer-interpreteurs-python-et-npm/
Participez à l’édition 2023 de l’Enquête sur l’Écosystème des Développeurs https://blog.jetbrains.com/fr/blog/2023/06/11/participez-a-l-edition-2023-de-l-enquete-sur-l-ecosysteme-des-developpeurs/ Sun, 11 Jun 2023 06:06:48 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/06/DevEco-Survey-2023_Featured_Blog_1280x720.png https://blog.jetbrains.com/?post_type=blog&p=362436 Depuis 2017, nous réalisons chaque année une enquête sur l’écosystème des développeurs afin de savoir comment il évolue, d’en apprendre plus sur la communauté des développeurs et de comprendre comment améliorer nos produits afin qu’ils répondent au mieux à vos attentes, et cette année ne fait pas exception !


L’Enquête 2023 sur l’Écosystème des Développeurs est prête et nous vous serions reconnaissants de bien vouloir y participer. Votre contribution est essentielle à la réalisation d’une étude complète et indépendante de l’écosystème du développement logiciel. Répondre au questionnaire et partager votre expérience du développement avec nous ne devrait vous prendre que 30 minutes.

L’enquête est disponible en 10 langues et y participer peut vous permettre de remporter l’un des prix suivants :

  • Un MacBook Pro 16
  • Une carte graphique NVIDIA GeForce RTX 4090
  • Un iPhone 14 Pro
  • Une carte cadeau Amazon d’une valeur de 300 USD
  • Un pack All Products de JetBrains

Pour accéder au questionnaire de l’enquête, cliquez sur le lien ci-dessous :

PARTICIPER À L’ENQUÊTE SUR L’ÉCOSYSTÈME DES DÉVELOPPEURS

Plus le nombre de développeurs participant à l’enquête sera important, plus ses résultats seront pertinents et représentatifs de la communauté, alors n’hésitez pas à inviter vos amis et collègues à contribuer eux aussi. Pour vous remercier, nous vous inscrirons à un tirage au sort supplémentaire. Le lien de parrainage à partager figure sur la dernière page du questionnaire de l’enquête.


Comme toujours, nous partagerons des infographies détaillées sur les résultats de l’enquête et les dernières tendances en matière de technologies et de développement. Nous fournirons également les données brutes anonymisées pour les personnes souhaitant effectuer leurs propres recherches. Enfin, nous enverrons à tous les répondants des infographies personnalisées montrant comment ils situent par rapport aux autres membres de la communauté.

N’hésitez plus, participez à notre enquête et aidez-nous à comprendre la situation de l’écosystème des développeurs en 2023 et son évolution. Faites entendre votre voix !

L’Équipe JetBrains Research

Article orignal en anglais par :

Delphine Massenhove

Anastassiya Sichkarenko

]]>
https://blog.jetbrains.com/zh-hans/blog/2023/06/11/participez-a-l-edition-2023-de-l-enquete-sur-l-ecosysteme-des-developpeurs/ https://blog.jetbrains.com/pt-br/blog/2023/06/11/participez-a-l-edition-2023-de-l-enquete-sur-l-ecosysteme-des-developpeurs/ https://blog.jetbrains.com/ko/blog/2023/06/11/participez-a-l-edition-2023-de-l-enquete-sur-l-ecosysteme-des-developpeurs/ https://blog.jetbrains.com/ja/blog/2023/06/11/participez-a-l-edition-2023-de-l-enquete-sur-l-ecosysteme-des-developpeurs/ https://blog.jetbrains.com/es/blog/2023/06/11/participez-a-l-edition-2023-de-l-enquete-sur-l-ecosysteme-des-developpeurs/ https://blog.jetbrains.com/blog/2023/06/11/participez-a-l-edition-2023-de-l-enquete-sur-l-ecosysteme-des-developpeurs/ https://blog.jetbrains.com/de/blog/2023/06/11/participez-a-l-edition-2023-de-l-enquete-sur-l-ecosysteme-des-developpeurs/
Augmentation des tarifs pour TeamCity On-Premises https://blog.jetbrains.com/fr/teamcity/2023/06/augmentation-des-tarifs-pour-teamcity-on-premises/ Tue, 06 Jun 2023 12:49:12 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/06/tc-blog-featured-image-1280x600-1.png https://blog.jetbrains.com/?post_type=teamcity&p=360643 Depuis son lancement en 2006, nous avons apporté de nombreuses nouvelles fonctionnalités à TeamCity et considérablement accru ses capacités. Le prix de TeamCity est resté le même pendant plus de 15 ans et nous sommes l’une des rares entreprises à proposer une solution de CI/CD sur site avec une réduction de 50 % sur tout renouvellement de licence.

L’augmentation des tarifs des nouvelles licences et des renouvellements de licences TeamCity On-Premises nous permettra de soutenir la croissance de notre équipe, d’offrir des cycles de publication plus rapides, de développer d’autres intégrations natives et de fournir une assistance encore plus rapide et efficace à tous nos clients.

Cette augmentation ne concernera que TeamCity On-Premises et non TeamCity Cloud, qui a un autre modèle de licence. Les nouveaux tarifs de TeamCity On-Premises entreront en vigueur le 1er septembre 2023. Vous pouvez consulter les tarifs actuels et à venir sur la page Tarifs de TeamCity.

Renouvelez vos licences au tarif actuel

En règle générale, le renouvellement des licences TeamCity On-Premises n’est possible que jusqu’à un an à l’avance. Si les périodes de maintenance de vos licences TeamCity Enterprise ou de vos licences TeamCity Build Agent arrivent à expiration au cours de l’année à venir, vous pouvez donc renouveler ces licences pour une année supplémentaire.

Toutefois, afin de permettre à nos clients de bénéficier des tarifs de renouvellement actuels plus longtemps, nous proposons une offre temporaire. Si la date d’expiration de la période de maintenance de vos licences TeamCity Enterprise ou TeamCity Build Agent se situe dans les deux ans à compter d’aujourd’hui, vous pourrez renouveler vos licences au tarif actuel pour une année supplémentaire. Cette offre s’applique uniquement aux commandes passées avant le 31 août 2023.

Par exemple, si la période de maintenance de vos licences TeamCity Enterprise ou TeamCity Build Agent va jusqu’au 30 avril 2024, vous avez la possibilité de prépayer maintenant afin de prolonger vos licences aux tarifs actuels pour deux ans supplémentaires, soit jusqu’au 30 avril 2026.

Cette offre requiert un paiement initial, mais elle vous permet d’effectuer un renouvellement au tarif actuel pour une année supplémentaire.

Nous avons bien conscience qu’une augmentation de tarif n’est pas une nouvelle réjouissante et nous continuerons à faire de notre mieux pour éviter au maximum les augmentations de tarifs et en limiter la fréquence .

Tous nos clients seront informés de cette mise à jour au cours des prochaines semaines.

Merci de votre soutien et de votre compréhension.

Article original en anglais de :

Delphine Massenhove

Yegor Naumov

]]>
https://blog.jetbrains.com/pt-br/teamcity/2023/06/augmentation-des-tarifs-pour-teamcity-on-premises/ https://blog.jetbrains.com/ko/teamcity/2023/06/augmentation-des-tarifs-pour-teamcity-on-premises/ https://blog.jetbrains.com/ja/teamcity/2023/06/augmentation-des-tarifs-pour-teamcity-on-premises/ https://blog.jetbrains.com/es/teamcity/2023/06/augmentation-des-tarifs-pour-teamcity-on-premises/ https://blog.jetbrains.com/teamcity/2023/06/augmentation-des-tarifs-pour-teamcity-on-premises/ https://blog.jetbrains.com/de/teamcity/2023/06/augmentation-des-tarifs-pour-teamcity-on-premises/
Compose Multiplatform for iOS passe en phase Alpha https://blog.jetbrains.com/fr/kotlin/2023/06/compose-multiplatform-for-ios-passe-en-phase-alpha/ Mon, 05 Jun 2023 08:54:22 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/06/CM-for-iOS_Alpha_Blog-Featured.png https://blog.jetbrains.com/?post_type=kotlin&p=360255 Compose Multiplatform, le framework déclaratif de JetBrains pour la création d’interfaces utilisateur multiplateformes avec Kotlin, permet maintenant de cibler iOS ! Vous pouvez donc utiliser Compose Multiplatform pour créer votre interface utilisateur une seule fois, 100 % en Kotlin, et elle fonctionnera sur Android, iOS et plus.

En bref, voici les informations essentielles sur cette publication :

  • JetBrains a passé Compose Multiplatform for iOS en phase Alpha, ce qui signifie qu’il est prêt à être utilisé dans le cadre d’expériences et de projets accessoires. Essayez-le et contribuez à l’avenir des interfaces utilisateur mobiles partagées avec Kotlin !
  • Compose Multiplatform utilise des API déjà connues pour le développement d’interfaces utilisateur sur Android, il est donc très facile pour les développeurs ayant une expérience du développement Android moderne d’être rapidement opérationnelles avec Compose Multiplatform for iOS. Cela permet également aux novices de baser leur apprentissage sur des concepts établis et sur les bonnes pratiques.
  • Compose Multiplatform for iOS étant en version Alpha, beaucoup de points sont encore en cours d’élaboration. Nous comptons sur la communauté pour nous aider, alors n’hésitez pas à l’essayer et à nous faire part de vos retours !

Commencer avec Compose for iOS

JetBrains a présenté le projet Compose Multiplatform for iOS pour la première fois lors de la KotlinConf 2023. Pour voir le fonctionnement de Compose Multiplatform for iOS en détail, regardez l’enregistrement de la présentation « Compose Multiplatform on iOS » de Sebastian Aigner et Nikita Lipsky :

Amener Kotlin Multiplatform au-delà de la logique métier

Avec Kotlin Multiplatform, les développeurs Kotlin disposent déjà d’une approche du partage de code qui a fait ses preuves. Elle permet de partager la logique métier entre plusieurs plateformes sans devoir renoncer à l’accès aux API et fonctionnalités spécifiques à une plate-forme. Cette approche a été validée pour de nombreuses applications en production, et de plus en plus d’entreprises l’utilisent afin d’éviter d’avoir à dupliquer la logique dans leurs applications.

Mais il manquait quelque chose à Kotlin Multiplatform : une solution pour les cas dans lesquels on ne veut pas avoir à créer et maintenir une interface utilisateur distincte pour chaque plateforme que l’on cible. Ce type de cas peut se rencontrer assez fréquemment, par exemple si vous n’avez pas les ressources ou le nombre de personnes suffisants pour fournir des implémentations sur mesure pour chaque plateforme cible ou si vous devez livrer votre application le plus rapidement possible et n’avez pas le temps de maintenir manuellement plusieurs implémentations d’interfaces utilisateur synchronisées.

Compose Multiplatform apporte une solution pour ces situations en vous donnant la possibilité d’implémenter votre interface utilisateur une seule fois et de la partager ensuite entre les plateformes cibles, qu’il s’agisse du cas typique de partage entre Android et iOS pour une interface mobile, ou d’interfaces pour desktop ou pour le web.

Compose Multiplatform est une couche optionnelle pour les applications Kotlin Multiplatform qui vous permet de créer une seule fois des interfaces utilisateur déclaratives que vous pourrez utiliser pour de multiples plateformes cibles.

Conçu à partir de Jetpack Compose

Compose Multiplatform est construit sur la base de Jetpack Compose, le framework d’interface utilisateur de Google recommandé pour le développement Android moderne, qui est 100 % Kotlin. L’équipe de JetBrains qui développe Compose Multiplatform collabore avec Google et apporte régulièrement des modifications aux référentiels de Jetpack Compose.

Les API de Compose Multiplatform sont les mêmes que celles qui ont déjà été testées et approuvées dans Jetpack Compose. Les personnes ayant déjà développé des interfaces utilisateur Android modernes à l’aide de Jetpack Compose peuvent ainsi facilement créer une interface utilisateur partagée avec Compose Multiplatform.

Regardez cet extrait de code Compose Multiplatform qui anime la visibilité d’une image lorsque l’utilisateur appuie sur un bouton et vous constaterez que les API sont vraiment les mêmes que dans Jetpack Compose :

@Composable
fun App() {
    MaterialTheme {
        var showImage by remember { mutableStateOf(false) }
        Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) {
            Button(onClick = {
                showImage = !showImage
            }) {
                Text("Toggle image")
            }
            AnimatedVisibility(showImage) {
                Image(
                    painterResource("compose-multiplatform.xml"),
                    "Compose Multiplatform Logo"
                )
            }
        }
    }
}

Si vous avez déjà travaillé avec Jetpack Compose, la majeure partie de ce code doit vous sembler familière : Compose Multiplatform vous permet d’utiliser exactement les mêmes API, y compris la gestion d’état, la mise en page et même les animations. Pour les tâches spécifiques au système de Jetpack Compose, comme le chargement de ressources, Compose Multiplatform fournit des alternatives pratiques qui fonctionnent sur toutes les plateformes, telles que la fonction painterResource dans l’extrait ci-dessus.

Comme vous le voyez, ce code fonctionne à la fois sur Android et iOS, avec des résultats similaires :

Sur iOS, le rendu des interfaces utilisateur de Compose Multiplatform provient d’une implémentation de canevas basée sur la bibliothèque graphique Skiko. Sur Android, Compose Multiplatform est Jetpack Compose. Si vous décidez de migrer votre application vers des interfaces utilisateur spécifiques à une plateforme, vous pourrez continuer à utiliser votre application Compose Multiplatform sur Android sans aucun problème et conserver le code que vous avez écrit.

Conçu à partir de Kotlin Multiplateform

Les applications créées à l’aide de Compose Multiplatform sont des applications Kotlin Multiplatform, ce qui permet d’accéder aux API de la plateforme telles que les capteurs, les préférences, le stockage des données, la cryptographie, etc. en utilisant les mêmes mécanismes établis et éprouvés. Elles peuvent également utiliser l’écosystème des bibliothèques Kotlin Multiplatform, constamment enrichi, qui fournit aussi bien des wrappers de bases de données que des wrappers multiplateformes pour les SDK. Bien entendu, vous pouvez aussi continuer à utiliser Kotlin Multiplatform indépendamment de Compose Multiplatform pour partager la logique métier, les réseaux et autres abstractions.

Interopérabilité avec les vues SwiftUI et UIKit

Les applications ont besoin d’accéder à des fonctionnalités spécifiques à l’appareil et, dans de nombreux cas, la couche d’interface utilisateur ne fait pas exception. Qu’il s’agisse d’intégrer un navigateur ou de lire une vidéo, vous souhaiterez peut-être accéder aux fonctionnalités iOS intégrées d’iOS pour enrichir l’expérience de utilisateur.

Pour répondre à ce besoin, la version Alpha de Compose Multiplatform propose un prototype pour l’interopérabilité bidirectionnelle sur la couche d’interface utilisateur. En utilisant UIKitView, vous pouvez intégrer à votre interface utilisateur partagée des widgets complexes spécifiques à une plateforme, tels que des cartes, des vues web, des lecteurs multimédias et des flux de caméra. Dans l’autre sens, via ComposeUIViewController, vous pouvez intégrer des écrans Compose Multiplatform dans des applications SwiftUI, ce qui vous aidera à adopter progressivement Compose Multiplatform dans les applications iOS.

Compose Multiplatform sur iOS permet une interopérabilité bidirectionnelle avec les interfaces utilisateur natives. Vous pouvez ainsi intégrer des vues d’interface utilisateur complexes telles que MKMapView de MapKit à votre interface Compose ou des écrans Compose à une application SwiftUI.

Atteindre une expérience utilisateur de premier ordre

Compose Multiplatform for iOS étant actuellement en phase Alpha, un certain nombre de points sont encore en cours d’élaboration. Nous voulons nous assurer de prendre en considération tous les aspects qui permettent de rendre l’expérience fournie par les applications Compose Multiplatform conviviale et naturelle, où qu’elles soient utilisées. Cela concerne en premier lieu les interactions les plus élémentaires qui définissent le ressenti fondamental d’utilisation d’une application, comme les gestes et les mouvements de défilement, mais aussi les principes de navigation et les transitions, ainsi que les interactions complexes telles que la sélection de texte, la gestion des entrées ou les menus contextuels.

Il est également important que les applications Compose Multiplatform fournissent des intégrations d’accessibilité robustes et respectent les choix des utilisateurs, c’est pourquoi nous proposons une intégration étroite avec les mécanismes iOS sous-jacents comme la fonctionnalite text-to-speech du système et les préférences de zoom et de contraste définies par les utilisateurs sur leurs appareils.

Il s’agit de toute évidence d’un ensemble diversifié et étendu de priorités. et accorder à chacun le degré d’attention requise pour que Compose Multiplatform sur iOS offre la meilleure expérience utilisateur possible. Ce faisant, nous tenons à nous assurer de traiter les besoins des utilisateurs en priorité, c’est pourquoi nous vous invitons à nous faire part de vos retours !

La fluidité des performances, y compris sur des écrans à taux de rafraîchissement élevé, est un autre facteur essentiel à la qualité de l’expérience utilisateur, les équipes Compose Multiplatform et Kotlin/Native collaborent donc étroitement afin d’améliorer les performances des interfaces utilisateur partagées sur iOS.

Thèmes pour Compose Multiplatform for iOS

Le rendu de Compose Multiplatform sur iOS reposant sur un canevas, les applications iOS et Android ont la même apparence par défaut. Actuellement, Compose Multiplatform fournit directement les widgets Material et Material 3 sur toutes les plateformes. Vous connaissez peut-être déjà ces widgets pour les applications Android. Grâce à la fonctionnalité de génération de thème intégrée, vous pouvez ajuster l’aspect et la convivialité de ces widgets pour refléter votre image de marque, soit de la même manière sur toutes les plateformes, soit avec un thème spécifique pour chaque plateforme.

Actuellement, les applications mobiles créées avec Compose Multiplatform fournissent directement les widgets Material. Vous pouvez en personnaliser l’apparence et l’ergonomie, créer vos propres composants d’interface et même appliquer un thème spécifique à une plateforme.

L’un des points clés pour un framework d’interface utilisateur multiplateforme est de savoir dans quelle mesure les éléments doivent correspondre à l’apparence et à l’ergonomie des plateformes cibles. Pour le moment, l’équipe JetBrains n’a pas encore décidé si elle allait fournir des éléments d’interface utilisateur d’apparence native ou standard. Comme il s’agit d’un point essentiel de l’expérience utilisateur de Compose Multiplatform, nous ne voulons pas prendre de décision sans avoir recueilli les retours de la communauté au préalable, et nous vous invitons à nous faire part de vos réflexions et avis.

Essayez Compose Multiplatform for iOS !

Nous espérons vous avoir donné envie d’essayer Compose Multiplatform for iOS ! Comme évoqué plus haut, plusieurs points sont encore en cours d’élaboration, mais beaucoup d’autres fonctionnent déjà très bien et n’attendent qu’à être testés !

Nous proposons plusieurs moyens pour se familiariser avec la version Alpha de Compose Multiplatform for iOS, notamment des exemples d’applications et des modèles de projets.

Premiers pas avec le modèle

Pour commencer à écrire vos propres applications pour Android et iOS avec Compose Multiplatform, le plus simple est d’utiliser le modèle GitHub officiel, qui s’accompagne d’un tutoriel pour vous aider à réaliser votre première application Compose Multiplatform.

Commencer avec Compose for iOS

Découvrez Compose for iOS avec des applications de démo

Un bon moyen de se familiariser avec une nouvelle technologie est d’en voir des exemples d’utilisation. Nous avons préparé plusieurs exemples de projets pour présenter Compose Multiplatform sur iOS et ses autres cibles, que vous pouvez trouver dans le référentiel Compose Multiplatform.

Découvrir des exemples de projets

D’autres exemples de projets, comme Kotlin Multiplatform Mobile Production Sample, comportent une branche qui contient une implémentation d’interface utilisateur basée sur Compose Multiplatform, ce qui permet de voir les différences et les similitudes entre le partage de la logique métier seule et le partage de la couche d’interface utilisateur de l’application en plus de la logique métier.

Partagez vos retours d’expérience !

Nous souhaitons faire évoluer Compose Multiplatform for iOS en fonction de vos besoins prioritaires.

Aidez-nous à vous aider en nous signalant tout problème, en nous indiquant les API manquantes selon vous et en nous demandant les fonctionnalités supplémentaires dont vous voudriez disposer. Vous pouvez nous faire part de vos commentaires et demandes dans l’outil de suivi des tickets du projet.

Si vous souhaitez échanger avec les membres de l’équipe Compose Multiplatform ou d’autres développeurs, nous vous invitons à rejoindre la discussion sur le Slack de Kotlin. Vous trouverez les discussions sur Compose Multiplatform for iOS dans le canal #compose-ios. Dans #compose, vous pouvez discuter de sujets généraux en lien avec Compose Multiplatform et Jetpack Compose.

Nous avons hâte de voir ce que vous allez créer avec Compose Multiplatform !

Voir aussi

Article original en anglais de :

Delphine Massenhove

Sebastian Aigner

]]>
https://blog.jetbrains.com/zh-hans/kotlin/2023/06/compose-multiplatform-for-ios-passe-en-phase-alpha/ https://blog.jetbrains.com/pt-br/kotlin/2023/06/compose-multiplatform-for-ios-passe-en-phase-alpha/ https://blog.jetbrains.com/ko/kotlin/2023/06/compose-multiplatform-for-ios-passe-en-phase-alpha/ https://blog.jetbrains.com/ja/kotlin/2023/06/compose-multiplatform-for-ios-passe-en-phase-alpha/ https://blog.jetbrains.com/es/kotlin/2023/06/compose-multiplatform-for-ios-passe-en-phase-alpha/ https://blog.jetbrains.com/kotlin/2023/06/compose-multiplatform-for-ios-passe-en-phase-alpha/ https://blog.jetbrains.com/de/kotlin/2023/06/compose-multiplatform-for-ios-passe-en-phase-alpha/
La nouvelle mascotte Kotlin est là – Merci d’accueillir Kodee ! https://blog.jetbrains.com/fr/kotlin/2023/05/la-nouvelle-mascotte-kotlin-est-la-merci-d-accueillir-kodee/ Wed, 24 May 2023 12:22:17 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/04/DSGN-16174-Blog-post-banner-and-promo-materials-for-post-about-Kotlin-mascot_Blog-Featured-image-1280x600-1.png https://blog.jetbrains.com/?post_type=kotlin&p=357499 Nous avons le plaisir d’annoncer l’arrivée de la nouvelle mascotte Kotlin, que nous avons présentée en avant-première lors de la KotlinConf. Nous vous avions parlé de notre mascotte pour la première fois fin 2021 et elle n’avait pas encore de nom à l’époque.

Aujourd’hui, nous vous présentons Kodee, notre mascotte Kotlin relookée ! Nous avons pris en compte les commentaires et suggestions des utilisateurs de Kotlin afin de concevoir un personnage sympa et amusant, qui puisse devenir un emblème représentatif et fédérateur pour la communauté.

Kotlin's redesigned mascot Kodee

C’est pourquoi Kodee peut exprimer toute une variété d’émotions. Comme nous tous, il peut être joyeux, détendu, fâché ou se sentir déprimé parfois. Depuis sa naissance en 2021, il a aussi acquis de nouvelles capacités, comme marcher, courir pour accélérer le processus, danser ou même faire du patin à glace.

Kotlin's newly redesigned mascot with a variety of emotions

Au-delà du symbole, nous aimerions que les membres de la communauté Kotlin s’approprient le personnage de Kodee et l’utilisent pour s’exprimer en l’intégrant à leurs supports numériques ou imprimés. Nous avons créé des directives de design spécifiques, notamment en ce qui concerne les palettes de couleurs et styles de polices, et mettons à disposition plusieurs ressources que vous pouvez télécharger ici. Nous espérons que notre nouvelle mascotte réveillera l’artiste qui sommeille en vous. Soyez créatifs et voyez où Kodee vous mènera !

Si vous souhaitez développer vos propres adaptations, voici des exemples de ce à quoi Kodee peut ressembler :

Adaptations of Kotlin's newly updated mascot Kodee

Merci de nous avoir aidés à créer notre nouvelle mascotte en nous faisant part de vos retours!

Restez à l’écoute des prochaines mises à jour !

Delphine Massenhove

Maria Krishtal

]]>
https://blog.jetbrains.com/zh-hans/kotlin/2023/05/la-nouvelle-mascotte-kotlin-est-la-merci-d-accueillir-kodee/ https://blog.jetbrains.com/ko/kotlin/2023/05/la-nouvelle-mascotte-kotlin-est-la-merci-d-accueillir-kodee/ https://blog.jetbrains.com/ja/kotlin/2023/05/la-nouvelle-mascotte-kotlin-est-la-merci-d-accueillir-kodee/ https://blog.jetbrains.com/kotlin/2023/05/la-nouvelle-mascotte-kotlin-est-la-merci-d-accueillir-kodee/
Créer une application Django dans PyCharm https://blog.jetbrains.com/fr/pycharm/2023/05/creer-une-application-django-dans-pycharm/ Mon, 22 May 2023 08:33:23 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/05/Django-app-with-pycharm_Blog_Featured_image_1280x600.png https://blog.jetbrains.com/?post_type=pycharm&p=356989 L’idée à la base de Django est de permettre aux développeurs de créer des applications rapidement. La maîtrise de ce framework permet de réduire considérablement le chemin entre le concept et l’obtention d’une application web opérationnelle. Si vous voulez aller encore plus vite, vous pouvez apprendre à créer des applications Django dans PyCharm.

Ce tutoriel vous guide à travers les étapes de la création d’une application Django simple qui indique la température de l’air là où vous vous trouvez et permet de prendre connaissance des conditions météo à différents endroits.

Grâce à ce tutoriel, vous apprendrez comment :

  • Créer un projet Django dans PyCharm
  • Écrire des modèles, des vues et des gabarits
  • Faire des appels d’API et traiter les réponses
  • Vous connecter à des bases de données et y importer des données.

Pour obtenir l’intégralité du code de l’application, vous pouvez cloner le référentiel. Pour plus d’informations sur le clonage, consulte la documentation PyCharm.

Prérequis

Ce tutoriel s’adresse aux développeurs qui ont déjà plusieurs années d’expérience avec Python. Par conséquent, nous partons du principe que Python est déjà installé sur votre ordinateur. Mais si ce n’est pas le cas, pas de souci ! Vous pouvez télécharger et installer la version de Python de votre choix lorsque vous commencerez votre premier projet dans PyCharm.

La prise en charge de Django est une fonctionnalité professionnelle, vous devez utiliser PyCharm Professional. Il y a une période d’essai gratuit de 30 jours pour les nouveaux utilisateurs et les étudiants et enseignants bénéficient d’une licence gratuite. Ce tutoriel a été conçu dans PyCharm 2023.1, avec la nouvelle interface utilisateur activée.

Pour en savoir plus et accéder aux instructions d’installation pour les différents systèmes d’exploitation, consultez la documentation de PyCharm.

Créer une application opérationnelle

Les premières étapes nous permettront d’obtenir une première version basique et opérationnelle de notre application.

Créer un projet Django dans PyCharm

Pour créer votre projet, lancez PyCharm et cliquez sur New Project. Si PyCharm est déjà lancé , sélectionnez File | New Project dans le menu principal.

Dans la fenêtre New Project, spécifiez ce qui suit :

Création d'un projet Django dans PyCharm
  1. Choisissez Django comme type de projet.
  2. Saisissez le nom du répertoire dans lequel votre projet se trouvera. Cela sera également le nom de votre projet.
  3. Créez un environnement virtuel pour votre nouveau projet Django dans lequel PyCharm installera vos dépendances. Pour ce tutoriel, nous allons sélectionner l’option virtualenv.
  4. PyCharm est maintenant prêt pour la création d’une application Django dans votre projet. Veillez à nommer votre application dès maintenant.

Pour commencer, cliquez sur Create afin que PyCharm crée la structure de fichiers et installe Django et les autres dépendances requises. 

Cliquez sur l’icône Run en haut de la fenêtre pour démarrer le serveur Django :

Exécution du serveur Django

La fenêtre d’outils Run s’ouvre. Cliquez sur le lien pour ouvrir la fenêtre du navigateur :

Page du serveur Django dans le navigateur

Et voilà, il n’a fallu que quelques minutes pour obtenir un serveur Django exécutable dans PyCharm. C’est un bon début, mais le meilleur reste à venir.

Créer votre première vue

Il s’agit maintenant de créer la logique de l’application. Dans Django, cela se fait en écrivant des classes ou des fonctions dans views.py.

Vous pouvez examiner la structure de votre projet à tout moment en cliquant sur l’icône dossier dans le coin supérieur gauche de la fenêtre de PyCharm ou en appuyant sur ⌘1 / Alt+1:

Accès à la fenêtre d'outils Project

Ce tutoriel fournit des raccourcis qui permettent de gagner beaucoup de temps, par exemple appuyer deux fois sur ⇧ (Maj) pour ouvrir la fenêtre Search Everywhere. Ce raccourci vous permet littéralement de tout trouver, notamment les fichiers, paramètres et actions de votre projet.

Nous allons l’utiliser pour ouvrir rapidement views.py.

Saisissez views, placez le curseur sur views.py meteo et appuyez sur Entrée :

Utilisation de Search Everywhere

Un onglet d’éditeur avec views.py s’ouvre. Commençons par écrire la fonction temp_here, qui renverra la température qu’il fait actuellement là où nous nous trouvons. 

Collez le code suivant dans l’éditeur :

import requests


def temp_here():
    location = geocoder.ip('me').latlng
    endpoint = "https://api.open-meteo.com/v1/forecast"
    api_request = f"{endpoint}?latitude={location[0]}&longitude={location[1]}&hourly=temperature_2m"
    return requests.get(api_request).json()

Que se passe-t-il alors? Tout d’abord, nous importons la bibliothèque requests, qui est requise pour faire des appels d’API. Si l’instruction d’importation est soulignée par une ligne ondulée rouge, cela signifie que le paquet n’est pas disponible dans l’interpréteur Python sélectionné.

Survolez-la avec le curseur et sélectionnez Install package requests.

Installer la bibliothèque de requêtes

Pour obtenir la température actuelle, temp_here fait un appel à l’API Weather Forecast. C’est une API gratuite qui ne nécessite pas de clé d’API. Tout ce que nous avons besoin de connaître est le point de terminaison (https://api.open-meteo.com/v1/forecast) et les coordonnées. Pour ces dernières, nous allons utiliser Geocoder, une bibliothèque Python très simple qui permet de relever les coordonnées de différents endroits.

Placez le caret sur geocoder, qui est mis en évidence par une ligne ondulée rouge, et appuyez sur ⌥Entrée / Alt+Entrée pour voir les correctifs rapides disponibles. Sélectionnez Install and import package ‘geocoder’ :

Installation et importation d'un paquet Python

PyCharm installe le paquet et ajoute l’instruction d’importation au début du fichier.

Que pensez-vous de faire une requête de test pour s’assurer que tout fonctionne comme prévu ? Le moyen le plus simple de le faire est d’appeler la fonction dans la console Python. 

Utilisons un autre raccourci pour gagner du temps : Find action. Pas besoin de parcourir des menus avec la souris ou de mémoriser des douzaines de raccourcis, il suffit d’appuyer sur ⇧⌘A / Ctrl+Maj+A et de rechercher Run File in Python Console.

Il n’est pas nécessaire de saisir les mots en entier, Vous pouvez utiliser une suite de lettres comme 'rufipy' et obtenir malgré tout le résultat voulu :

Lorsque vous exécutez la commande, PyCharm charge les importations et la définition de fonction dans la console. Maintenant, appelez temp_here. Vous pouvez appuyer sur la touche Tab pour la saisie semi-automatique du code :

Saisie semi-automatique dans la console Python

Examinez la réponse de l’API dans la sortie de la console. C’est une chaîne très longue, mais vous en trouverez une représentation claire ci-dessous.

Si vous souhaitez explorer la réponse vous-même, faites comme suit :

  1. Cliquez sur la sortie de la console 3 fois et copiez-la dans le presse-papiers en appuyant sur ⌘C / Ctrl+C.
  2. Créez un fichier en appuyant sur ⇧⌘N / Ctrl+Alt+Maj+Insert et sélectionnez le type de fichier JSON (commencez simplement à saisir 'js…').
  3. Collez la réponse et appliquez l’action Reformat Code. Vous pouvez utiliser Find action ou appuyer sur ⌥⌘L / Ctrl+Alt+L.

Les informations requises sont contenues dans l’élément hourly sous la clé temperature_2m. Cette clé pointe vers une liste de valeurs.

Pour obtenir la température actuelle, nous devons passer l’heure actuelle en indice. Par exemple, s’il est 14 h 30, nous prendrons le 14e élément de la liste.

Exploration de la réponse de l'API

Vérifions si temp_here()['hourly']['temperature_2m'][14] fournit les informations requises.

Remplacez 14 par la valeur correspondant à l’heure qu’il est actuellement et saisissez le code dans la console :

Envoi d'une requête à l'API depuis la console Python

Nous obtenons 14,9 °C pour notre position. Et vous ?

Nous allons modifier la fonction afin qu’elle puisse extraire la température actuelle à partir de la réponse de l’API :

def temp_here():
    location = geocoder.ip('me').latlng
    endpoint = "https://api.open-meteo.com/v1/forecast"
    api_request = f"{endpoint}?latitude={location[0]}&longitude={location[1]}&hourly=temperature_2m"
    now = datetime.now()
    hour = now.hour
    meteo_data = requests.get(api_request).json()
    temp = meteo_data['hourly']['temperature_2m'][hour]
    return temp

N’oubliez pas d’importer datetime :

Cliquez sur Rerun dans le coin supérieur gauche de la barre d’outils de la console Python pour recharger la définition de fonction mise à jour, puis appelez de nouveau temp_here :

Appel de la fonction mise à jour depuis la console Python

Si le résultat est différent de celui que vous aviez avant de modifier le code de la fonction temp_here, cela peut être dû à une valeur TIME_ZONE incorrecte dans settings.py

Pour plus d’informations, consultez la documentation Django.

Pour accéder rapidement à ce paramètre, appuyez deux fois sur ⇧ (Maj), passez à Symbols en appuyant plusieurs fois sur la touche Tab, puis commencez à saisir 'time…'.

Rechercher des paramètres avec Search Everywhere

Nous allons maintenant transformer temp_here en fonction d’affichage. Afin d’être reconnue en tant que vue par Django, cette fonction doit accepter l’objet HttpRequest comme premier paramètre, généralement appelé request. Elle doit également renvoyer l’objet HttpResponse.

Voici ce à quoi views.py doit ressembler :

from datetime import datetime

import geocoder as geocoder
import requests
from django.http import HttpResponse


def temp_here(request):
    location = geocoder.ip('me').latlng
    endpoint = "https://api.open-meteo.com/v1/forecast"
    api_request = f"{endpoint}?latitude={location[0]}&longitude={location[1]}&hourly=temperature_2m"
    now = datetime.now()
    hour = now.hour
    meteo_data = requests.get(api_request).json()
    temp = meteo_data['hourly']['temperature_2m'][hour]
    return HttpResponse(f"Here it's {temp}")

Comme vous pouvez le voir, nous n’avons pas changé grand-chose : temp_here accepte désormais request comme argument et renvoie HttpResponse avec une chaîne.

Si vous préférez utiliser des degrés Fahrenheit au lieu de degrés Celsius, il suffit d’ajouter le paramètre temperature_unit dans la requête de l’API :

api_request = f"{endpoint}?latitude={location[0]}&longitude={location[1]}&hourly=temperature_2m&temperature_unit=fahrenheit"

Si vous préférez les degrés Celsius, ignorez simplement cette modification.

Configuration des URL

Pour configurer l’accès à notre application depuis un navigateur, mettez à jour urls.py. Appuyez deux fois sur Maj et saisissez les url à rechercher, puis ouvrez-les comme indiqué ci-dessus.

Ajoutez la ligne suivante à urlpatterns. Vous pouvez utiliser l’action Reformat Code ⌥⌘L / Ctrl+Alt+L pour restaurer facilement les retraits après le collage :

path("", include('meteo.urls')),

N’oubliez pas d’importer include depuis django.urls.include.

meteo.urls est désormais signalé comme une référence non résolue par une ligne jaune ondulée, car le fichier n’existe pas encore. Cela sera corrigé à l’étape suivante.

Les projets Django contiennent souvent plusieurs applications. Bien que cela ne soit pas le cas ici, il faut prendre en compte le futur développement du projet. C’est pourquoi nous créons un fichier urls.py pour chaque application dans le dossier correspondant et les incluons tous dans le fichier urls.py du projet.

Nous allons donc créer urls.py dans le dossier de l’application meteo.

Faites un clic droit sur le répertoire meteo dans la fenêtre d’outils Project.

Sélectionnez New > Python File et tapez urls.

Le fichier que vous venez de créer s’ouvre. Remplissez-le avec le code suivant :

from django.urls import path
from . import views


urlpatterns = [
    path('meteo/', views.temp_here, name='temp_here'),
]

Désormais lorsqu’on ouvre <server_address>/meteo dans le navigateur, la fonction temp_here de views.py est appelée et le navigateur affiche le rendu du résultat renvoyé par la fonction.

Cela fonctionne !

Réexécutez le serveur Django en cliquant sur le bouton Rerun dans le coin supérieur droit et confirmez l’action :

Ré-exécution du serveur Django

Ouvrez http://127.0.0.1:8000/meteo/ dans votre navigateur. Vous devriez voir quelque chose de semblable à ce qui suit :

Page d'application dans le navigateur

Si vous n’avez pas envie d’ouvrir le navigateur et de saisir l’adresse, ou d’actualiser la page manuellement à chaque fois que vous redémarrez le serveur Django, vous pouvez configurer PyCharm pour qu’il le fasse à votre place.

Ouvrez la liste déroulante dans le widget Run et sélectionnez Edit configurations :

Modification de la configuration d'exécution

Sélectionnez la configuration de votre projet dans le volet de gauche, cochez la case Run browser et ajoutez meteo à l’URL :

Configuration de l'URL

Cliquez sur OK pour appliquer les modifications.

Techniquement, l’application fonctionne. Toutefois, son rendu dans le navigateur n’est pas très esthétique et elle ne donne toujours pas la possibilité d’obtenir la météo d’une localisation aléatoire. Dans les prochaines étapes, nous allons ajouter un gabarit et importer des données pour résoudre ces problèmes.

Améliorer l’expérience

Ajout d’un gabarit

Revenons à views.py et modifions à nouveau la fonction temp_here. Si vous êtes toujours dans meteo/urls.py, vous pouvez y accéder en un rien de temps. Maintenez / Ctrl, survolez temp_here avec le curseur et cliquez dessus lorsqu’il se transforme en hyperlien :

Navigation vers une définition de fonction

Ajoutez une ligne avant l’instruction return et saisissez template = loader.

Appuyez sur ⌥Entrée/ Alt+Entrée et utilisez un correctif rapide pour importer loader depuis django.template.loader :

Utilisez ensuite get_template() pour charger index.html en tant que gabarit :

    template = loader.get_template('index.html')

Remplacez maintenant l’instruction return par les deux lignes suivantes :

    context = {'temp': temp}
    return HttpResponse(template.render(context, request))

Index.html est mis en évidence par une ligne jaune ondulée, car il n’existe pas encore. Survolez-le avec le curseur et sélectionnez Create template index.html.

Création du fichier de modèle

Cliquez sur OK. PyCharm va créer index.html et l’ouvrir pour modification.

Le fichier est maintenant vide. Nous allons utiliser un modèle dynamique pour le remplir avec un gabarit de code html. Tapez html:5 et appuyez sur la touche Tab :

Utilisation du modèle dynamique

Le contenu visible d’une page html est situé entre les balises <body></body>

Insérez-y le code suivant :

<h1>Temperature at your location:</h1>
<h2>{{ temp }} ℃</h2>

Ici, temp est une variable qui est transférée au gabarit à partir des vues. Les noms et les valeurs des variables doivent être enregistrés dans un dictionnaire et transmis lors du rendu d’un gabarit. C’est ce que nous avons fait en affectant {‘temp’ : temp} à la variable de contexte dans views.py ci-dessus. 

La représentation Unicode du symbole de degrés Celsius est &#8451. Pour les degrés Farenheit, utilisez &#8457

Maintenant, réexécutez le serveur Django pour voir les modifications et vous assurer que l’application fonctionne comme prévu. Si vous avez modifié la configuration d’exécution comme expliqué ci-dessus, la fenêtre du navigateur doit s’ouvrir automatiquement :

Page d'application générée depuis le gabarit

Création d’une base de données et d’un modèle

Pour obtenir de l’API les données sur la température à une certaine position, il faut fournir les coordonnées de cette position.

Nous allons utiliser la base de données World cities de Juanma Hernández avec la licence CC BY 4.0. Téléchargez la base de données et extrayez worldcities.csv de l’archive. Vous devez vous inscrire sur Kaggle si vous n’y avez pas de compte.

Nous devons également ajouter la base de données db.sqlite3, créée automatiquement par Django, à notre projet PyCharm.

Pour ce faire :

  1. Ouvrez la fenêtre d’outils Database en cliquant sur l’icône de base de données à gauche. Vous pouvez également accéder à l’ensemble des fenêtres d’outils en appuyant sur ⌘E / Ctrl+E :
Accès à la fenêtre d'outil Database
  1. Cliquez sur + dans le coin supérieur gauche de la fenêtre d’outils, puis sélectionnez Data Source > SQLite. Vous pouvez commencer à taper sq… pour atteindre l’option voulue plus vite :
Création d'une source de données SQL Lite
  1. Cliquez sur près du champ File et recherchez le fichier db.sqlite3 dans votre dossier de projet.
  2. Il peut être nécessaire d’installer, de mettre à jour ou de changer le pilote de base de données. En cas d’avertissement en bas de la fenêtre, cliquez sur le lien pour exécuter l’action requise :
Installation/sélection du pilote de base de données
  1. Cliquez sur OK.

Pour importer des données dans la base, faites glisser et déplacez worldcities.csv vers db.sqlite3 dans la fenêtre d’outils Database. Dans la boîte de dialogue qui s’ouvre, supprimez les colonnes inutiles pour ne garder que city, lat, lng, country et id :

Désormais, la base de données db.sqlite3 contient le tableau worldcities :

Table worldcities dans la structure de base de données

Vous pouvez faire un double-clic dessus pour en afficher le contenu dans l’éditeur.

Django utilise des modèles pour interagir avec les bases de données. Nous allons créer un modèle pour activer la lecture des données depuis la table worldcities.

  1. Lancez la console de tâches manage.py en appuyant sur ⌥R / Ctrl+Alt+R
  2. Saisissez inspectdb worldcities et appuyez sur Entrée.
  3. Copiez la classe Worldcities de la sortie de la console dans meteomodels.py.
  4. Remplacez null=True par primary_key=True pour le champ id.

Vous devriez obtenir quelque chose comme cela :

from django.db import models


class Worldcities(models.Model):
    city = models.TextField(blank=True, null=True)
    lat = models.FloatField(blank=True, null=True)
    lng = models.FloatField(blank=True, null=True)
    country = models.TextField(blank=True, null=True)
    id = models.IntegerField(blank=True, primary_key=True)

    class Meta:
        managed = False
        db_table = 'worldcities'

Ajouter des fonctionnalités

Jusqu’à présent, nous n’avions qu’une seule fonction (temp_here) dans views.py qui renvoyait des informations sur la température actuelle à notre position. Nous allons ajouter une autre fonction pour afficher la température de la position demandée. Elle doit également obtenir les données de température actuelle depuis l’API. Par conséquent, conformément aux bonnes pratiques de Python, nous devons déplacer cette fonctionnalité vers une fonction distincte.

Dans PyCharm, cette opération se fait simplement avec la refactorisation Extract method.

Sélectionnez les lignes à déplacer vers une autre fonction et appuyez sur ⌥⌘M / Ctrl+Alt+M. Vous pouvez également utiliser Find Action :

Spécifiez get_temp dans le champ Method name et cliquez sur OK. Nous obtenons ainsi une fonction get_temp qui accepte location comme seul paramètre.

La fonction temp_here l’appelle pour recevoir la température à la position actuelle.

Le résultat de la refactorisation Extract Method

Nous allons créer la fonction temp_somewhere. Elle doit transférer les coordonnées d’une ville aléatoire à get_temp.

Commençons par un peu de prototypage dans la console Python. Ouvrez-la et collez le code suivant (si ImportError se produit, fermez et rouvrez la console) :

from meteo.models import Worldcities
random_item = Worldcities.objects.all().order_by('?').first()

Nous devons obtenir les données de la table worldcities. Pour ce faire, nous devons importer le modèle Worldcities depuis models.py.

Ensuite, nous allons randomiser tous les objets avec order_by(‘?’) et obtenir le premier objet avec first(). L’onglet Variables se trouve dans à droite de la fenêtre d’outils Python console. Développez le nœud random_item pour voir le contenu de random_item :

Inspection de la variable dans l'onglet Variables de la console Python

Le code complet de la fonction temp_somewhere devrait ressembler à cela :

def temp_somewhere(request):
    random_item = Worldcities.objects.all().order_by('?').first()
    city = random_item.city
    location = [random_item.lat, random_item.lng]
    temp = get_temp(location)
    template = loader.get_template("index.html")
    context = {
        'city': city,
        'temp': temp
    }
    return HttpResponse(template.render(context, request))

En plus de la température, context contient maintenant le nom de la ville. Nous allons modifier le gabarit de façon à ce qu’il restitue aussi ces informations.

Vous avez peut-être remarqué l’icône <> dans la gouttière. Cliquez dessus pour passer rapidement à index.html :

Icône de gouttière pour un accès rapide au fichier de gabarit

Remplacez le texte entre les balises <h1></h1> par {{ city }} :

Remplacement d'un en-tête par une variable

Cliquez sur l’icône de gouttière pour accéder rapidement à la fonction temp_here :

Icône de gouttière pour un accès rapide au fichier Python

Nous devons la modifier de façon à ce qu’elle transfère également la variable city :

Mise à jour de la fonction temp_here

La fonction temp_here est appelée lorsque la page https://127.0.0.1/meteo est ouverte dans le navigateur, que nous avons configuré dans meteo/urls.py.

Revenez à cet endroit et spécifiez que temp_somewhere doit être appelé en cas d’accès à https://127.0.0.1/meteo/discover :

urlpatterns = [
    path('meteo/', views.temp_here, name='temp_here'),
    path('meteo/discover', views.temp_somewhere, name='temp_somewhere'),
]

Revenez à index.html et ajoutez des liens à la page /discover et à la page d’accueil. Cette dernière affichera toujours la température à la position actuelle. Les modèles dynamiques et la saisie semi-automatique du code permettent de gagner beaucoup de temps :

Pour utiliser des modèles dynamiques pour les paragraphes et les liens dans des fichiers html, saisissez p ou a, puis appuyez sur la touche de Tab.

Pour voir la liste complète des modèles dynamiques disponibles, ouvrez les paramètres ( / Ctrl+Alt+S), allez à Editor > Live Templates, puis développez le nœud Zen HTML dans le volet de droite :

Configurer les paramètres de modèles dynamiques

Vous pouvez exécuter à nouveau le serveur et vous amuser avec l’application.

Ne vous arrêtez pas là

L’application est fonctionnelle, mais peut encore être améliorée. Le point d’amélioration le plus évident a priori est l’aspect visuel, mais il est aussi possible d’ajouter des fonctionnalités.

Utiliser CSS

L’utilisation de CSS est la solution la plus simple et rapide pour améliorer l’aspect de votre application Django. Vous pouvez par exemple utiliser Simple.CSS.

Placez la ligne suivante quelque part entre les balises <head></head> dans index.html :

<link rel="stylesheet" href="https://cdn.simplecss.org/simple.min.css">

Voici à quoi ressemble l’application ensuite :

Application de feuilles de style CSS

Remplacer les liens par des boutons permet d’améliorer encore un peu plus la présentation :

Remplacement des liens par des boutons

Pour ce faire, remplacez les liens entre les balises <p></p> dans index.html par le code html suivant :

<div style="display: flex;">
    <form action="./discover">
        <input type="submit" value="Check other places"/>
    </form>
    &nbsp;
    <form action=".">
        <input style="background: #dc3545" type="submit" value="Home"/>
    </form>
</div>

Vous pouvez voir les résultats de la modification de index.html sans avoir à quitter PyCharm pour aller dans un navigateur. Survolez le coin supérieur droit de la fenêtre de l’éditeur et sélectionnez Built-in Preview :

Utiliser Bootstrap

Bootstrap est un outil frontend puissant et gratuit. Pour l’appliquer rapidement à votre application Django, modifiez index.html de la façon suivante (pour plus d’informations, consultez le guide de prise en main de Bootstrap) :

  1. Ajoutez la balise link dans la section head du fichier html (remplacez l’entrée simple.css insérée lors de l’étape précédente) :
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">

2. Ajoutez le code suivant entre les balises <body></body> :

<div class="container text-center">
    <h1>{{ city }}</h1>
    <h2>{{ temp }} ℃</h2>
    <div class="btn-group" role="group">
        <button type="button" class="btn btn-outline-primary" onclick="location.href='./discover'">Check other places
        </button>
        <button type="button" class="btn btn-danger" onclick="location.href='.'">Home</button>
    </div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js" integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN" crossorigin="anonymous"></script>

Regardez le résultat :

Utilisation de Bootstrap dans l'application

Bootstrap offre de nombreuses possibilités de personnalisation de vos applications. Vous trouverez toutes les informations nécessaires dans la documentation.

À vous de jouer

Nous avons ajouté le champ country provenant de la base de données worldcities au modèle Worldcities, mais n’avons pas encore utilisé ces données dans l’application. Vous pouvez maintenant tester vos compétences en essayant de créer une application qui affiche les du pays en plus des villes. Vous devriez obtenir un résultat similaire à ceci :

Ajouter des informations sur le pays à l'application

Résumé

Dans ce tutoriel, nous avons vu comment :

  • Créer des projets Django dans PyCharm
  • Créer des vues et des gabarits
  • Faire des appels d’API et traiter les réponses
  • Se connecter à des bases de données et importer des données
  • Améliorer l’aspect de l’application en utilisant CSS et Bootstrap.

Article original en anglais de :

Delphine Massenhove

Denis Mashutin

]]>
https://blog.jetbrains.com/zh-hans/pycharm/2023/05/creer-une-application-django-dans-pycharm/ https://blog.jetbrains.com/ja/pycharm/2023/05/creer-une-application-django-dans-pycharm/ https://blog.jetbrains.com/pycharm/2023/05/creer-une-application-django-dans-pycharm/
KotlinConf 2023 : les vidéos de toutes les sessions sont disponibles https://blog.jetbrains.com/fr/kotlin/2023/05/kotlinconf-2023-les-videos-de-toutes-les-sessions-sont-disponibles/ Wed, 17 May 2023 15:47:30 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/05/DSGN-16229-Banners-for-KotlinConf-recordings2_Blog-Featured-image-1280x600-FR.png https://blog.jetbrains.com/?post_type=kotlin&p=354669 Les enregistrements des sessions de KotlinConf 2023 sont maintenant disponibles !

Que vous ayez manqué cet événement ou souhaitiez revoir les interventions qui vous ont particulièrement plu, vous pouvez maintenant retrouver toutes les sessions sur le site de la KotlinConf, ainsi que des photos de la conférence. Les supports de présentation de certaines des interventions enregistrées sont accessibles en cliquant sur la session concernée puis sur « Download slides ». Tous les enregistrements sont également disponibles sur la chaîne YouTube de Kotlin.

La dernière KotlinConf a eu lieu à Amsterdam du 12 au 14 avril 2023 et a rassemblé plus de 1 300 personnes. La journée du 12 a été consacrée à des ateliers pratiques. Le deuxième jour a commencé avec la keynote d’ouverture, qui a réuni Roman Elizarov, Svetlana Isakova, Egor Tolstoy et Grace Kloba, et a donné le coup d’envoi de 2 jours de sessions simultanées réparties en 5 parcours. La conférences s’est achevée avec le panel de clôture, aussi divertissant que riche en informations, animé par Hadi Hariri, à l’issue duquel le public présent comme les personnes suivant le Livestream ont pu poser leurs questions aux intervenants.

Ne manquez pas ces informations complémentaires sur la conférence :

  • Retour sur les annonces et moments clés de la keynote d’ouverture dans cet article de blog.
  • Watch KotlinConfersations, l’émission d’entretiens et échanges avec les intervenants et le public enregistrée durant la conférence et présenté par Huyen Tue Dao, qui faisait également partie des intervenants. 

Découvrez ou revivez les meilleurs moments de la KotlinConf 2023 chez vous !

Pour vous tenir au courant des actualités relatives à la conférence, suivez KotlinConf sur Twitter @kotlinconf.

Article original en anglais de :

Delphine Massenhove

Ksenia Shneyveys

]]>
https://blog.jetbrains.com/zh-hans/kotlin/2023/05/kotlinconf-2023-les-videos-de-toutes-les-sessions-sont-disponibles/ https://blog.jetbrains.com/ko/kotlin/2023/05/kotlinconf-2023-les-videos-de-toutes-les-sessions-sont-disponibles/ https://blog.jetbrains.com/ja/kotlin/2023/05/kotlinconf-2023-les-videos-de-toutes-les-sessions-sont-disponibles/ https://blog.jetbrains.com/kotlin/2023/05/kotlinconf-2023-les-videos-de-toutes-les-sessions-sont-disponibles/
Qodana 2023.1 : Configuration de profils flexible, Prise en charge de la migration vers le compilateurKotlin/JS IR, Vérification de la compatibilité des licences pour Go, intégration des plugins, et plus de 30 nouvelles Inspections https://blog.jetbrains.com/fr/qodana/2023/05/qodana-2023-1/ Mon, 15 May 2023 07:29:21 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/04/Blog_Featured_image_1280x600-3-1.png https://blog.jetbrains.com/?post_type=qodana&p=353123 Actuellement en version Preview, Qodana est la plateforme de contrôle de la qualité du code intelligente de JetBrains. Ce puissant moteur d’analyse statique intègre les inspections des IDE de JetBrains à n’importe quel pipeline de CI et exécute les vérifications fortement consommatrices de ressources sur le serveur de CI, ce qui vous fait gagner du temps et économiser des ressources informatiques. Avec Qodana, vous bénéficiez de la prise en charge de plus de 60 technologies et pouvez analyser un nombre illimité de lignes de code.

La dernière mise à jour de Qodana introduit des améliorations majeures pour vous aider à assurer la qualité de votre code. Cette version 2023.1 améliore considérablement la flexibilité de l’étape d’analyse statique de votre pipeline de CI. Elle permet par ailleurs la configuration intelligente des vérifications pour l’analyse de vos projets et introduit un moyen simple d’ajouter des plugins au moteur d’analyse statique Qodana. 

Poursuivez votre lecture pour en découvrir les principales nouveautés ou consultez directement les informations sur les améliorations spécifiques au linter. 

Essayer Qodana gratuitement

Principales nouveautés 

Configuration de profils flexible grâce au nouveau format YAML

Les profils d’inspection ont un rôle essentiel dans la configuration de Qodana. Ils définissent un ensemble d’inspections que Qodana applique ensuite à votre code lors de son analyse.

La version 2023.1 de Qodana fournit des capacités de configuration de profil flexibles dans un format YAML lisible par l’homme, afin de faciliter la personnalisation de votre profil d’inspection et son ajustement au fur et à mesure de l’avancement de votre projet. Voici les possibilités dont vous disposer pour affiner votre analyse :

  • [NOUVEAU] Regrouper des inspections et gérer ces groupes. 
  • [NOUVEAU] Inclure les profils existants et en configurer de nouveaux. 
  • Activer et désactiver les inspections.
  • Configurer les paramètres des inspections. 
  • Configurer la portée des inspections. 

Vous pouvez par exemple exclure l’inspection PhpDeprecationInspection du linter Qodana for PHP et utiliser la catégorie d’inspection PHP/General.

name: "PHP/General without PhpDeprecationInspection"
inspections:
  - group: "category:PHP/General"
    enabled: true # Enable the 'PHP/General' category
  - inspection: PhpDeprecationInspection
    enabled: false # Disable the PhpDeprecationInspection inspection

Consultez la documentation pour en savoir plus sur les profils personnalisés. 

Refactorisation majeure des profils par défaut

Qodana propose deux types de profils par défaut : qodana.starter, idéal pour l’analyse initiale du projet, n’est utilisé que pour les vérifications vitales, et qodana.recommended permet d’effectuer une série d’inspections présélectionnées largement adaptées à la plupart des projets.

Nous avons réécrit les deux profils pour les aligner sur le profil par défaut fourni dans nos IDE. Cela donne une meilleure vue d’ensemble des inspections fournies par les profils et vous assure que les inspections effectuées par Qodana et votre IDE sont en grande partie les mêmes, ce qui favorise une approche plus cohérente de la qualité du code. 

Le profil qodana.recommended actualisé est disponible sur GitHub. Ce profil correspond au profil par défaut de l’IDE, à quelques exceptions près :

  • Pour une analyse plus légère, toutes les inspections globales sont désactivées, car elles peuvent prendre beaucoup de temps.  
  • Certains répertoires de projet, comme les répertoires de build et les sources de test, sont exclus de l’analyse par défaut.

Le profil qodana.starter actualisé est aussi disponible sur GitHub. Ce profil est dérivé du profil qodana.recommended et n’effectue que les vérifications essentielles. Voici les principales modifications que nous y avons apportées :

  • Les inspections avec la sémantique codestyle and code conventions sont désactivées. 
  • Les inspections sont désactivées pour les parties non exécutables de la base de code (par exemple les commentaires Javadocs).

Possibilité d’ajouter facilement des plugins à Qodana

Si vous souhaitez étendre les capacités de Qodana en utilisant des plugins d’inspection de JetBrains Marketplace, il vous suffit d’ajouter leurs identifiants à votre fichier qodana.yaml

Grâce aux récentes mises à jour de la Marketplace, vous pouvez désormais copier l’identifiant d’un plugin directement à partir de sa page. 

Il y a deux moyens d’installer les logiciels tiers requis pour vos plugins :

  • Utiliser l’option bootstrap.
  • Développer un Dockerfile personnalisé qui commence par FROM jetbrains/qodana… Vous pouvez utiliser les exemples de Dockerfile Qodana disponibles sur GitHub.

Voici une quelques-uns des plugins les plus populaires susceptibles de vous intéresser :

  • Grazie Professional offre une assistance avancée pour l’écriture en langage naturel, avec la correction de l’orthographe et de la grammaire, la saisie semi-automatique en langage naturel, et d’autres outils pour la rédaction et l’édition de textes. 
  • CheckStyle permet de vérifier les fichiers Java en temps réel ou à la demande depuis IntelliJ IDEA.
  • Zero Width Characters Locator ajoute une inspection qui permt d’éviter certains bugs difficiles à trouver en lien avec les caractères d’espacement invisibles dans le code source et les ressources. 

Vous pouvez trouver d’autres plugins en utilisant la fonction de recherche sur la Marketplace JetBrains. 

Veuillez noter que Qodana ne prend pas en charge les plugins payants et qu’il est possible que certains plugins ne soient pas compatibles avec la version actuelle. Nous travaillons à l’introduction de vérifications de compatibilité appropriées pour les plugins Qodana sur la Marketplace.

Mises à jour spécifiques au linter

Nouvelles inspections JVM dans Qodana 

Inspections pour le compilateur Kotlin / JS IR

L’équipe Kotlin a inauguré un nouveau compilateur IR qui prend en charge la migration de code source Kotlin vers JavaScript. Pour faciliter le processus de migration et détecter les erreurs potentielles, Qodana prend désormais en charge les inspections suivantes :

NonExternalClassifierExtendingStateOrProps

L’utilisation d’interfaces et de classes Kotlin (y compris les classes de données) dérivées de classes JS pures, telles que State et Props de React, peut entraîner des ClassCastExceptions. Ces exceptions sont dues au fait que le compilateur essaye de traiter les instances de ces classes comme s’il s’agissait d’objets Kotlin, alors qu’elles proviennent de JS.

La solution est de convertir toutes les classes et interfaces dérivées de classes JS pures en interfaces externes. Qodana signalera les utilisations d’extensions de classificateurs non externes de State ou Props

NonVarPropertyInExternalInterface

Les interfaces externes dans le code Kotlin / JS ne peuvent pas avoir de propriétés en lecture seule (val) car leurs valeurs ne peuvent être attribuées qu’après la création des objets avec js() ou jso(). La solution consiste à convertir toutes les propriétés des interfaces externes en var.

Qodana mettra en évidence toutes les propriétés autres que var afin que vous puissiez les convertir.

SpringTransactionalMethodCallsInspection

Le framework Spring vous permet de gérer les transactions d’une application un utilisant les annotations de code. Seuls les appels externes d’une méthode marquée par `@Transaction` s’exécutent sous une transaction. Les auto-invocations ne démarrent pas une nouvelle transaction. Avec cette nouvelle inspection, Qodana met en évidence ces cas qui peuvent générer des erreurs dans la gestion des transactions.

JUnitMixedFramework

L’utilisation de plusieurs versions de JUnit dans un projet peut entraîner des erreurs si les développeurs mélangent accidentellement plusieurs versions dans un même scénario de test. Voici un exemple avec le code suivant :

Le test est exécuté avec JUnit4, donc l’annotation BeforeEach de JUnit5 ne sera pas traitée, et le test échouera avec une NullPointerException. 

Par défaut, Qodana ne vérifie pas les sources de tests. Pour inclure cette inspection, il faut ajouter la configuration suivante à qodana.yaml :

include:
  - name: JUnitMixedFramework
    paths:
    - <path-to-tests-directory>

MathRoundingWithIntArgument

Cette inspection signale les appels aux méthodes round(), ceil(), floor() et rint() pour Math et StrictMath. L’appel de ces méthodes sur un entier est redondant et indique qu’une erreur s’est produite commise, par exemple la division accidentelle d’un entier.

Essayer Qodana pour la JVM

Audit de licences tierces pour Go

Si vous utilisez des composants open source, externalisez le développement ou réutilisez du code provenant de services tels que GitHub, vous devez vous assurer d’utiliser les licences appropriées. Il peut arriver d’importer une bibliothèque avec une licence restrictive dans la base de code d’un logiciel ou d’oublier de mettre à jour une licence expirée. Dans un tel cas, l’organisation s’expose à des risques juridiques et sa réputation peut s’en trouver affectée. 

Pour réduire ces risques, nous avons introduit l’année dernière une fonctionnalité d’audit de licences pour Java, Kotlin, PHP et JavaScript, et cette version ajoute la prise en charge de Go. Qodana répertorie les licences des dépendances dans un référentiel analysé et vous avertit en cas de problème concernant leur compatibilité avec les licences du projet, comme dans l’exemple ci-dessous :

Voici à quoi ressemble la liste des licences des dépendances :

Essayer Qodana pour Go

Mises à jour pour .NET

Le profil d’inspection respecte désormais les paramètres du référentiel

Auparavant, les paramètres du niveau de gravité des inspections dans le profil d’inspection pour le linter .NET étaient basées sur les valeurs par défaut provenant de ReSharper. Cette approche entraînait la duplication de paramètres lorsqu’un projet utilisait déjà des couches de configuration de solution et de projet de ReSharper et de Rider ainsi que des fichiers .editorconfig stockés dans le référentiel. Si on apportait des modifications à l’une de ces couches, il fallait les répercuter dans le profil YAML de Qodana. 

Désormais, le profil d’inspection hérite automatiquement des paramètres de ReSharper et du fichier .editorconfig s’ils sont fournis dans le référentiel. Plus besoin de travail manuel ! 

La section des paramètres de configuration YAML de Qodana a été renommée

Le fichier de configuration qodana.yaml contenait auparavant une section dot-net dans laquelle on pouvait spécifier les solutions ou les projets à ouvrir, ainsi que les options de configuration et de plateforme. Cette section a été renommée dotnet et l’appellation dot-net sera supprimé dans la version 2023.2 de Qodana.

Essayer Qodana pour .NET

Comment passer à Qodana 2023.1

Si vous exécutez Qodana avec la balise Docker latest, vous n’avez aucun changement à faire. Si ce n’est pas le cas, vous devez effecter la mise à jour vers la version 2023.1 dans le workflow de CI pour lequel vous utilisez Qodana. Pour en savoir plus sur les intégrations de CI existantes, consultez la documentation.   

Les inspections ne sont pas toutes activées automatiquement. Pour exclure ou inclure certaines inspections de votre analyse, vous pouvez personnaliser votre profil d’inspection. 

 

Voilà pour les principales nouveautés de Qodana 2023.1 ! Pour plus de détails, consultez les notes de publication. Nous espérons que vous apprécierez cette nouvelle version. Si vous avez des suggestions pour de futurs sujets d’articles ou souhaitez en savoir plus sur la façon dont Qodana peut vous aider, laissez un commentaire ci-dessous, taguez-nous sur Twitter ou écrivez-nous à qodana-support@jetbrains.com.

Bon développement et veillez à maintenir votre code propre !

L’Équipe Qodana

Écrivez du code dont vous pouvez être fier

Article original en anglais de :

Delphine Massenhove

Valerie Kuzmina

]]>
https://blog.jetbrains.com/zh-hans/qodana/2023/05/qodana-2023-1/ https://blog.jetbrains.com/ko/qodana/2023/05/qodana-2023-1/ https://blog.jetbrains.com/ja/qodana/2023/05/qodana-2023-1/ https://blog.jetbrains.com/qodana/2023/05/qodana-2023-1/
Le DSL Kotlin devient le langage par défaut pour les nouveaux builds Gradle https://blog.jetbrains.com/fr/kotlin/2023/05/le-dsl-kotlin-devient-le-langage-par-defaut-pour-les-nouveaux-builds-gradle/ Wed, 10 May 2023 15:22:55 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/04/DSGN-15924-Kotlin-as-Gradles-Go-To-DSL_Blog-Featured-image-1280x600-1.png https://blog.jetbrains.com/?post_type=kotlin&p=351933 L’un de nos principaux objectifs est de favoriser la création de builds mieux structurés et plus simples à maintenir pour les développeurs. À cet égard, l’utilisation de Kotlin pour la création de scripts de builds et de plugins Gradle nous apparaît comme naturelle, car le langage fournit de nombreuses fonctionnalités puissantes, idéales pour créer un DSL et améliorer de façon significative l’expérience des développeurs.

Nous avons beaucoup avancé dans notre travail depuis l’introduction de Kotlin dans Gradle et nous avons le plaisir d’annoncer que le DSL Kotlin est maintenant le langage par défaut pour les nouveaux builds Gradle ! Le DSL Kotlin devient donc l’option par défaut dans les plugins et la documentation. Les fonctionnalités avancées de Kotlin, telles que les fonctions de première classe et les méthodes d’extension, permettent de gérer et d’améliorer les meilleurs éléments des scripts Gradle.

JetBrains, Google et Gradle ont annoncé que le DSL Kotlin est maintenant l'option par défaut pour les nouveaux builds Gradle

« Grâce à la collaboration fructueuse entre JetBrains, Google et Gradle, le DSL Kotlin a atteint un niveau de maturité supérieur , et sa dernière version est encore plus efficace et conviviale pour les projets des développeurs. » ~ L’équipe Gradle

Google a par ailleurs annoncé l’utilisation du DSL Kotlin comme script par défaut des fichiers de builds Gradle pour les applications Android.

Google, Gradle et JetBrains vont poursuivre leur collaboration pour obtenir un style de codage unifié et des idiomes définis, afin d’améliorer la qualité du code pour les utilisateurs de Kotlin.

Dans cet article, nous présentons les principaux avantages du DSL Kotlin pour l’écriture de scripts Gradle et les capacités de prise en charge actuelles des IDE pour les fichiers build.gradle.kts.

Avantages du DSL Kotlin par rapport à Groovy

Kotlin combine plusieurs points forts qui font du DSL Kotlin un choix de premier ordre pour l’écriture de scripts de builds et de plugins Gradle.

Si vous hésitez encore à passer de Groovy à Kotlin pour vos fichiers de builds Gradle pour Android, voici les 4 principaux avantages à utiliser Kotlin.

  1. Les vérifications lors de la compilation

Groovy est un langage dynamique, alors que Kotlin est un langage à typage statique. Ainsi, lorsque le DSL Kotlin est utilisé, les erreurs de script du build sont visibles dès la compilation, sans attendre l’exécution.

À l’inverse, avec la vérification de type dynamique , les erreurs ne sont détectées qu’une fois le script de build exécuté. Les vérifications lors de la compilation vous permettent de résoudre les problèmes plus tôt. D’autre part, si vous travaillez dans un IDE, l’éditeur peut vous signaler ces erreurs. Voici par exemple ce que vous verrez si vous essayez de référencer le nom de configuration `applications` au lieu de `application`.

Lorsque le DSL Kotlin est utilisé, les erreurs du script de build peuvent être repérées lors de la compilation

2. Une meilleure expérience avec l’IDE

Avec plus d’informations sémantiques sur le code, vous pouvez tirer pleinement parti des fonctionnalités de l’IDE, parmi lesquelles :

  • La saisie semi-automatique et l’assistance relative au contenu
  • La navigation dans le code source
  • Les refactorisations

Jusqu’à présent, ce sont IntelliJ IDEA et Android Studio qui offrent l’environnement le mieux intégré pour Kotlin. Vous pouvez toutefois importer des builds basés sur le DSL Kotlin et travailler avec ceux-ci dans d’autres IDE. Nous vous invitons à consulter la matrice sur la prise en charge du DSL Kotlin dans les IDE disponible dans la documentation Gradle.

3. La syntaxe déclarative simplifiée du plugin

Le DSL Kotlin offre une syntaxe différente de celle du DSL Groovy classique et présente les mêmes avantages que le langage Kotlin de base. Examinons ces deux langages pour les comparer.

Lorsque vous utilisez un plugin Gradle à un projet, vous devez seulement spécifier l’ID du plugin. Par exemple, spécifier le plugin `application` avec le DSL Groovy donnerait ceci :

Spécifier l'ID du plugin avec le DSL Groovy

Grâce à la syntaxe simplifiée du DSL Kotlin, vous n’avez plus qu’à saisir “application” en Kotlin :

Spécifier l'ID du plugin avec le DSL Kotlin

Comme indiqué plus haut, l’IDE signalera une erreur de syntaxe si vous tentez d’appliquer un plugin qui n’existe pas.

4. Une communauté de développeurs Kotlin en plein essor

Kotlin fédère une importante communauté de développeurs passionnés, qui apportent leur contribution au langage et aux bibliothèques, et proposent des plugins Gradle.

La proactivité et la croissance de la communauté favorisent la production d’une grande quantité de ressources utiles, provenant de développeurs expérimentés comme de nouveaux utilisateurs de Kotlin, parmi lesquelles la documentation officielle de Kotlin, mais aussi des forums, des blogs, des fils de discussion sur les réseaux sociaux et des formations en ligne.

La disponibilité de toutes ces ressources permet aux utilisateurs de trouver plus facilement des solutions à leurs problèmes et de développer leurs compétences.

Passer de Groovy au DSL Kotlin

La puissance des fonctionnalités et les avantages offerts par le DSL Kotlin en font un choix idéal pour gagner en productivité et créer des logiciels hautement performants. Si vous souhaitez faire passer un build Gradle existant de Groovy au DSL Kotlin, consultez ce tutoriel sur la migration de Gradle. Pour les développeurs Android, il existe un guide détaillé sur la conversion des fichiers de builds Gradle de votre application Android de Groovy vers KTS.

Gradle continue d’assurer la prise en charge du DSL Groovy et recommande de ne pas migrer les gros projets ayant une logique de build complexe et utilisant le DSL Groovy pour le moment. Toutefois, Kotlin étant devenu le DSL Gradle par défaut, nous pensons que son utilisation offrira une meilleure expérience pour l’écriture et la modification des scripts de builds, et notre équipe continue de travailler à la conception d’outils riches en fonctionnalités pour le développement d’applications efficaces.

Article original en anglais de :

Delphine Massenhove

Anton Yalyshev

]]>
https://blog.jetbrains.com/zh-hans/kotlin/2023/05/le-dsl-kotlin-devient-le-langage-par-defaut-pour-les-nouveaux-builds-gradle/ https://blog.jetbrains.com/ko/kotlin/2023/05/le-dsl-kotlin-devient-le-langage-par-defaut-pour-les-nouveaux-builds-gradle/ https://blog.jetbrains.com/ja/kotlin/2023/05/le-dsl-kotlin-devient-le-langage-par-defaut-pour-les-nouveaux-builds-gradle/ https://blog.jetbrains.com/kotlin/2023/05/le-dsl-kotlin-devient-le-langage-par-defaut-pour-les-nouveaux-builds-gradle/
YouTrack inaugure les projets Helpdesk https://blog.jetbrains.com/fr/youtrack/2023/04/youtrack-inaugure-les-projets-helpdesk/ Thu, 27 Apr 2023 16:16:23 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/04/YouTrack_Helpdesk-Projects_blog_featured_fr-2x.png https://blog.jetbrains.com/?post_type=youtrack&p=346243

YouTrack 2023.1 inaugure YouTrack Helpdesk, un nouveau type de projet pour faciliter la gestion des services d’assistance aux clients et aux collaborateurs. Avec les projets Helpdesk, YouTrack aide les agents des services d’assistance à traiter efficacement un nombre illimité de demandes dans un seul et même outil et améliore l’expérience des clients externes comme internes.

YouTrack 2023.1 offre par ailleurs plusieurs améliorations visant à faciliter le travail des équipes. Les mises à jour apportées à la base de connaissances simplifient la création de documentation publique et de FAQ. Les améliorations de l’intégration pour Zendesk et la messagerie facilitent la migration de votre service d’assistance client. De nouvelles options de contenu, comme la possibilité d’intégrer des tableaux Miro et des vidéos Google Drive aux tâches et articles, vous aident à enrichir votre base de connaissances, ainsi que les tickets et les tâches.

Principales fonctionnalités de YouTrack Helpdesk

L’expérience YouTrack Helpdesk commence avec le nouveau type de projet dédié aux services d’assistance. Nous avons conçu ces projets en tenant compte non seulement du travail des agents du service d’assistance, mais aussi des contributions des autres équipes, afin de permettre une collaboration optimale en faveur des clients internes comme externes. Vous travaillez sur ces projets dans l’interface YouTrack que vous connaissez et appréciez, aux côtés des autres projets gérés par vos équipes. Les demandes des clients peuvent être collectées par e-mail ou via un formulaire personnalisable intégré à un site web ou à un portail interne. Ces demandes arrivent ensuite dans le projet Helpdesk sous forme de tickets.

Pour traiter les tickets, les agents disposent d’outils spécifiquement adaptés aux scénarios d’assistance courants, tels que les commentaires internes et externes, des modèles de signatures et de réponses, des fonctionnalités pour la gestion des accords de niveau de service (SLA). Les tickets mis à jour avec les réponses sont ensuite envoyés aux clients par e-mail.

YouTrack favorise la communication et les interactions avec vos clients : les rapporteurs peuvent accéder à leurs tickets et au contenu public de la base de connaissances simplement via une URL YouTrack. La base de connaissances contient non seulement les documents visibles par les membres de votre équipe, mais aussi des FAQ, de la documentation et d’autres ressources utiles pour les rapporteurs.

Avec les projets Helpdesk, vous pouvez répondre gratuitement aux demandes d’un nombre illimité de clients. Vous commencez avec 3 agents qui peuvent utiliser toutes les fonctionnalités gratuitement dans YouTrack Server comme dans YouTrack Cloud. Si votre équipe d’assistance s’agrandit, vous pouvez à tout moment passer à un abonnement payant pour 4 agents ou plus. Pour les utilisateurs de solutions concurrentes, nous offrons la prise en charge gratuite de 10 agents pendant 1 an dans YouTrack Helpdesk Cloud. Pour en savoir plus, consultez la page Tarifs de YouTrack Helpdesk.

Les projets Helpdesk sont conçus pour favoriser l’implication d’autres équipes dans les projets d’assistance

et les échanges avec les clients, deux éléments primordiaux pour être en mesure d’offrir une assistance de qualité. Nous avons pris en compte les retours d’expérience de nos utilisateurs afin d’offrir aux agents des équipes d’assistance les fonctionnalités dont ils ont besoin pour traiter les demandes de façon fluide et efficace.

Une approche centrée sur le client doit aussi permettre l’implication d’autres équipes de l’entreprise dans le traitement des demandes d’assistance. YouTrack Helpdesk facilite la collaboration sur les tickets en vue de résoudre les problèmes et de répondre aux demandes et questions des clients plus facilement et rapidement. Les membres d’autres équipes apporter leur aide aux agents du service d’assistance sans que cela n’affecte leur travail sur d’autres projets, car ils n’ont pas à passer d’un contexte à un autre.

Helpdesk pour les agents du service d’assistance

Collecter les informations pertinentes auprès des clients

YouTrack Helpdesk vous permet de collecter les tickets clients par e-mail et via un formulaire personnalisable. L’utilisation d’un formulaire vous donne la possibilité de définir des champs obligatoires et facultatifs. Une fois que vous avez finalisé le contenu de votre formulaire et son design dans l’éditeur visuel de YouTrack, il vous suffit de copier un bloc de code pour l’intégrer au site sur lequel vos clients l’utiliseront.

Vue d’ensemble des tickets

La vue Helpdesk dédiée aux services d’assistance permet aux agents d’avoir une vue d’ensemble de tous les tickets et d’utiliser des recherches prédéfinies, telles que « Tous les tickets », « Tickets non résolus », « Tickets qui vous ont été attribués », etc. Ils disposent de plusieurs filtres et colonnes personnalisables afin d’accéder au niveau de détail requis et peuvent enregistrer des recherches filtrées pour la consulter ultérieurement ou la partager avec leurs collègues.

Discussions sur les tickets et publication des réponses

Lorsqu’un agent du service d’assistance commente un ticket, il a le choix d’envoyer sa réponse directement au client ou de la conserver. Dans le second cas, les autres membres de l’équipe peuvent participer à la discussion et leurs réponses ne seront visibles qu’en interne. Une fois la solution trouvée, l’agent peut publier une réponse externe, qui sera envoyée au client par e-mail.

En cas de faute de frappe ou d’erreur dans le message, les agents ont 60 secondes pour annuler la publication de leur commentaire.

Utilisation de signatures et de modèles de réponses prédéfinis

Si vous devez saisir des réponses identiques de façon répétée, les modèles de réponses et les signatures automatiques sont là pour vous faire gagner du temps. Vous pouvez ajouter les réponses les plus courantes à des modèles dans les paramètres du projet Helpdesk pour les utiliser lorsque vous publiez des commentaires. Les signatures des agents peuvent également être prédéfinies et ajoutées automatiquement sous chacune de leurs réponses publiques.

Suivi du temps de réponse avec les Accords de Niveau de Service (SLA)

Les projets Helpdesk facilitent la gestion des accords de niveau de service. Vous pouvez indiquer le délai de traitement prévu pour les demandes en fonction de divers critères (type de demande, niveau de priorité, jours et horaires de travail, etc.). YouTrack mettra automatiquement à jour les tickets en fonction des échéances et du calendrier de SLA définis.

Automatisation de l’assistance grâce aux workflows 

Les workflows de YouTrack renforcent les capacités du service d’assistance en offrant de nombreuses options de personnalisation pour adapter les processus aux clients et à l’équipe. Certains workflows prédéfinis sont directement disponibles, notamment pour fusionner les tickets en double et fermer automatiquement des tickets en attente.

Vous avez la possibilité d’utiliser un constructeur de workflows visuel ou un éditeur de workflows JavaScript pour créer des automatisations plus puissantes pour votre processus d’assistance. Les workflows peuvent par exemple servir à rediriger des demandes vers l’équipe ou l’agent approprié en fonction du type de demande ou d’autres critères.

Hekpdesk pour les autres équipes de l’entreprise

La qualité de la collaboration entre le service d’assistance et les autres équipes de l’entreprise est essentielle à l’efficacité du traitement des demandes des clients 

Assurer la sécurité des communications

Les projets d’assistance sont visibles par tous les rapporteurs, mais les tickets de ces projets ne le sont que par le rapporteur qui les a créés et l’équipe d’assistance. Toutes les informations figurant dans un ticket et les communications qu’il contient sont entièrement sécurisées et seuls l’équipe d’assistance travaillant sur ce projet et le rapporteur y ont accès. Les rapporteurs ne voient que les tickets qu’ils ont émis, les données privées des clients ne sont donc pas divulguées publiquement. Vous pouvez toutefois modifier les paramètres de visibilité interne pour votre équipe, en choisissant qui travaille sur chaque projet, soit en tant qu’agent d’assistance en charge du traitement de la demande, soit pour consulter les données et commenter les tickets en interne en tant que membre du projet.

Les collaborateurs de l’entreprise non inclus dans le projet Helpdesk n’y auront pas accès. 

Intervenez facilement pour apporter votre aide

Les collaborateurs ne faisant pas partie de l’équipe d’assistance qui sont invités à discuter de cas spécifiques peuvent facilement naviguer entre les différents tickets et les tâches dans la vue Tickets de YouTrack, qu’ils connaissent déjà. Tous les workflows habituels sont disponibles. Par exemple, les notifications concernant les tickets sont envoyées de la même manière que les notifications relatives aux tâches.

Gérez votre processus à l’aide d’une vue d’ensemble concise

YouTrack fournit des informations sur les tickets via des rapports sur l’affectation des tickets, le temps passé et les changements d’état, ce qui permet aux responsables des services d’assistance d’évaluer l’efficacité du workflow.

À partir de ces rapports, vous pouvez également créer des tableaux de bord distincts pour obtenir différentes vues d’ensemble, par exemple sur le niveau de la charge de travail de l’équipe d’assistance à une date donnée.

Invitez vos clients dans YouTrack Helpdesk

Vos clients recevront toujours des réponses à leurs demandes par e-mail. Mais comment leur donner accès à davantage d’informations dans un seul et même endroit ? Invitez-les directement dans YouTrack !

Avec la même URL YouTrack que celle qu’utilisent les membres de l’équipe d’assistance, vos clients ont accès à une base de connaissances publique et à la liste de leurs tickets avec toutes les mises à jour publiques. En revanche, ils ne peuvent pas voir les communications internes de l’équipe sur le ticket.

Les clients peuvent également échanger avec l’équipe dans les commentaires des tickets, vous fournir des informations supplémentaires en joignant des fichiers, etc.

Autres améliorations fournies dans YouTrack 2023.1

Balises et fonctionnalité de recherche puissante dans la base de connaissances

La base de connaissances de YouTrack est souvent utilisée pour créer des FAQ ou de la documentation sur les produits. Avec l’arrivée des projets Helpdesk et l’implication de rapporteurs externes dans YouTrack, il est d’autant plus utile de pouvoir créer une base de connaissances publique pour vos clients. 

La granularité des paramètres de visibilité de YouTrack permet d’adapter précisément les informations à des audiences spécifiques. Les articles de la base de connaissances appartenant à un projet spécifique, vous pouvez créer un projet de service d’assistance distinct afin de publier toute la documentation externe à destination des rapporteurs. La base de connaissances permet aussi de mettre des articles à disposition des membres de l’équipe d’assistance. Si vous décidez de les stocker dans le même projet, vous pouvez utiliser les paramètres de visibilité des articles afin de définir les contenus publics et les contenus réservés à un usage interne.

Il est important que les collaborateurs comme les clients puissent trouver facilement les informations qu’ils recherchent dans la base de connaissances, c’est pourquoi nous avons amélioré les performances de la fonctionnalité de recherche en y ajoutant des filtres. En outre, il est désormais possible d’ajouter des balises aux articles de la base de connaissances pour les utilisateurs internes.

Améliorations de l’intégration pour Zendesk et la messagerie

Mise à jour de l’intégration Zendesk. Si vous utilisez Zendesk pour traiter les demandes de vos clients, jetez un œil aux améliorations que nous avons apportées à son intégration pour faciliter la migration de votre service d’assistance vers le nouvel outil ou les utiliser en parallèle. L’intégration de Zendesk simplifie la gestion des demandes des clients grâce à la synchronisation entre Zendesk et YouTrack. Lorsqu’un ticket est créé dans Zendesk, l’intégration génère un nouveau ticket de demande d’assistance dans YouTrack qui comporte un lien vers le Zendesk correspondant.

Amélioration de l’intégration de la messagerie. Nous avons amélioré les performances et la fiabilité de la messagerie afin que l’intégration de boîtes de réception et la communication avec vos clients dans le cadre des projets Helpdesk soient optimales. Pour les administrateurs de YouTrack, nous avons ajouté une vue permettant de vérifier l’état de l’intégration de la messagerie et de contrôler le flux des e-mails traités.

Pour la liste complète des correctifs de bugs et des améliorations apportées à cette version, consultez les notes de publication. Vous trouverez les informations sur la configuration des nouvelles fonctionnalités dans la documentation.

Si vous utilisez YouTrack Cloud, la mise à niveau vers la version 2023.1 se fera automatiquement, conformément à notre calendrier de maintenance. Si vous disposez d’un abonnement Server actif, vous pouvez télécharger YouTrack 2023.1 dès aujourd’hui. Si vous n’avez pas encore de licence, vous pouvez utiliser l’essai gratuit pour tester la nouvelle version. Pour en savoir plus sur les options de licences disponibles pour YouTrack et YouTrack Helpdesk, veuillez consulter la page Achat.

Suite à la mise à niveau vers la version 2023.1, YouTrack Helpdesk sera disponible pour tous les utilisateurs de YouTrack Server et de YouTrack Cloud via le forfait gratuit Free ou via un abonnement payant. Les clients Cloud disposant de l’ancien abonnement par utilisateur devront passer au nouveau modèle d’abonnement par utilisateur afin de pouvoir utiliser YouTrack Helpdesk. Veuillez contacter notre équipe commerciale pour plus d’informations.

Vos retours d’expérience comptent pour nous, alors n’hésitez pas à nous en faire part dans la section commentaires ci-dessous et à contacter notre équipe d’assistance pour toute question. Nous sommes toujours là pour vous aider !

L’Équipe YouTrack

Auteur de l’article original en anglais :

Delphine Massenhove

Elena Pishkova

]]>
https://blog.jetbrains.com/zh-hans/youtrack/2023/04/youtrack-inaugure-les-projets-helpdesk/ https://blog.jetbrains.com/tr/youtrack/2023/04/youtrack-inaugure-les-projets-helpdesk/ https://blog.jetbrains.com/pt-br/youtrack/2023/04/youtrack-inaugure-les-projets-helpdesk/ https://blog.jetbrains.com/ko/youtrack/2023/04/youtrack-inaugure-les-projets-helpdesk/ https://blog.jetbrains.com/ja/youtrack/2023/04/youtrack-inaugure-les-projets-helpdesk/ https://blog.jetbrains.com/es/youtrack/2023/04/youtrack-inaugure-les-projets-helpdesk/ https://blog.jetbrains.com/youtrack/2023/04/youtrack-inaugure-les-projets-helpdesk/ https://blog.jetbrains.com/de/youtrack/2023/04/youtrack-inaugure-les-projets-helpdesk/
KotlinConf 2023 : retour sur la Keynote d’ouverture https://blog.jetbrains.com/fr/kotlin/2023/04/kotlinconf-2023-retour-sur-la-keynote-d-ouverture/ Wed, 19 Apr 2023 16:46:04 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/04/KC-2023-Keynote_Blog-Featured-image_1280x600_FR.png https://blog.jetbrains.com/?post_type=kotlin&p=343278 Lors de la keynote d’ouverture de KotlinConf 2023, Roman Elizarov, Svetlana Isakova et Egor Tolstoy ont fait plusieurs annonces sur les récentes avancées majeures de JetBrains concernant Kotlin, tandis que Grace Kloba a évoqué l’implication et les contributions de Google :

  • Le compilateur K2 sera disponible dans Kotlin 2.0.
  • Le DSL Kotlin sera utilisé par défaut pour les nouveaux builds Gradle.
  • L’adoption du langage Kotlin atteint des sommets chez Google.
  • La Fondation Kotlin lance un programme de financement pour les auteurs de bibliothèques et un programme d’adhésion pour les entreprises.
  • Kotlin Multiplatform passera en version stable cette année.
  • Compose for iOS est en phase Alpha.
  • La version expérimentale de Compose for Web sera générée par Kotlin/Wasm.

Regardez la keynote d’ouverture ou lisez ce qui suit pour en savoir plus sur les principales annonces qui ont été faites.

La conférence s’est tenue à Amsterdam du 12 au 14 avril.

📽️ Pour une expérience immersive et personnalisée de cet événement, consultez le programme et choisissez les sessions que vous souhaitez voir !

Kotlin 2.0 et futures évolutions du langage

En 2019, nous avions commencé à développer le nouveau compilateur K2 dans le but d’améliorer significativement les performances. Alors que le travail sur le nouveau compilateur touche à sa fin, nous avons le plaisir d’annoncer qu’il sera disponible avec Kotlin 2.0, suite à la version 1.9.

L’amélioration la plus notable qu’apporte le nouveau compilateur réside dans l’accélération substantielle de la compilation. Avec la nouvelle architecture, le pipeline de compilation sera deux fois plus rapide ! Bien sûr, cette accélération sera variable en fonction de chaque projet.

Vous pouvez voir un exemple de l’accélération de la compilation avec la preview de la version 2.0 du compilateur Kotlin ci-dessous.

Essayer Kotlin 2.0

Nous prenons vos retours d’expérience pour le développement de Kotlin et nos choix en matière de design, essayez Kotlin 2.0 et n’hésitez pas à nous dire ce que vous en pensez et à nous faire part des problèmes que vous avez éventuellement rencontrés. À partir de la version 1.8.20 de Kotlin, vous pouvez activer la préversion de Kotlin 2.0 via l’indicateur de version du langage.

Faites part de vos retours directement aux développeurs de Kotlin 2.0 via YouTrack.

Essayer Kotlin 2.0

Nouveaux outils et plugins du compilateur

Kotlin 2.0 va encore accélérer l’évolution du langage. La nouvelle architecture nous permet d’introduire de nouvelles fonctionnalités plus rapidement sans avoir à apporter de nombreuses modifications au compilateur. Elle est également beaucoup plus puissante et offre davantage de possibilités concernant ce qui peut être réalisé en dehors du langage en utilisant les plugins du compilateur.

Le nouveau compilateur sera également incorporé dans de nombreux outils. Le plugin Kotlin IDE va être réécrit. Google travaille sur la mise à jour du moteur KSP (Kotlin Symbol Processing) afin que les plugins existants puissent fonctionner automatiquement avec Kotlin 2.0 et nous collaborons étroitement en vue d’offrir une meilleure expérience de développement en intégrant K2 dans Android Studio et le compilateur Compose.

Autres actualités du langage

Nous avons encore plusieurs bonnes nouvelles à partager ! Plusieurs fonctionnalités très attendues seront fournies après la publication de Kotlin 2.0 : les extensions statiques, les littéraux de collections, la déstructuration basée sur le nom, les récepteurs de contexte et les champs explicites.

Enfin, nous allons bientôt publier la preview de Kotlin Notebooks, intégrée dans IntelliJ IDEA.

Regardez l’enregistrement de la keynote d’ouverture pour plus de détails sur ces fonctionnalités et voir les démos des plugins du compilateur Kotlin et de Kotlin Notebooks qui ont été présentées par Roman Elizarov.

Vous pouvez également en apprendre plus sur le nouveau compilateur et la feuille de route de Kotlin 2.0 dans cet article de Roman Elizarov.

Le DSL Kotlin va devenir le langage de build par défaut dans Android Studio

L’une des autres annonces importantes concerne le DSL Kotlin, qui va devenir le langage par défaut pour les builds Gradle à partir d’Android Studio Giraffe. L’objectif est d’offrir aux utilisateurs une bien meilleure expérience qu’avec Groovy, Kotlin fournissant des conseils d’insertion, la mise en évidence des éléments de syntaxe, la navigation et la saisie semi-automatique du code. Ces fonctionnalités sont essentielles pour le travail avec des scripts de builds peu familiers ou complexes sans en connaître toutes les règles.

En savoir plus

Adoption de Kotlin chez Google

Google ayant officiellement commencé à prendre en charge Kotlin pour le développement de ses propres produits, l’adoption du langage dans l’entreprise dépasse maintenant largement le cadre des applications Android. La base de code Kotlin de Google compte plus de 15 millions de lignes de code, un chiffre qui double d’une année sur l’autre. Aujourd’hui, plus de 45 % des ingénieurs de Google utilisant Kotlin écrivent du code côté serveur et l’équipe Google Workspace explore les possibilités de Kotlin Multiplatform.

Vous trouverez plus d’informations sur l’implication de Google dans leur article de blog sur la KotlinConf.

En savoir plus

La Fondation Kotlin va financer les auteurs de bibliothèques multiplateformes

La Fondation Kotlin a mis en place un programme de bourses pour aider les contributeurs individuels ! Ce programme concerne les auteurs de projets multiplateformes et les personnes qui cherchent à étendre leurs projets à Kotlin Multiplatform.

Lors de l’examen des candidatures, le Comité Écosystème de la Fondation Kotlin prendra en compte le public cible du projet, les problèmes qu’il vise à résoudre, sa stabilité et l’application des directives d’API de bibliothèque que nous avons publiées récemment.

Le premier appel à candidatures pour ce programme se terminera le 15 mai. N’hésitez pas à postuler !

En savoir plus

Programme d’adhésion de la Fondation Kotlin

La Fondation Kotlin a lancé un programme d’adhésion afin d’inviter davantage d’entreprises à collaborer à la gouvernance du développement du langage, de faire évoluer l’écosystème Kotlin et de promouvoir le langage.

Les premiers membres à rejoindre la Fondation Kotlin dans le cadre de ce programme sont Gradle Inc., Touchlab et Shopify. Ces entreprises sont reconnues au sein de la communauté Kotlin pour leur contribution importante au développement du langage et de l’écosystème.

Rejoignez la Fondation pour créer un lien entre votre entreprise et la communauté et contribuer à l’avenir de Kotlin !

En savoir plus

Kotlin Multiplatform est sur la voie de la stabilité

Kotlin Multiplatform bénéficie d’un taux d’adoption extraordinaire et peut compter sur un écosystème en constante évolution grâce à l’implication de la communauté. Aujourd’hui, plus de 1 000 bibliothèques Multiplatform couvrent quasiment tous les scénarios possibles ! Cela inclut un ensemble de bibliothèques Jetpack mises à niveau grâce à la contribution de Google. 

Nous avons validé des concepts tels que la gestion de la mémoire, la configuration de projet et les bibliothèques multiplateformes, et notre objectif pour 2023 est de pouvoir proposer une version stable de Kotlin Multiplatform.

Avec sa polyvalence, son vaste écosystème et sa couverture de l’ensemble des plateformes, Kotlin Multiplatform a le potentiel pour devenir le choix incontournable pour le développement multiplateforme. La seule pièce qui manquait au puzzle était une interface utilisateur multiplateforme, et nous l’avons maintenant ajoutée !

Compose for iOS est en phase Alpha

La version Alpha de Compose Multiplatform pour iOS est disponible. Vous pouvez maintenant utiliser Compose Multiplatform pour créer la même application sous Android et iOS. Si les avantages d’une interface utilisateur partagée pour le développement mobile sont significatifs, la flexibilité naturelle de Multiplatform vous permet de choisir entre le partage de la logique métier de votre application, le maintien de l’interface utilisateur native ou le passage en mode multiplateforme pour les deux. C’est à vous de choisir afin de partager le code selon vos conditions ! Vous êtes libre d’utiliser d’autres frameworks d’interface utilisateur et de concevoir des systèmes en complément de Multiplatform.

Bien qu’il soit encore en phase Alpha, nous travaillons à la prise en charge d’iOS par Compose Multiplatform. Vous aimeriez contribuer ? Lancez-vous et participez via le canal #compose-ios de Kotlin Slack (si vous n’êtes pas encore membre, faites une demande ici).

Essayer Compose for iOS

La version expérimentale de Compose for Web est générée par Kotlin/Wasm

Nous étendons continuellement Kotlin pour adopter les plateformes émergentes. Vous avez peut-être déjà essayé la prise en charge expérimentale pour WebAssembly dans la dernière version de Kotlin. Vous pouvez maintenant essayer le portage de votre code Compose sur le web avec Kotlin/Wasm, car un prototype est disponible ! Faites-nous part de vos retours sur le canal #compose-web de Kotlin Slack (si vous n’êtes pas encore membre, faites une demande ici).

Essayer Compose for Web

Faits marquants et chiffres clés donnés lors la keynote d’ouverture

  • Plus d’1 million de projets GitHub utilisent Kotlin comme langage principal.
  • Le nombre de bibliothèques Kotlin Multiplatform a augmenté de 60 % l’an dernier et continue de croître aussi rapidement.
  • 86 % des personnes utilisant Kotlin, toutes plateformes confondues, se disent satisfaites voire très satisfaites de Kotlin.
  • 96,9 % des personnes utilisant Kotlin dans un cadre professionnel pour le développement Android en sont satisfaites, soit un niveau de satisfaction de 9 points supérieur à celui de leurs homologues utilisant Java.
  • Kotlin est le langage le plus populaire pour le développement Android, avec plus de 95 % des 1 000 principales applications Android l’utilisant.
  • Plus de 21 % des 1 000 applications Android les plus populaires utilisent Jetpack Compose, soit plus du double de l’an dernier.

Encore merci et nous espérons que vous avez aimé cette édition de KotlinConf !

Nous sommes très reconnaissants envers tous les membres de la communauté qui s’investissent pour que Kotlin atteigne son objectif : permettre aux professionnels de construire toutes les parties d’une application avec confiance et plaisir.

Nous espérons que vous apprécierez de regarder les vidéos des sessions de la KotlinConf 2023. Pour plus d’informations sur les principales annonces faites lors de la keynote, nous vous recommandons de regarder les sessions suivantes :

Kotlin 2.0 : 

  1. How We’re Improving the Performance of the IntelliJ IDEA Kotlin Plugin par Vladimir Dolzhenko. 
  2. K2 Compiler Plugins par Mikhail Glukhikh. 

Kotlin chez Google: 

  1. Adopting Kotlin at Google Scale par Jeffrey van Gogh and John Pampuch.
  2. Kotlin Multiplatform in Google Workspace par Jason Parachoniak.
  3. Kotlin Multiplatform Conversions at Android Jetpack Scale par Dustin Lam and James Ward.
  4. Adventures Building a Kotlin Multiplatform Benchmarking Library par Rahul Ravikumar.

Compose et Multiplatform :

  1. Compose Multiplatform for iOS par Sebastian Aigner and Nikita Lipsky.
  2. You Can Do Desktop Too! par Victor Kropp.
  3. Level Up on Kotlin Multiplatform par Pamela Hill.

Autres ressources

  1. The K2 Compiler Is Going Stable in Kotlin 2.0 – article de blog de Roman Elizarov.
  2. The Kotlin DSL Is Now the Default for New Gradle Builds – artciles de blog de Google et Gradle.
  3. Announcing the Kotlin Foundation Membership Program.
  4. The Kotlin Foundation Grants Program Is Live

Article original en anglais de :

Delphine Massenhove

Alina Dolgikh

]]>
https://blog.jetbrains.com/zh-hans/kotlin/2023/04/kotlinconf-2023-retour-sur-la-keynote-d-ouverture/ https://blog.jetbrains.com/ko/kotlin/2023/04/kotlinconf-2023-retour-sur-la-keynote-d-ouverture/ https://blog.jetbrains.com/ja/kotlin/2023/04/kotlinconf-2023-retour-sur-la-keynote-d-ouverture/ https://blog.jetbrains.com/kotlin/2023/04/kotlinconf-2023-retour-sur-la-keynote-d-ouverture/
Publication de Kotlin 1.8.20 https://blog.jetbrains.com/fr/kotlin/2023/04/publication-de-kotlin-1-8-20/ Wed, 19 Apr 2023 14:13:48 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/03/DSGN-16128-1.8.20-Release_Blog-Featured-image-1280x600-1.png https://blog.jetbrains.com/?post_type=kotlin&p=343566 Kotlin 1.8.20 est là ! Voici quelques-uns des points clés de cette version :

Pour la liste complète des nouveautés, consultez la page Nouveautés de Kotlin 1.8.20 ou les notes de publication sur GitHub.

Nouvelle cible expérimentale Kotlin/Wasm

Kotlin 1.8.20 introduit une nouvelle cible de compilation : WebAssembly.

Nous pensons que WebAssembly est une technologie prometteuse et souhaitons permettre aux utilisateurs de Kotlin d’en bénéficier plus facilement.

À partir de cette version, vous pouvez utiliser Kotlin/Wasm dans vos projets multiplateformes. La compilation du code Kotlin dans WebAssembly permet de l’exécuter directement dans le navigateur ou dans tout autre environnement prenant en charge WebAssembly et répondant aux critères de Kotlin. Cela ouvre beaucoup de nouvelles possibilités, de la création d’applications web hautes performances aux fonctions sans serveur.

Kotlin/Wasm est actuellement en phase expérimentale. Vos retours d’expérience sont particulièrement importants à ce stade, nous vous invitons donc à essayer Kotlin/Wasm. Suivez ce tutoriel pour créer votre première application Kotlin/Wasm :

COMMENCER

Comment installer Kotlin 1.8.20

Si vous utilisez déjà IntelliJ IDEA 2022.2 ou 2022.3, l’IDE vous suggérera automatiquement la mise à jour vers la version 1.8.20 de Kotlin . Vous pouvez également faire la mise à jour manuellement en suivant ces instructions. IntelliJ IDEA 2023.1 intègre le plugin Kotlin 1.8.20.

Pour Android Studio Flamingo (222) et Giraffe (223), le plugin Kotlin 1.8.20 sera fourni avec les prochaines mises à jour d’Android Studio.

Si vous avez besoin du compilateur en ligne de commande, téléchargez-le sur la page Github de la nouvelle version de Kotlin.

En cas de problème

Tenez-vous au courant des dernières fonctionnalités de Kotlin ! Inscrivez-vous en remplissant le formulaire à droite de cet article pour recevoir toutes les actualités du langage.

Un grand merci à nos EAP Champions 🥇👏

Ils nous ont signalé les problèmes qu’ils ont rencontrés au cours du programme d’accès anticipé et ont contribué à stabiliser la version 1.8.20 de Kotlin :

Autres lectures et vidéos

Article original en anglais de :

Delphine Massenhove

Danil Pavlov

]]>
https://blog.jetbrains.com/zh-hans/kotlin/2023/04/publication-de-kotlin-1-8-20/ https://blog.jetbrains.com/ko/kotlin/2023/04/publication-de-kotlin-1-8-20/ https://blog.jetbrains.com/kotlin/2023/04/publication-de-kotlin-1-8-20/