本文へスキップ

"エコシステム"タグ付き投稿8件

Electronのパッケージエコシステムに関するブログ投稿

すべてのタグを表示

エコシステム2023年総括

·読了時間5分

2023年のElectronの開発者エコシステムにおける改善点と変更点について考察します。


ここ数ヶ月、Electronアプリの開発者エクスペリエンスを向上させるため、Electronエコシステム全体でいくつかの変更を加えてきました!Electron HQから最新の追加機能を簡単にご紹介します。

Electron Forge 7以降

Electronアプリケーションのパッケージ化と配布のためのオールインワンツールである最新のメジャーバージョン、Electron Forge 7が利用可能になりました。

Forge 6はv5からの完全な書き換えでしたが、v7は範囲が狭く、それでもいくつかの破壊的変更が含まれています。 今後は、破壊的変更が必要になった場合に、Forgeのメジャーバージョンの公開を継続します。

詳細については、GitHubの完全なForge v7.0.0変更ログを参照してください。

破壊的変更

  • macOS notarizationにnotarytoolを使用:2023年11月1日より、AppleはmacOS notarizationのレガシーaltoolを廃止し、このリリースではElectron Forgeから完全に削除されました。
  • 最小Node.jsバージョンがv16.4.0に増加:このリリースでは、必要な最小Node.jsバージョンを16.4.0に設定しました。
  • electron-prebuiltelectron-prebuilt-compileのサポートを削除:electron-prebuiltはElectronのnpmモジュールの元の名前でしたが、v1.3.1でelectronに置き換えられました。electron-prebuilt-compileはそのバイナリに対する代替手段で、高度なDX機能を備えていましたが、最終的にはプロジェクトとして放棄されました。

ハイライト

  • Google Cloud Storageパブリッシャー静的自動更新のサポートを強化するための取り組みの一環として、Electron ForgeはGoogle Cloud Storageへの直接公開をサポートするようになりました!
  • ESM forge.config.jsサポートElectron ForgeはESM forge.config.jsファイルをサポートするようになりました。(ちなみに、Electron 28ではESMエントリポイントのサポートにも期待してください。)
  • メーカーが並列実行されるようになりましたElectron Forge 6では、✨レガシー✨な理由でメーカーは順番に実行されていました。それ以来、Makeステップの並列化を悪影響なくテストしてきたため、同じプラットフォームの複数のターゲットをビルドする際に速度向上が見られるはずです!
ありがとうございます!

🙇 GCSパブリッシャーとForge設定でのESMサポートへの貢献に感謝いたします!mahnunchikさん、ありがとうございました!

静的ストレージ自動更新の改善

Squirrel.WindowsとSquirrel.Macは、Electronの組み込みautoUpdaterモジュールを支えるプラットフォーム固有のアップデートテクノロジーです。どちらのプロジェクトも、2つの方法による自動更新をサポートしています。

  • Squirrel互換のアップデートサーバー
  • 静的ストレージプロバイダー(例:AWS、Google Cloud Platform、Microsoft Azureなど)でホストされているマニフェストURL

アップデートサーバー方式は、従来Electronアプリで推奨される方法でしたが(アップデートロジックのカスタマイズも可能)、クローズドソースの場合、アプリが独自のサーバーインスタンスを維持する必要があるという大きな欠点がありました。

一方、静的ストレージ方式は常に可能でしたが、Electron内ではドキュメント化されておらず、Electronツールパッケージ間でのサポートも不十分でした。

@MarshallOfSoundによる素晴らしい作業により、サーバーレス自動アプリアップデートに関するアップデートストーリーが大幅に簡素化されました。

  • Electron ForgeのZipとSquirrel.Windowsメーカーは、autoUpdater互換のアップデートマニフェストを出力するように構成できるようになりました。
  • 新しいメジャーバージョンのupdate-electron-app(v2.0.0)は、update.electronjs.orgサーバーの代わりに、これらの生成されたマニフェストを読み取ることができます。

メーカーとパブリッシャーがクラウドファイルストレージにアップデートマニフェストをアップロードするように構成したら、数行の設定だけで自動アップデートを有効にできます。

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

