Aller au contenu principal

8 articles tagués avec "Écosystème"

'Blog posts about Electron's package ecosystem'

Voir tous les tags

Récapitulation de l’écosystème 2023

· 6 mins de lecture

Réflexion à propos des améliorations et changements intervenu dans l’écosystème des développeurs d’Electron en 2023.


Au cours des derniers mois, nous avons concocté plusieurs changements dans l’écosystème Electron pour booster l’expérience des développeurs pour les applications Electron ! Voici un rapide aperçu des derniers ajouts en direct du siège d’Electron.

Forge Electron 7 et au-delà

Electron Forge 7— nouvelle version majeure de notre outil tout-en-un pour l’empaquetage et la distribution des applications Electron, est maintenant disponible.

Alors que Forge 6 était une réécriture complète de la v5, la v7 a une portée plus réduite, mais contient toujours quelques modifications de rupture. À l’avenir, nous continuerons à publier des versions majeures de Forge car des modifications de rupture doivent être apportées.

Pour plus de détails, consultez la version 7.0.0 de Forge sur GitHub.

Dernières modifications

  • Switched to notarytool for macOS notarization: As of 2023-11-01, Apple sunset the legacy altool for macOS notarization, and this release removes it from Electron Forge entirely.
  • Minimum Node.js increased to v16.4.0: With this release, we’ve set the minimum required Node.js version to 16.4.0.
  • Dropped support for electron-prebuilt and electron-prebuilt-compile: electron-prebuilt was the original name for Electron’s npm module, but was replaced by electron in v1.3.1. electron-prebuilt-compile was an alternative to that binary that came with enhanced DX features, but was eventually abandoned as a project.

Points clés

  • Google Cloud Storage publisher : Dans le cadre de nos efforts pour mieux soutenir la mise à jour automatique statique, Electron Forge prend maintenant en charge la publication directement dans Google Cloud Storage!
  • ESM forge.config.js support: Electron Forge prend désormais en charge les fichiers ESM `forge.config.js. (P.S. Nous attendons avec impatience le support des points d'entrée ESM dans Electron 28. )
  • Les fabricants fonctionnent maintenant en parallèle: Dans Electron Forge 6, les makers s'exécutaient séquentiellement pour ✨ raisons historiques héritées ✨ . Since then, we’ve tested out parallelization for the Make step with no adverse side effects, so you should see a speed-up when building multiple targets for the same platform!
Merci !

🙇 Un grand merci à mahnunchik pour ses contributions au support de GCS Publisher et de l'ESM dans les configurations Forge!

Amélioration des mises à jour automatiques pour stockage statique

Squirrel.Windows and Squirrel.Mac are platform-specific updater technologies that back Electron’s built-in autoUpdater module. Both projects support auto updates via two methods:

  • A Squirrel-compatible update server
  • A manifest URL hosted on a static storage provider (e.g. AWS, Google Cloud Platform, Microsoft Azure, etc.)

The update server method has traditionally been the recommended approach for Electron apps (and provides additional customization of update logic), but it has a major downside—it requires apps to maintain their own server instance if they are closed-source.

On the other hand, the static storage method has always been possible, but was undocumented within Electron and poorly supported across Electron tooling packages.

With some great work from @MarshallOfSound, the update story for serverless automatic app updates has been drastically streamlined:

  • Electron Forge’s Zip and Squirrel.Windows makers can now be configured to output autoUpdater-compatible update manifests.
  • A new major version of update-electron-app (v2.0.0) can now read these generated manifests as an alternative to the update.electronjs.org server.

Once your Makers and Publishers are configured to upload update manifests to cloud file storage, you can enable auto updates with only a few lines of configuration:

const { updateElectronApp, UpdateSourceType } = require('update-electron-app');

updateElectronApp({
updateSource: {
type: UpdateSourceType.StaticStorage,
baseUrl: `https://my-manifest.url/${process.platform}/${process.arch}`,
},
});
Further reading