updateElectronApp({
updateSource: {
type: UpdateSourceType.StaticStorage,
baseUrl: `https://my-manifest.url/${process.platform}/${process.arch}`,
},
});
さらに読む

📦 さらに詳しく知りたいですか?詳細なガイドについては、Forgeの自動更新ドキュメントを参照してください。

@electron/拡張ユニバース

Electronが最初に開始されたとき、コミュニティはElectronアプリの開発、パッケージ化、配布のエクスペリエンスを強化するための多くのパッケージを公開しました。時間の経過とともに、これらのパッケージの多くはElectronのGitHub組織に統合され、コアチームがメンテナンスの負担を引き受けるようになりました。

2022年、npmの@electron/名前空間の下で、これらのファーストパーティツールをすべて統合し始めました。この変更により、以前はelectron-fooだったパッケージはnpmでは@electron/fooになり、以前はelectron/electron-fooという名前だったリポジトリはGitHubではelectron/fooになります。これらの変更により、ファーストパーティプロジェクトとユーザーランドプロジェクトを明確に区別できます。これには、以下のような多くの一般的に使用されるパッケージが含まれます。

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

今後、リリースする全ての一級パッケージは@electron/名前空間にも配置されます。ただし、このルールには2つの例外があります。

  • Electronコアは引き続きelectronパッケージ名で公開されます。
  • Electron Forgeは、そのモノレポのパッケージを全て@electron-forge/名前空間で公開し続けます。
スターをお願いします

⭐ このプロセスの間に、electron/packagerリポジトリを誤って非公開にしてしまい、GitHubのスター数が消えてしまいました(削除前は9000以上ありました)。Packagerを積極的に使用されている方は、⭐ **スター** ⭐ をいただけると幸いです!

@electron/windows-signのご紹介

2023年6月1日より、業界標準として、Windowsコード署名証明書のキーをFIPS準拠のハードウェアに保存することが求められるようになりました。

実際には、これはCI環境でビルドと署名を行うアプリにとってコード署名を非常に難しくしました。多くのElectronツールは、構成パラメータとして証明書ファイルとパスワードを受け取り、ハードコードされたロジックを使用してそこから署名しようとするためです。

この状況はElectron開発者にとってよくある問題点でした。そのため、macOSの@electron/osx-signと同様に、Windowsコード署名をスタンドアロンのステップに分離する、より優れたソリューションに取り組んできました。

将来は、このパッケージをElectron Forgeツールチェーンに完全に統合する予定です。しかし、現時点では独立して存在しています。このパッケージは現在、npm install --save-dev @electron/windows-signでインストールでき、プログラムによる使用またはCLIから使用できます。

ぜひお試しいただき、リポジトリのissueトラッカーでフィードバックをお寄せください!

今後の予定

来月より、毎年恒例の12月の静止期間に入ります。その間、2024年のElectron開発エクスペリエンスをさらに向上させる方法について検討します。

今後取り組んでほしいことはありますか?ぜひお聞かせください!

Electron Forge 6の紹介

·読了時間:6分

Electron Forge v6.0.0がリリースされたことをお知らせします!このリリースは、2018年以降初のメジャーリリースであり、このプロジェクトをelectron-userlandからGitHubのメインelectron組織に移行します。

新機能と、アプリでElectron Forgeを採用する方法については、読み進めてください。

Electron Forgeとは?

Electron Forgeは、Electronアプリケーションのパッケージ化と配布を行うツールです。Electronのビルドツールのエコシステムを単一の拡張可能なインターフェースに統合することで、誰でもElectronアプリの作成にすぐに取り組むことができます。

主な機能は次のとおりです。

  • 📦 アプリケーションのパッケージ化とコード署名
  • 🚚 Windows、macOS、Linuxのカスタマイズ可能なインストーラー(DMG、deb、MSI、PKG、AppXなど)
  • ☁️ クラウドプロバイダー(GitHub、S3、Bitbucketなど)向けの自動パブリッシングフロー
  • ⚡️ webpackとTypeScript用の使いやすいボイラープレートテンプレート
  • ⚙️ ネイティブNode.jsモジュールのサポート
  • 🔌 拡張可能なJavaScriptプラグインAPI
さらに読む

Forgeの理念とアーキテクチャの詳細については、Why Electron Forgeの説明文書をご覧ください。

v6の新機能

完全な書き直し

v1からv5まで、Electron Forgeは、現在は廃止されたelectron-compileプロジェクトに基づいていました。Forge 6は、あらゆるElectronアプリケーションのニーズを満たせるよう拡張できる新しいモジュール式アーキテクチャで、プロジェクトを完全に書き直したものです。

過去数年で、Forge v6.0.0-betaはv5と機能的に同等になり、コードの変更も劇的に減少したため、一般への採用準備が整いました。

間違ったパッケージをインストールしないでください

バージョン5以前では、Electron Forgeはnpmのパッケージelectron-forgeに公開されていました。v6の書き直しから、Forgeは多くの小さなプロジェクトを持つモノレポプロジェクトとして構成されています。

正式にサポート

これまで、Electronのメンテナーはビルドツールについて意見を述べてこず、そのタスクをさまざまなコミュニティパッケージに任せてきました。しかし、Electronがプロジェクトとして成熟するにつれて、新しいElectron開発者がアプリのビルドと配布に必要なツールを理解することが難しくなっています。

Electron開発者の配布プロセスを支援するために、**ForgeをElectronの公式なオールインワンのビルドパイプラインとすることを決定しました**。

過去1年間、Forgeを公式Electronドキュメントに徐々に統合してきました。また、最近、Forgeを古い場所であるelectron-userland/electron-forgeからelectron/forgeリポジトリに移行しました。そして今、ついにElectron Forgeを一般にリリースする準備が整いました!

はじめに

新しいForgeプロジェクトの初期化

新しいElectron Forgeプロジェクトのスキャフォールディングは、create-electron-app CLIスクリプトを使用して実行できます。

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

このスクリプトは、完全なJavaScriptバンドリングと事前に構成されたビルドパイプラインを使用して、my-appフォルダーにElectronプロジェクトを作成します。

詳細については、ForgeドキュメントのGetting Startedガイドを参照してください。

ファーストクラスのwebpackサポート

上記のコードスニペットは、ForgeのWebpack Templateを使用しています。これは、新しいElectronプロジェクトの出発点としてお勧めです。このテンプレートは@electron-forge/plugin-webpackプラグインを中心に構築されており、次のような方法でwebpackとElectron Forgeを統合しています。

  • webpack-dev-serverを使用してローカル開発フローを強化し、レンダラーでのHMRをサポートします。
  • アプリケーションのパッケージ化前にwebpackバンドルのビルドロジックを処理します。
  • webpackバンドリングプロセスでネイティブNodeモジュールをサポートします。

TypeScriptサポートが必要な場合は、代わりにWebpack + TypeScript Templateを使用することを検討してください。

既存プロジェクトのインポート

Electron Forge CLIには、既存のElectronプロジェクトをインポートするコマンドも含まれています。

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

importコマンドを使用すると、Electron Forgeはいくつかのコア依存関係を追加し、新しいforge.config.js構成を作成します。既存のビルドツール(Electron Packager、Electron Builder、またはForge 5など)がある場合は、可能な限り多くの設定を移行しようとします。既存の設定の一部を手動で移行する必要がある場合があります。

手動移行の詳細については、Forgeのインポートドキュメントを参照してください。ヘルプが必要な場合は、Discordサーバーにアクセスしてください!

Forgeへの切り替えの理由

既にElectronアプリのパッケージ化とパブリッシングのためのツールを持っている場合でも、Electron Forgeを採用することによる利点は、初期の切り替えコストを上回る可能性があります。

Forgeを使用することの主な利点は2つあると考えています。

  1. **Forgeは、Electronでサポートされるようになったと同時に、アプリケーション構築の新しい機能を受け取ります。**そのため、自分で新しいツールのサポートを接続する必要がなく、アップグレード前に他のパッケージでそのサポートが最終的に実装されるのを待つ必要がありません。最近の例としては、macOSユニバーサルバイナリASAR整合性チェックがあります。

  2. **Forgeのマルチパッケージアーキテクチャにより、理解と拡張が容易になります。**Forgeは、明確な役割を持つ多くの小さなパッケージで構成されているため、コードフローを簡単に追跡できます。さらに、Forgeの拡張可能なAPI設計により、高度なユースケースのために、提供されている構成オプションとは別に、独自の追加ビルドロジックを作成できます。カスタムForgeプラグイン、メーカー、パブリッシャーの作成の詳細については、ドキュメントのExtending Electron Forgeセクションを参照してください。