📦 Want to learn more? For a detailed guide, see Forge’s auto update documentation.

L’univers étendu « @electron/

Au débuts d'Electron, la communauté a publié de nombreux packages pour améliorer l’expérience de développement, d’empaquetage et de distribution d’applications Electron. Au fil du temps, bon nombre de ces paquets ont été incorporés dans l'organisation GitHub d'Electron, l'équipe principale assumant le fardeau de la maintenance.

En 2022, nous avons commencé à unifier tous ces outils sous l’espace de noms « @electron/» sur npm. Ce changement signifie que les paquets qui étaient dans « electron-foo » sont maintenantsur npm dans « @electron/foo » et les dépôts qui étaient nommés « electron/electron-foo » sont maintenant « electron/foo » sur GitHub. Ces changements aident à délimiter clairement les projets initiaux des projets du userland. Cela inclut de nombreux paquets couramment utilisés, tels que:

  • @electron/asar
  • @electron/fuses
  • @electron/get
  • @electron/notarize
  • @electron/osx-sign
  • @electron/packager
  • @electron/rebuild
  • @electron/remote
  • @electron/symbolicate-mac
  • @electron/universal

Going forward, all first-party packages we release will also be in the @electron/ namespace. There are two exceptions to this rule:

  • Electron core will continue to be published under the electron package.
  • Electron Forge will continue to publish all of its monorepo packages under the @electron-forge/ namespace.
Star seeking

⭐ During this process, we also accidentally took the electron/packager repository private, which has the unfortunate side effect of erasing our GitHub star count (over 9000 before the erasure). If you are an active user of Packager, we’d appreciate a ⭐ Star ⭐!

Introduction à @electron/windows-sign

À partir du 2023-06-01, les normes de l’industrie ont commencé à exiger que les clés des certificats de signature de code Windows soient stockées sur du matériel conforme à la FIPS.

En pratique, cela signifie que la signature de code est devenue beaucoup plus compliquée pour les applications qui compilent et signet des environnements d'intégration continue, car de nombreux outils Electron prennent un fichier de certificat et un mot de passe comme paramètres de configuration et tentent de signer à partir de là en utilisant une logique codée en dur.

This situation has been a common pain point for Electron developers, which is why we have been working on a better solution that isolates Windows code signing into its own standalone step, similar to what @electron/osx-sign does on macOS.

In the future, we plan on fully integrating this package into the Electron Forge toolchain, but it currently lives on its own. The package is currently available for installation at npm install --save-dev @electron/windows-sign and can used programmatically or via CLI.

Veuillez si vous le pouvez l’essayer et nous faire part de vos commentaires dans l’outil de suivi des problèmes de repo!

Et ensuite ?

We'll be entering our annual December quiet period next month. While we do, we'll be thinking about how we can make the Electron development experience even better in 2024.

Is there anything you'd like to see us work on next? Signalez-le nous!

Présentation d'Electron Forge 6

· 7 mins de lecture

Nous sommes très heureux de vous annoncer qu'Electron Forge v6.0.0 est maintenant disponible ! Cette nouvelle version est la première version majeure de Forge depuis 2018 et transfère le projet qui était dans electron-userland vers l'organisation principale electron sur Github.

Lisez donc la suite afin de découvrir ce qu'il y a de nouveau et comment vous pouvez adopter Electron Forge pour votre application!

Qu'est-ce qu'Electron Forge ?

Electron Forge est un outil pour l'empaquetage et la ditribution des applications Electron. Il unifie l'écosystème d'outillage d'Electron en une seule interface extensible afin que tout le monde puisse se lancer dans la création d'applications Electron.

Les fonctionnalités principales comprennent :

  • 📦 Empaquetage d'application et signature de code
  • 🚚 Installateurs personnalisables pour Windows, macOS et Linux (DMG, deb, MSI, PKG, AppX, etc.)
  • ☁️ Flux de publication automatique pour les fournisseurs de cloud (GitHub, S3, Bitbucket, etc.)
  • ⚡ Modèles de structure standard de projet pour webpack et TypeScript faciles à utiliser
  • ⚙️ Prise en charge des modules Node.js natifs
  • 🔌 API Javascript Extensible
Lectures complémentaires

Pour en savoir plus vous pouvez aller voir le document Pourquoi Electron Forge pour comprendre la philosophie et l'architecture de Forge.

Quoi de neuf dans la v6 ?

Ré-écriture totale

Pour les versions de v1 à v5, Electron Forge était basée sur le projet, désormais abandonnée, electron-compile. Forge 6 est une ré-écriture complère du projet ayant une toute nouvelle architecture modulaire pouvant être étendue afin de satisfaire les besoins de toute application Electron.

Au cours des dernières années, Forge v6.0.0-beta a atteint la parité de fonctionnalités avec la v5 et le taux de perte de code a ralenti de façon spectaculaire, rendant l'outil prêt pour l'adoption générale.

N'installez pas le mauvais package

Pour les versions 5 et précédentes, Electron Forge a été publié sur npm dans le paquet electron-forge. À partir de la réécriture et v6, Forge maintenant structuré en tant que projet monorepo avec de nombreux projets plus petits.

Soutien technique officiel

Historiquement, les responsables d'Electron restaient neutres quant aux outils de génération, laissant la tâche à divers paquets de la communauté. Cependant, avec l'évolution d'Electron en tant que projet, il est devenu plus difficile pour les nouveaux développeurs Electron de savoir quels outils ils ont besoin pour construire et distribuer leurs applications.

Pour aider les développeurs Electron dans le processus de distribution, nous avons décidé de faire de Forge le pipeline de construction officiel pour Electron.

Au cours de la dernière année, nous avons lentement intégré Forge dans la documentation officielle d'Electron, et nous avons récemment déplacé Forge de son ancien logis dans electron-userland/electron-forge pour l'installer dans le dépôt electron/forge. Maintenant, nous sommes enfin prêts à diffuser Electron Forge à un large public !

Premiers Pas

Initialisation d'un nouveau projet Forge

La mise en place d'un nouveau projet Electron Forge peut être fait en utilisant le script CLI create-electron-app.

yarn create electron-app my-app --template=webpack
cd my-app
yarn start

Le script va créer un projet Electron dans le dossier my-app avec un bundling complètement JavaScript et un pipeline de construction préconfiguré.

Pour plus d'informations, consultez le guide Getting Started dans la documentation de Forge.

Prise en charge de premier ordre pour webpack

Le snippet ci-dessus utilise le modèle Webpack de Forge, nous recommandons celui-ci comme point de départ pour les nouveaux projets Electron. Ce modèle est construit autour du plugin @electron-forge/plugin-webpack qui intègre webpack avec Electron Forge sur plusieurs points dont les suivants:

  • amélioration du flux de développement en local avec webpack-dev-server, y compris le support de HMR dans le moteur de rendu ;
  • gestion de la logique de compilation des paquets webpack avant l'empaquetage de l'application ; et
  • ajout de la prise en charge des modules Node natifs dans le processus de groupage webpack.

Si vous avez besoin du support de TypeScript, pensez plutôt à utiliser le Webpack + TypeScript Template.

Importation d'un projet existant

Le CLI Electron Forge contient également une commande d'importation pour les projets Electron existants.

cd my-app
yarn add --dev @electron-forge/cli
yarn electron-forge import

Lorsque vous utilisez la commande import , Electron Forge ajoutera quelques dépendances essentielles et créera une nouvelle configuration forge.config.js. Si vous avez un outil de compilation existant (par exemple, Electron Packager, Electron Builder, ou Forge 5), il essaiera de migrer autant de paramètres que possible. Certaines de vos configurations existantes pourront tout de même avoir besoin d'être migrées manuellement.