破壊的変更

Forge 6は長い間ベータ版でしたが、リリース頻度は徐々に減少しました。しかし、2022年の後半に開発を加速し、v6.0.0安定版リリースの前に、いくつかの最終的な破壊的変更をプッシュするために、最後のいくつかのリリースを使用しました。

Electron Forge 6ベータユーザーの方は、最近のベータ版(>=6.0.0-beta.65)で行われた破壊的変更の一覧については、v6.0.0 GitHubリリースノートを参照してください。

変更とコミットの完全なリストは、リポジトリのCHANGELOG.mdにあります。

フィードバックを送信してください!

必要なものをお聞かせください!Electron Forgeチームは、常にユーザーの皆様により適したプロジェクトを構築することに努めています。

皆様からの機能リクエスト、問題報告、フィードバックは、Electron Forgeの改善に役立ちます!また、公式Electron Discordサーバーに参加していただき、Electron Forge専用のチャンネルで議論に参加することもできます。

https://electronforge.dokyumento.jpにあるForgeドキュメントに関するフィードバックがある場合は、electron-forge/electron-forge-docsリポジトリに同期されたGitBookインスタンスがあります。

Spectron廃止に関するお知らせ

·読了時間:2分

Spectronは2022年2月1日に非推奨となります。


2022年2月以降、SpectronはElectronチームによって正式に非推奨となります。

Spectronを非推奨とする理由

Spectronは、新しいバージョンのElectronごとに継続してリリースされてきましたが、1年以上ほとんどメンテナンスや改善が行われておらず、現在、専任のメンテナーがいません。Electron 14でリモートモジュールがElectronコアから外部モジュールに移行されたため、Spectronは信頼性の高い動作を継続するために大幅な書き換えが必要になります。

Spectronの継続的なメンテナンスのために利用可能ないくつかの選択肢を検討した結果、Electronチームは2022年にSpectronを非推奨とすることを決定しました。

非推奨化のタイムライン

以下は、予定されている非推奨化のタイムラインです。

  • 2021年11月~2022年1月:Electronチームは、コミュニティからのプルリクエストを引き続き受け付けます。
  • 2022年1月:Spectronの非推奨に関する最終的な告知バージョンがリリースされます。
  • 2022年2月1日:Spectronのリポジトリは「アーカイブ済み」としてマークされます。それ以降、プルリクエストは受け付けられません。

2022年2月1日以降も、ElectronはSpectronのリポジトリを無期限に公開し続けます。そのため、他者は既存のコードをフォークしたり、自身のプロジェクトで使用したりすることができます。これにより、Spectronに依存しているプロジェクトの移行期間を長くできることを願っています。

Spectronの代替手段

現在プロジェクトでSpectronを使用しており、代替のテストソリューションに移行したい場合は、こちらの自動テストガイドをご覧ください。

現在、PlaywrightやWebDriverIOなど、Spectronの推奨される代替手段がいくつかあります。各オプションの公式チュートリアルは、自動テストドキュメントにあります。

今後の予定

Electronチームは、SpectronとElectronをご利用いただきありがとうございます。多くの方がアプリのテストにSpectronを依存していることを理解しており、この移行をできるだけ円滑に進めたいと考えています。Electronをお選びいただきありがとうございます!

オープンソースアプリの簡単な自動更新

·読了時間:3分

本日、オープンソースのElectronアプリの簡単な自動アップデートを可能にする、無料のオープンソースのホスト型アップデートWebサービスとコンパニオンnpmパッケージをリリースしました。これは、アプリ開発者がデプロイメントについて考える時間を減らし、ユーザーにとって高品質なエクスペリエンスの開発により多くの時間を費やすことを可能にする一歩です。


The new updater module in action

作業の簡素化

Electronには、autoUpdater APIがあり、アプリはリモートエンドポイントからメタデータを取得してアップデートを確認し、バックグラウンドでダウンロードし、自動的にインストールすることができます。