Des détails sur la migration manuelle peuvent être trouvés dans la documentation d'importation de Forge. Si vous avez besoin d'aide, veuillez vous rendre sur notre serveur Discord!

Pourquoi adopter Forge?

Si vous avez déjà des outils pour empaqueter et publier votre application Electron, les avantages associés à l'adoption d'Electron Forge dépassent largement les tracas du basculement.

Nous pensons qu'il y a deux avantages majeurs à utiliser Forge:

  1. Forge incorpore de nouvelles fonctionnalités pour la construction d'applications dès qu'elles sont prises en charge dans Electron. Dans de tes cas, vous n'aurez pas besoin avant la mise à niveau de câbler le support du nouvel outillage, ou attendre que ce support soit éventuellement implémenté par d'autres paquets . Pour des exemples récents, voir binaires universels macOS et vérification d'intégrité ASAR.

  2. L'architecture multi-package de Forge en facilite la compréhension et l'extension. Puisque Forge est composé de nombreux packages plus petits aux responsabilités claires, il est plus facile de suivre le flux de code. De plus, La conception extensible de l'API de Forge signifie que vous pouvez écrire, pour les cas d'utilisation avancés, votre propre logique de compilation supplémentaire séparée des options de configuration fournies. Pour plus de détails sur l'écriture de plugins, makers et publishers personnalisés pour Forge, consultez la section Étendre Electron Forge de la documentation.

Dernières modifications

Forge 6 a passé beaucoup de temps dans la phase bêta, et sa cadence de sortie s'est progressivement ralentie. Cependant, nous avons accéléré le développement dans la seconde moitié de 2022 et utilisé les dernières versions pour pousser quelques changements de rupture finaux avant la version stable v6.0.0.

Si vous êtes un utilisateur de la version bêta d'Electron Forge, consultez la Note de publication de v6.0.sur GitHub pour une liste des changements de rupture effectués dans les bêtas récentes (>=6.0.0-beta.65).

Une liste complète des modifications et des commits peut être trouvée dans CHANGELOG.md.

Envoyez vos commentaires!

Dites-nous ce dont vous avez besoin ! L'équipe Electron Forge cherche toujours à améliorer le projet pour mieux répondre à ses utilisateurs.

Vous pouvez nous aider à améliorer Electron Forge en soumettant des demandes de fonctionnalités, en publiant des issues, ou simplement en nous informant de vos commentaires ! Vous pouvez également nous rejoindre sur le serveur officiel d'Electron Discord, où il y a un canal dédié aux discussions à propos d'Electron Forge.

Si vous voulez émettre des commentaires sur la documentation de Forge sur https://electronforge.io, nous avons une instance de GitBook synchronisée au dépôt electron-forge/electron-forge-docs.

Avis d’obsolescence de Spectron

· 2 mins de lecture

Spectron sera déprécié le 1er février 2022.


À partir de février 2022, Spectron sera officiellement déclaré obsolète par l'équipe d'Electron.

Pourquoi déprécier Spectron ?

Bien que Spectron ait constamment publié de nouvelles versions pour chaque nouvelle version d’Electron, le projet a eu très peu de maintenance et d’améliorations depuis plus d’un an et n’a actuellement aucun mainteneur à temps plein. En plus avec la sortie du module remote du noyau Electron pour être mis dans un module externe avec Electron 14, Spectron devra subir une réécriture majeure pour continuer à fonctionner de manière fiable.

Après avoir examiné plusieurs options disponibles pour maintenir la maintenance de Spectron, l'équipe d'Electron a décidé de déprécier Spectron en 2022.

Chronologie de dépréciation

Ce qui suit est notre calendrier de dépréciation prévu :

  • De Novembre 2021 à Janvier 2022: L'équipe d'Electron continuera à accepter les pull requests de la communauté.
  • janvier 2022: Une version finale de l’avertissement de la dépréciation de Spectron sera publiée.
  • 1er février 2022: Le dépôt de Spectron sera marqué comme "archivé". Plus aucune demande de pull request ne sera acceptée.