これらのアップデートを有効にすることは、多くのElectronアプリ開発者にとってデプロイメントプロセスにおける面倒なステップでした。これは、アプリのバージョンの履歴メタデータを提供するWebサーバーをデプロイして維持する必要があるためです。

本日、自動アプリアップデートのための新しいドロップインソリューションを発表します。Electronアプリが公開GitHubリポジトリにあり、GitHub Releasesを使用してビルドを公開している場合は、このサービスを使用してユーザーに継続的なアプリアップデートを提供できます。

新しいモジュールの使用方法

皆様の側の設定を最小限にするために、新しいupdate.electronjs.org Webサービスと統合するnpmモジュールであるupdate-electron-appを作成しました。

モジュールのインストール

npm install update-electron-app

アプリのメインプロセス内の任意の場所から呼び出します。

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

以上です!このモジュールは、アプリの起動時、その後10分ごとにアップデートを確認します。アップデートが見つかった場合は、バックグラウンドで自動的にダウンロードされ、アップデートの準備が整うとダイアログが表示されます。

既存アプリの移行

既にElectronのautoUpdater APIを使用しているアプリも、このサービスを使用できます。update-electron-appをカスタマイズするか、update.electronjs.orgと直接統合することができます。

代替手段

アプリのパッケージングにelectron-builderを使用している場合は、その組み込みのアップデーターを使用できます。詳細については、electron.build/auto-updateを参照してください。

アプリがプライベートの場合は、独自のアップデートサーバーを実行する必要があります。これには、ZeitのHazelやAtlassianのNucleusなど、多くのオープンソースツールがあります。アップデートサーバーのデプロイチュートリアルで詳細を確認してください。

謝辞

シンプルでスケーラブルなWebサービスの設計と構築に協力してくれたJulian Gruberに感謝します。Zeitの皆さんに、設計のインスピレーションを得たオープンソースのHazelサービスを提供してくれたことに感謝します。Samuel Attardによるコードレビューに感謝します。このサービスのテストに協力してくれたElectronコミュニティに感謝します。

🌲 Electronアプリの常緑の未来へ!

ElectronでのTypeScriptサポート発表

·読了時間:4分

electron npmパッケージには、Electron API全体の詳細な注釈を提供するTypeScript定義ファイルが含まれるようになりました。これらの注釈は、**プレーンなJavaScriptを書いている場合でも**、Electronの開発エクスペリエンスを向上させることができます。プロジェクトで最新のElectron型定義を取得するには、npm install electronを実行するだけです。


TypeScriptは、Microsoftによって作成されたオープンソースのプログラミング言語です。これはJavaScriptのスーパーセットであり、静的型サポートを追加することで言語を拡張します。近年、TypeScriptコミュニティは急速に成長しており、TypeScriptは最近のStack Overflow開発者調査で最も人気のあるプログラミング言語の1つにランクインしました。TypeScriptは「スケーラブルなJavaScript」として記述されており、GitHubSlackMicrosoftのチームはすべて、それを利用して何百万人ものユーザーが使用するスケーラブルなElectronアプリを作成しています。

TypeScriptは、クラス、オブジェクトのデストラクチャリング、async/awaitなど、JavaScriptの新しい言語機能の多くをサポートしていますが、真の差別化要因は**型注釈**です。プログラムで期待される入力および出力データ型を宣言することで、コンパイル時にエラーを見つけるのに役立ち、バグを削減できます。また、注釈はプログラムの動作方法の公式な宣言としても機能します。

プレーンなJavascriptでライブラリが記述されている場合、型はドキュメントを作成する際の事後的な考慮事項として曖昧に定義されることがよくあります。関数は、ドキュメントに記載されているものよりも多くの型を受け入れることがよくあります。または、関数がドキュメント化されていない見えない制約を持つことがあり、これによりランタイムエラーが発生する可能性があります。

TypeScriptは、**定義ファイル**でこの問題を解決します。TypeScript定義ファイルは、ライブラリのすべての関数とその期待される入力および出力型を記述します。ライブラリの作成者が公開されたライブラリにTypeScript定義ファイルをバンドルすると、そのライブラリのコンシューマーはエディター内で直接APIを参照し、ライブラリのドキュメントを参照する必要がないことが多く、すぐに使い始めることができます。