Après le 1er février 2022, Electron conservera le dépôt Spectron indéfiniment, afin que d'autres puissent toujours effectuer des fork ou utiliser le code existant dans leurs projets. Nous espérons que cela permettra d' assurer une période de transition plus longue à tous les projets pouvant encore dépendre de Spectron.

Alternatives à Spectron

Si vous utilisez actuellement Spectron dans votre projet et que vous souhaitez migrer vers une solution de test alternative, vous pouvez lire notre guide pour les tests automatisés ici.

Nous pouvons actuellement recommaner plusieurs autres alternatives à Spectron, notamment Playwright et WebDriverIO. Des tutoriels officiels pour chaque option peuvent être trouvés dans notre documentation de test automatisé.

Et maintenant ?

L'équipe d'Electron vous remercie d'utiliser Spectron et Electron. Nous comprenons que beaucoup d'entre vous dépendent de Spectron pour tester leurs applications et voulons vous rendre cette transition la plus simple possible. Merci d'avoir choisi Electron !

Mise à jour automatique simplifiée pour les applications open source

· 3 mins de lecture

Aujourd’hui, nous publions et hérgeons un webservice , open-source, gratuit ainsi que son package complémentaire disponible sur npm pour permettre d'effectuer facilement la mise à jour automatique des applications Electron open source. Il s’agit d’une étape permettant aux développeurs d’applications de moins avoir à réfléchir au déploiement et d'avantage au développement d’expériences de haute qualité pour leurs utilisateurs.


Le nouveau module de mise à jour en action

Faciliter les choses

Electron possède l'API autoUpdater donnant aux applications la possibilité de consommer des métadonnées depuis un point de terminaison distant pour vérifier les mises à jour, de télécharger celles-ci en arrière-plan avant de les installer automatiquement.

C'était jusqu'alors, pour de nombreux développeurs d'applications Electron, une étape lourde dans le processus de déploiement que de permettre ces mises à jour car cela nécessitait un serveur web pour le déploiement et que celui-ci devait être maintenu uniquement pour servir les métadonnées de l'historique des versions de l'application.

Aujourd'hui, nous annonçons une nouvelle solution clés en main de mise à jour automatique des applications. Si votre application Electron eréside sur un dépôt GitHub public et que vous utilisez GitHub Releases pour publier des builds, vous pouvez utiliser ce service pour fournir des mises à jour en continu à vos utilisateurs.

Utiliser le nouveau module

Pour minimiser la configuration de votre part, nous avons créé update-electron-app, un module npm qui s'intègre au nouveau webservice update.electronjs.org.

Installer le module:

npm install update-electron-app

Appelez-le de n’importe où dans le processus principal de votre application [][]:

require('update-electron-app')();

Voilà! Par défaut, ce module vérifiera les mises à jour au démarrage de l'application puis ensuite toutes les dix-minutes. Lorsqu'une mise à jour sera détectée, elle sera téléchargée automatiquement en arrière-plan et une boîte de dialogue s'affichera lorsque la mise à jour sera prête.

Migration des applications existantes

Les applications utilisant déjà l'API autoUpdater d'Electron peuvent également utiliser ce service. Pour ce faire, vous pouvez personnaliser le module update-electron-app ou intégrer directement avec update.electronjs.org.

Alternatives

Si vous utilisez electron-builder pour packager votre application, vous pouvez utiliser son système intégré de mise à jour. Pour plus d’informations, reportez-vous à electron.build/auto-update .

Si votre application est privée, vous devrez alors utiliser votre propre serveur de mise à jour. Il y a un certain nombre d'outils open-source pour cela, y compris Hazel de Zeit et Nucleus d'Atlassian. Pour plus d'informations, consultez le tutoriel Déployer un serveur de mise à jour.