Angular、Vue.js、node-github(そしてElectron!)などの人気プロジェクトの多くは、独自の定義ファイルを作成し、公開されたnpmパッケージにバンドルしています。独自の定義ファイルをバンドルしていないプロジェクトについては、コミュニティが維持する定義ファイルのサードパーティエコシステムであるDefinitelyTypedがあります。

インストール

バージョン1.6.10以降、Electronのすべてのリリースには独自のTypeScript定義ファイルが含まれています。npmから`electron`パッケージをインストールすると、`electron.d.ts`ファイルはインストールされたパッケージに自動的にバンドルされます。

Electronをインストールする最も安全な方法は、正確なバージョン番号を使用することです。

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

または、yarnを使用している場合

yarn add electron --dev --exact

すでに`@types/electron`や`@types/node`のようなサードパーティの定義を使用していた場合は、競合を防ぐためにElectronプロジェクトからそれらを削除する必要があります。

定義ファイルは、当社の構造化されたAPIドキュメントから派生しているため、ElectronのAPIドキュメントと常に一貫しています。`electron`をインストールするだけで、使用しているElectronのバージョンと最新の状態のTypeScript定義が常に得られます。

使用方法

Electronの新しいTypeScriptアノテーションのインストールと使用方法の概要については、この短いデモスクリーンキャストをご覧ください。

Visual Studio Codeを使用している場合、TypeScriptサポートは既に組み込まれています。また、AtomSublimevim、およびその他のエディター用のコミュニティが維持するプラグインもあります。

エディターがTypeScript用に設定されると、オートコンプリート候補、インラインメソッド参照、引数チェックなど、よりコンテキストに応じた動作が表示されるようになります。

Method autocompletion

Method reference

Argument checking

TypeScript入門

TypeScriptを初めて使用し、詳細を学習したい場合は、Microsoftによるこの入門ビデオで、この言語が作成された理由、動作方法、使用方法、および将来の方向性について概要を説明しています。

公式TypeScript Webサイトにはハンドブックプレイグラウンドもあります。

TypeScriptはJavaScriptのスーパーセットであるため、既存のJavaScriptコードは既に有効なTypeScriptです。つまり、必要に応じて新しい言語機能を追加することで、既存のJavaScriptプロジェクトをTypeScriptに段階的に移行できます。

謝辞

このプロジェクトは、Electronのオープンソースメンテナーコミュニティの支援なしには実現しませんでした。バグ修正、ドキュメントの改善、技術的なガイダンスを提供してくれたSamuel Attard、Felix Rieseberg、Birunthan Mohanathas、Milan Burda、Brendan Forster、その他多くの方々に感謝します。

サポート

Electronの新しいTypeScript定義ファイルの使用中に問題が発生した場合は、electron-typescript-definitionsリポジトリに問題を報告してください。

ハッピーTypeScript!

Electronユーザーランド

·読了時間:3分

ElectronのWebサイトに新しいユーザーランドセクションを追加しました。これは、繁栄しているオープンソースエコシステムを構成する人々、パッケージ、アプリを発見するのに役立ちます。


github-contributors

ユーザーランドの起源

ユーザーランドとは、ソフトウェアコミュニティの人々が集まってツールやアイデアを共有する場所です。この用語はUnixコミュニティで生まれ、カーネルの外で実行されるプログラムを指していましたが、今日ではより多くの意味を持っています。今日のJavaScriptコミュニティの人々がユーザーランドについて言及する場合、通常はnpmパッケージレジストリのことを言っています。これは、実験とイノベーションの大部分が起こる場所であり、NodeとJavaScript言語(Unixカーネルのような)は比較的少数の安定したコア機能を保持しています。

NodeとElectron

Nodeと同様に、Electronは少数の主要なAPIを持っています。これらは、マルチプラットフォームデスクトップアプリケーション開発に必要な基本機能を提供します。この設計思想により、Electronはどのように使用されるべきかについて過度に指示することなく、柔軟なツールであり続けることができます。

ユーザーランドは「コア」の対応物であり、ユーザーはElectronの機能を拡張するツールを作成および共有できます。

データの収集

`electron`または`electron-prebuilt`に依存する15,000個の公開GitHubリポジトリのメタデータを使用して、エコシステムのトレンドをより深く理解しました。