Remerciements

Merci à Julian Gruber pour avoir aidé à concevoir ce service web simple et évolutif. Merci aux collègues de Zeit pour leur service open-source Hazel dont nous nous sommes inspiré pour la conception. Merci à Samuel Attard pour les révisions de code. Merci à la communauté Electron d’avoir aidé à tester ce service.

🌲 Voila de quoi assurer une évolution permanente des applications Electron !

Annonce de la prise en charge de TypeScript dans Electron

· 5 mins de lecture

Le package npm electron inclut désormais un fichier de définition TypeScript qui fournit des annotations détaillées de l’ensemble de l’API Electron. Ces annotations peuvent faciliter vos développements avec Electron même si vous écrivez du JavaScript de base. Il vous suffit d'effectuer la commande npm install electron pour obtenir les types d'Electron à jour dans votre projet.


TypeScript est un langage de programmation open-source créé par Microsoft. C'est un sur-ensemble de JavaScript étendant le langage en ajoutant la prise en charge des types statiques. La communauté TypeScript s'est développée rapidement ces dernières années, et TypeScript s'est classé parmi les langages de programmation les plus appréciés dans une enquête récente de Stack Overflow sur les développeurs . TypeScript est décrit comme un « JavaScript qui évolue », et les équipes de GitHub, Slack, et Microsoft l’utilisent toutes pour écrire des applications Electron évolutives qui sont utilisées par des millions de personnes.

TypeScript prend en charge de nombreuses fonctionnalités parmi les plus récentes de JavaScript, telles que les classes, la déstructuration d’objets et l’async/await, mais sa véritable fonctionnalité de différenciation est les annotations des type. La déclaration des types de données d’entrée et de sortie attendus par votre programme peut réduire les bogues en vous aidant à trouver des erreurs au moment de la compilation, et les annotations peuvent également servir de déclaration formelle de fonctionnement de votre programme.

Lorsque les bibliothèques sont écrites en Javascript de base, les types sont souvent vaguement définis après coup lors de la rédaction de la documentation. Les fonctions peuvent souvent accepter plus de types que ce qui a été documenté ou une avoir des contraintes invisibles qui ne sont pas documentées et ceci peut entraîner des erreurs à l’exécution.

TypeScript résout ce problème avec les fichiers de définition. Un fichier de définition TypeScript décrit toutes les fonctions d'une bibliothèque et ses types d'entrée et de sortie attendus. Lorsque les auteurs de bibliothèque regroupent un fichier de définition typeScript avec leur bibliothèque publiée, les utilisateurs de cette bibliothèque peuvent explorer son API directement dans leur éditeur et commencer à l’utiliser immédiatement, souvent sans avoir besoin de consulter sa documentation.

De nombreux projets populaires comme Angular, Vue.js, node-github (et maintenant Electron!) compilent leur propre fichier de définition et le regroupent avec leur package publié sur npm. Pour les projets ne regroupant pas leur propre fichier de définition, il existe DefinitelyTyped, un écosystème tiers de fichiers de définition gérés par la communauté.

Installation

À partir de la version 1.6.10, chaque version d’Electron inclut son propre fichier de définition TypeScript. Lorsque vous installez le package electron à partir de npm, le fichier electron.d.ts est automatiquement fourni avec le package installé.

Le moyen le le plus sûr d’installer Electron est d’utiliser un numéro de version exact :

npm install electron --save-dev --save-exact

Ou si vous utilisez yarn:

yarn add electron --dev --exact

Si vous utilisiez déjà des définitions tierces telles que @types/electron et @types/node, vous devez les supprimer de votre projet Electron pour éviter toutes collisions.

Le fichier de définition est dérivé de notre documentation API structurée, et sera donc toujours cohérent avec la documentation API de Electron. Installez simplement electron et vous obtiendrez toujours les définitions TypeScript à jour avec la version d'Electron que vous utilisez.

Utilisation

Pour un résumé de l’installation et de l’utilisation des nouvelles annotations TypeScript d’Electron veuillez regarder cette courte démonstration vidéo:

Si vous utilisez Visual Studio Code, vous disposez de la prise en charge de TypeScript intégrée. Il existe également des plugins maintenus par la communauté pour Atom, Sublime, vim, et d’autres éditeurs.

Une fois que votre éditeur est configuré pour TypeScript, vous verrez plus d'indications contextuelles comme des suggestions de saisie semi-automatique, la référence de méthode en ligne, la vérification des des arguments, etc.

Autocompletion d'une méthode

Référence de méthode

Vérification des arguments

Prise en main de TypeScript

Si vous débuter avec TypeScript et que vous souhaitez en savoir plus, cette vidéo d’introduction de Microsoft fournit un bon aperçu des raisons pour lesquelles le langage a été créé, son fonctionnement, son utilisation et sa destinée.

Il existe également un manuel et une appli d'expérimentation sur le site officiel de TypeScript.

Étant donné que TypeScript est un sur-ensemble de JavaScript, votre code JavaScript existant est déjà du Typescript valide. Cela signifie que vous pouvez progressivement transférer un projet JavaScript existant vers TypeScript, en le parsemant selon les besoins de nouvelles fonctionnalités du langage.

Merci

Ce projet n’aurait pas été possible sans l’aide de la communauté des mainteneurs open source d’Electron. Merci à Samuel Attard, Felix Rieseberg, Birunthan Mohanathas, Milan Burda, Brendan Forster, et beaucoup d'autres pour leurs corrections de bogues, améliorations de documentation, et conseils techniques.

Support

Si vous rencontrez des problèmes en utilisant les nouveaux fichiers de définition TypeScript d'Electron, veuillez déclarer un problème sur le dépôt electron-typescript-definitions.

Joyeux TypeScripting!

Electron Userland

· 4 mins de lecture

Nous avons ajouté une nouvelle section userland au site Web d'Electron pour aider les utilisateurs à découvrir les gens, les packages et les applications qui composent notre écosystème open-source florissant.


contributeurs de GitHub

Origines du Userland

Userland est l'endroit où les gens dans les communautés de logiciels se réunissent pour partager des outils et des idées. Le terme est originaire de la communauté Unix, où il fait référence à tout programme qui s'est exécuté en dehors du noyau, mais aujourd'hui, cela signifie quelque chose de plus. Lorsque les membres de la communauté Javascript d’aujourd’hui se réfèrent à userland, ils parlent généralement du registre des paquets npm. C'est là que la majorité des expériences et l'innovation se produisent, alors que Node et le langage JavaScript (comme le noyau Unix) conservent un ensemble relativement petit et stable de fonctionnalités de base.

Node et Electron

Comme Node, Electron a un petit ensemble d’API de base. Celui ci fournit les fonctionnalités de base nécessaires au développement d'applications de bureau multi-plates-formes. Cette philosophie de conception permet à Electron de rester un outil flexible sans être trop normatif sur la manière dont il devrait être utilisé.

Userland est le pendant du « core », permettant aux utilisateurs de créer et de partager des outils qui étendent les fonctionnalités d’Electron.

Collecte des données d’utilisation

Pour mieux comprendre les tendances de notre écosystème, nous avons analysé les métadonnées de 15 000 dépôts GitHub publics qui dépendent de electron ou electron-prebuilt

Nous avons utilisé les bibliothèques GitHub API, libraries.io API, et le registre npm pour récupérer des informations sur les dépendances, dépendances de développement, dépendants, auteurs de package, contributeurs de dépôts, compteurs de téléchargement, compteurs de fork, compteurs de stargazer etc.

Nous avons ensuite utilisé ces données pour générer les rapports suivants :

Filtrage des résultats