GitHub APIlibraries.io API、およびnpmレジストリを使用して、依存関係、開発依存関係、依存者、パッケージ作成者、リポジトリ貢献者、ダウンロード数、フォーク数、スターゲイザー数などの情報を収集しました。

次に、このデータを使用して次のレポートを生成しました。

結果のフィルタリング

パッケージ、アプリ、リポジトリをリストするアプリ依存関係スター付きアプリのようなレポートには、結果をフィルタリングするために使用できるテキスト入力があります。

この入力に文字を入力すると、ページのURLが動的に更新されます。これにより、特定のユーザーランドデータのスライスを表すURLをコピーして、他の人と共有できます。

babel

今後の展開

この最初のレポートセットは始まりにすぎません。コミュニティがどのようにElectronを構築しているかについてのデータを継続的に収集し、Webサイトに新しいレポートを追加していきます。

このデータの収集と表示に使用されたすべてのツールはオープンソースです。

これらのレポートの改善方法についてアイデアがある場合は、Webサイトリポジトリまたは上記のいずれかのリポジトリで問題を開いてお知らせください。

ユーザーランドを今日のものにしてくれたElectronコミュニティの皆さんに感謝します!

アクセシビリティツール

·読了時間:2分

アクセシビリティの高いアプリケーションを作成することは重要であり、開発者がすべてのユーザーにとってアプリを改善する機会を提供する新しい機能をDevtronSpectronに導入できることを嬉しく思います。


Electronアプリケーションにおけるアクセシビリティに関する懸念事項は、どちらも最終的にはHTMLであるため、Webサイトのものと似ています。ただし、Electronアプリでは、アプリに監査対象を指定するURLがないため、アクセシビリティ監査のオンラインリソースを使用することはできません。

これらの新機能により、監査ツールがElectronアプリで使用できるようになりました。Spectronを使用してテストに監査を追加するか、Devtronを使用してDevTools内で使用することができます。ツールの概要については以下をお読みください。または、詳細についてはアクセシビリティに関するドキュメントをご覧ください。

Spectron

テストフレームワークSpectronでは、アプリケーションの各ウィンドウと<webview>タグを監査できるようになりました。例:

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

この機能の詳細については、Spectronのドキュメントをご覧ください。

Devtron

Devtronには、アプリ内のページを監査し、結果をソートおよびフィルタリングできる新しいアクセシビリティタブがあります。

devtron screenshot

これらのツールはどちらも、GoogleがChrome向けに構築したアクセシビリティ開発者ツールライブラリを使用しています。このライブラリが使用するアクセシビリティ監査ルールについては、リポジトリのwikiで詳しく知ることができます。

Electronの優れたアクセシビリティツールをご存知でしたら、プルリクエストでアクセシビリティに関するドキュメントに追加してください。

Mac App StoreとElectronでのWindows自動アップデート

·読了時間:2分

最近、Electronには2つのエキサイティングな機能が追加されました。Mac App Storeと互換性のあるビルドと、組み込みのWindows自動更新機能です。


Mac App Storeサポート

v0.34.0以降、各ElectronリリースにはMac App Storeと互換性のあるビルドが含まれています。以前は、Electronで構築されたアプリケーションは、Mac App StoreのAppleの要件を満たしていませんでした。これらの要件のほとんどは、プライベートAPIの使用に関連しています。要件を満たすようにElectronをサンドボックス化するには、2つのモジュールを削除する必要がありました。

  • crash-reporter
  • auto-updater

さらに、DNSの変更、ビデオキャプチャ、アクセシビリティ機能の検出に関するいくつかの動作が変更されました。変更点とアプリのMac App Storeへの提出については、ドキュメントをご覧ください。配布版はElectronリリースページで、mas-プレフィックス付きで見つけることができます。

関連するプルリクエスト:electron/electron#3108electron/electron#2920

Windows自動更新機能

Electron v0.34.1では、Squirrel.Windowsで動作するようにauto-updaterモジュールが改善されました。これは、ElectronがOS XとWindowsの両方でアプリを自動更新するための簡単な方法を提供することを意味します。ドキュメントのWindowsでのアプリの自動更新設定について詳しく読むことができます。

関連するプルリクエスト:electron/electron#1984