Des rapports tels que les dépendances d’applications et les applications étoilées qui répertorient les packages, les applications et les repos ont une entrée de texte qui peut être utilisée pour filtrer les résultats.

Lorsque vous tapez dans cette entrée, l'URL de la page est mise à jour dynamiquement. Ceci permet de copier une URL représentant une tranche particulière de données de l'espace utilisateur, puis de la partager avec d'autres.

babel

Plus d'infos à venir

Ce premier ensemble de rapports n'est que le début. Nous continuerons à collecter des données sur la façon dont la communauté construit Electron, et nous ajouterons de nouveaux rapports au site web.

Tous les outils utilisés pour collecter et afficher ces données sont open-source:

Si vous avez des idées sur la façon d'améliorer ces rapports, veuillez nous faire savoir en déclarant un problème sur le dépôt du site web ou l'un des dépôts susmentionnés.

Merci à vous, la communauté Electron, d’avoir fait de userland ce qu’il est aujourd’hui !

Outils d'accessibilité

· 2 mins de lecture

La réalisation d'applications accessibles est importante et nous sommes heureux d'introduire de nouvelles fonctionnalités pour Devtron et Spectron qui donnent aux développeurs la possibilité de rendre leurs applications meilleures pour tous.


Les problèmes d’accessibilité dans les app Electron sont similaires à ceux des sites Web parce qu’ils sont tous deux en HTML. Avec les app Electron, toutefois, vous ne pouvez pas utilisez les ressources en ligne pour les vérifications de l'accessibilité parce que votre application n'est pas une URL.

Ces nouvelles fonctionnalités apportent ces outils d'audit à votre application Electron. Vous pouvez choisir d'ajouter des audits à vos tests avec Spectron ou les utiliser dans DevTools avec Devtron. Lire la suite pour un résumé des outils ou regardez notre documentation sur l'accessibilité pour plus d’informations.

Spectron

Dans l’infrastructure de test Spectron, vous pouvez maintenant auditer chaque fenêtre et balise <webview> de votre application. Par exemple :

app.client.auditAccessibility().then(function (audit) {
if (audit.failed) {
console.error(audit.message);
}
});

Vous pouvez en savoir plus sur cette fonctionnalité dans la documentation de Spectron.

Devtron

Dans Devtron il y a un nouvel onglet accessibilité qui vous de vérifier une page dans votre application puis de trier et de filtrer les résultats.

capture d’écran devtron

Ces deux outils utilisent la bibliothèque Outils d'accessibilité pour les développeurs faite par Google pour Chrome. Vous pouvez en apprendre davantage sur les règles d’audit accessibilité que cette bibliothèque utilise sur ce wiki du référentiel.

Si vous connaissez d’autres bons outils d'accessibilité pour Electrons, ajoutez-les à la documentation de l’accessibilité avec une pull request.

Mac App Store and Windows Auto Updater on Electron

· 2 mins de lecture

Recently Electron added two exciting features: a Mac App Store compatible build and a built-in Windows auto updater.


Mac App Store Support

As of v0.34.0 each Electron release includes a build compatible with the Mac App Store. Previously an application built on Electron would not comply with Apple's requirements for the Mac App Store. Most of these requirements are related to the use of private APIs. In order to sandbox Electron in such a way that it complies with the requirements two modules needed to be removed:

  • crash-reporter
  • auto-updater

Additionally some behaviors have changed with respect to detecting DNS changes, video capture and accessibility features. You can read more about the changes and submitting your app to the Mac App store in the documentation. The distributions can be found on the Electron releases page, prefixed with mas-.

Related Pull Requests: electron/electron#3108, electron/electron#2920

Windows Auto Updater

In Electron v0.34.1 the auto-updater module was improved in order to work with Squirrel.Windows. This means that Electron ships with easy ways for auto updating your app on both OS X and Windows. You can read more on setting up your app for auto updating on Windows in the documentation.

Related Pull Request: electron/electron#1984