メインコンテンツへ飛ぶ

"エコシステム" タグの記事が 1 件の投稿 件あります

全てのタグを表示

Moving our Ecosystem to Node 22

· 読むのにかかる時間 1 分

In early 2025, Electron’s npm ecosystem repos (under the @electron/ and @electron-forge/ namespaces) will move to Node.js 22 as the minimum supported version.


What does this mean?

In the past, packages in Electron’s npm ecosystem (Forge, Packager, etc) have supported Node versions for as long as possible, even after a version has reached its End-Of-Life (EOL) date. This is done to make sure we don’t fragment the ecosystem—we understand that many projects depend on older versions of Node, and we don’t want to risk stranding those projects unless there was a pressing reason to upgrade.

Over time, using Node.js 14 as our minimum version has become increasingly difficult for a few reasons:

  • Lack of official Node.js 14 macOS ARM64 builds requires us to maintain CI infrastructure workarounds to provide full test coverage.
  • engines requirements for upstream package dependencies have moved forward, making it increasingly difficult to resolve supply chain security issues with dependency bumps.

Additionally, newer versions of Node.js have included many improvements that we would like to leverage, such as runtime-native common utilities (e.g. fs.glob and util.parseArgs) and entire new batteries-included modules (e.g. node:test, node:sqlite).

Why upgrade now?

In July 2024, Electron’s Ecosystem Working Group decided to upgrade all packages to the earliest Node version where require()of synchronous ESM graphs will be supported (see nodejs/node#51977 and nodejs/node#53500) at a future point after that version reaches its LTS date.

We’ve decided to set that update time to January/February 2025. After this upgrade occurs, Node 22 will be the minimum supported version in existing ecosystem packages.

What action do I need to take?

We’ll strive to maintain compatibility as much as possible. However, to ensure the best support, we encourage you to upgrade your apps to Node 22 or higher.

Note that the Node version running in your project is unrelated to the Node version embedded into your current version of Electron.

今後の予定

Please feel free to write to us at info@electronjs.org if you have any questions or concerns. You can also find community support in our official Electron Discord.

エコシステム 2023 総括

· 読むのにかかる時間 1 分

2023 年の Electron の開発者エコシステムの改善と変化を振り返ります。


過去数ヶ月で、Electron アプリの開発者体験を強化するために、Electron エコシステム全体でいくつかの変更を醸成してきました。 Electron HQ からの最新の追加の速報はこちらです。

Electron Forge 7 とその先

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

Forge 6 は v5 からの完全な書き換えでした。v7 のスコープは小さいですが、いくつかの改善点が含まれています。 今後も、破壊的変更が必要になり次第、Forge のメジャーバージョンを発行していきます。

詳細については、GitHub 上の Forge v7.0.0 変更ログ をご覧ください。

破壊的変更

  • macOS の公証を notarytool に切り替えました: 2023-11-01 時点で、Apple は macOS の公証のための 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 ファイルをサポートするようになりました。 (P.S. Electron 28 での ESM エントリポイントのサポートをご期待ください。)
  • Maker を並列実行するようになりました: Electron Forge 6 では、Maker は ✨ レガシー✨ な理由で直列実行していました。 それ以来、副作用のない Make ステップの並列化をテストしてきました。これで同一プラットフォーム向けに複数のターゲットをビルドするときの速度が向上しているとわかるでしょう!
ありがとうございます!

🙇 Forge の設定で GCS パブリッシャーと 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 Organization に組み込まれ、コアチームがそのメンテナンスを負担していました。

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/ 名前空間の下にその monorepo パッケージ全てを公開し続けます。
スターの落とし物

⭐ この過程で、私たちは誤って electron/packager リポジトリを非公開にしてしまいました。これにより、GitHub のスターの数を消えるという不幸な副作用がありました (消える前は 9000 以上でした)。 Packager をいつもご利用の方は、⭐ スター ⭐ していただけると幸いです!

@electron/windows-sign の紹介

2023-06-01 以降、業界標準は FIPS 準拠のハードウェアに格納される Windows のコード署名証明書の鍵を要求するようになりました。

実際には、CI 環境でビルドおよびサインインを行うアプリにとってのコード署名が非常に困難になりました。 多くの Electron ツールは、設定パラメータとして証明書ファイルとパスワードを取り込み、そこからハードコードされたロジックで署名しようとします。

この状況は Electron 開発者にとって共通の苦痛となっています。だからこそ、Windows のコード署名をスタンドアローンな手順へと分離する改善策に取り組んでいるのです。この手順は macOS で @electron/osx-sign が行うことに似ています。

将来的には、このパッケージを Electron Forge のツールチェーンに完全に統合する予定ですが、現在は独自のものになっています。 そのパッケージは現在 npm install --save-dev @electron/windows-sign でインストールでき、プログラムからまたは CLI 経由で利用できます。

レポジトリの Issue トラッカー にてぜひご意見をお寄せください!

次は何をするのでしょうか?

私たちは来月から、毎年 12 月の安息期に入る予定です。 私たちはその間、2024 年に Electron の開発体験をさらに向上させる方法について考えていることでしょう。

次に取り組んでほしいことがおありですか? ぜひお聞かせください!

Electron Forge 6 の紹介

· 読むのにかかる時間 1 分

待望の Electron Forge v6.0.0 がリリースされましたことをお知らせします! このリリースは 2018 年以来の Forge のメジャーリリースとなり、GitHub 上のこのプロジェクトは electron-userland からメインのelectron Organization に移動されました。

ここでは 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 の新機能はなんですか?

完全な書き直し

Electron Forge は v1 から v5 まで、現在では廃止されている electron-compile プロジェクトをベースにしていました。 Forge 6 は、Electron アプリケーションのニーズに合わせて拡張可能な新しいモジュール式アーキテクチャを採用し、プロジェクトを完全に書き直しました。

過去数年間で、Forge v6.0.0-beta は v5 と同等の機能を達成し、コードの乱れが減り、一般的に採用できるツールになりました。

違うパッケージをインストールしないように

バージョン 5 以前では、Electron Forge は npm 上に electron-forge パッケージとして公開していました。 v6 での書き換えから、Forge は代わりに多くの小さなプロジェクトを持つ monorepo プロジェクトとして構成されるようになりました。

公式サポート

これまで 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 の import ドキュメント に記載されています。 もし助けが必要でしたら、私たちの 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 のベータ版の利用者の方は、v6.0.0 GitHub リリースノート に最新のベータ版 (>=6.0.0-beta.65) で行われた変更点のリストがありますので、そちらをご覧ください。

変更とコミットの完全なリストは、リポジトリの CHANGELOG.md で閲覧できます。

フィードバックをお送りください!

欲しいものを教えてください! Electron Forge チームは、常にユーザーにとってより良いプロジェクトを構築することを目指しています。

機能リクエストの提出、Issue の投稿、またはご意見を寄せていただければ、Electron Forge の改善に役立ちます。 また、公式 Electron Discordサーバー では、Electron Forge のディスカッション用チャンネルが用意されていますので、そちらからもご参加できます。

https://electronforge.io の Forge ドキュメントにフィードバックをしたい方は、GitBook インスタンスを electron-forge/electron-forge-docs レポジトリに同期していますのでそちらにお願いします。

Spectron 非推奨通知

· 読むのにかかる時間 1 分

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


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

なぜ Spectron を非推奨にするのですか?

Spectron は Electron の新バージョンが出るたびに、一貫して新しいリリースを出してきていました。しかしこのプロジェクトは 1 年以上小さなメンテナンスや改良しか行われておらず、現在フルタイムのメンターはいません。 Electron 14 では remote モジュールが Electron コアから外部モジュールに移行するため、Spectron が確実に動作し続けるためには大幅な書き換えが必要です。

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

非推奨のタイムライン

予定の非推奨タイムラインは以下の通りです。

  • 2021 年 11 月 - 2022 年 1 月: Electron チームは引き続きコミュニティからのプルリクエストを受け付けます。
  • 2022 年 1 月: Spectron の非推奨に関する警告の最終版を公開します。
  • 2022 年 2 月 1 日: Spectron のレポジトリを「archived」にします。 これ以降のプルリクエストは受け付けられません。

2022 年 2 月 1 日以降、Electron は Spectron のレポジトリを無期限に保存し、他の人がフォークしたり、既存コードを自分のプロジェクトに利用したりできるようにします。 これにより、Spectron に依存するプロジェクトの移行もよりスムーズに行われることを期待しています。

Spectron の代替

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

現在は Spectron に代わって推奨される代替品として、Playwright や WebDriverIO などがあります。 各選択肢ごとの公式チュートリアルも、この自動テストのドキュメントに記載しております。

次回予告

私たち Electron チームとしましては、Spectron と Electron をご利用いただき感謝しております。 多くのお客様がアプリケーションのテストに Spectron をご利用なされていることは承知しており、この移行をできる限りスムーズに行いたいと考えています。 Electron を選んでくださりありがとうございます!

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

· 読むのにかかる時間 1 分

本日、無料でオープンソースのホスト型 更新ウェブサービス と連携 npm パッケージ をリリースし、オープンソース Electron アプリの自動更新を簡単にできるようにします。 これにより、アプリ開発者がデプロイについて頭を悩ませずに済み、ユーザーへの高品質なエクスペリエンス開発について集中できます。


新しい更新モジュールの動作

簡単に新しく

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

こういった更新の有効化は、多くの Electron アプリ開発者にとってデプロイプロセスでの面倒な手順でした。アプリのバージョン履歴メタデータを提供するためだけに、ウェブサーバーを展開して維持する必要があるからです。

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

新モジュールの使い方

最小限の構成にするため、新しい update.electronjs.org ウェブサービスと統合する 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 など、多くのオープンソースツールがあります。 さらなる情報は 更新サーバーのデプロイ のチュートリアルをご参照ください。

謝辞

このシンプルでスケーラブルなウェブサービスの設計と構築を支援して頂いた Julian Gruber に感謝します。 オープンソースの Hazel サービスを作った Zeit の方々に感謝します。このサービスからデザインのインスピレーションを得ました。 コードレビューをして下さった Samuel Attard に感謝します。 このサービスのテストを支援していただいた Electron コミュニティに感謝します。

🌲 Electron アプリの未来はここに永遠の緑となった!

Electron での TypeScript サポートを発表

· 読むのにかかる時間 1 分

Electron npm パッケージに、Electron API 全体の詳細なアノテーションを提供する TypeScript 定義ファイルが含まれるようになりました。 これらのアノテーションは、たとえ純粋なJavaScriptを書いていていても、Electron の開発エクスペリエンスを向上させることができます。 ただnpm install electron を実行して、あなたのプロジェクトに最新の Electron の入力を取得できます。


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

TypeScript は、JavaScript により新しい多くの言語機能を提供しています。クラス、オブジェクトの破棄、非同期/待機などです。しかしその本当の差別化機能は**型アノテーション **です。 プログラムに期待される入出力データ型を宣言すると、コンパイル時にエラーを見つけることができ、バグを減らすことができます。そしてアノテーションはプログラムがどのように動作するかを形式的に説明することになります。

純粋な Javascript でライブラリが書かれている場合、ドキュメントを書くときには、その型はしばしば漠然と定義されます。 関数は、多くの場合、ドキュメントで指定された型よりも多くの型を受け入れることもありますし、関数にドキュメント化されていない、暗黙の型の制約を持つ場合があります。そのためにランタイムエラーが発生する可能性もあります。

TypeScript は 定義ファイル でこの問題を解決します。 TypeScript の定義ファイルには、ライブラリのすべての関数と、それらの関数で期待される入出力の型が記述されています。 ライブラリの作成者が公開ライブラリに TypeScript 定義ファイルをバンドルする場合、そのライブラリを使って開発するユーザーは、そのライブラリのAPIをエディタ内ですぐに調べられるようになります。そして、ライブラリのドキュメントを参照することなく、すぐに開発を開始できます。

AngularVue.jsnode-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 にあわせて設定すると、オートコンプリートサジェスト、インラインメソッド参照、引数チェックなど、コンテキストに対応して動作します。

メソッドの自動補完

メソッドのリファレンス

引数のチェック

TypeScript を始める

もしあなたが、TypeScript に詳しくなくかつ学びたいと考えているならこのMicrosoftの導入ビデオ をご覧ください。なぜTypeScriptが作られたか、TypeScriptの動作、使用方法などが説明されます。

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

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

謝辞

このプロジェクトは、Electron のオープンソースメンテナのコミュニティの協力なしには実現できませんでした。 Samuel Attard, Felix Rieseberg, Birunthan Mohanathas, Milan Burda, Brendan Forster, また、その他のバグの修正、文書の改善、技術ガイダンスの作成にたずさわっっていただいた多くのメンバーに感謝します。

サポート

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

ハッピーTypeScripting!

Electron Userland

· 読むのにかかる時間 1 分

私達は新しい userland セックションを Electron のウェブサイトに追加して、ユーザーが私達の反映するオープンソースのエコシステムを構成する人々、パッケージ、アプリを発見する手助けをしています。


github-contributors

ユーザーランドの起源

Userland は、ソフトウェアコミュニティの人々が一緒にツールやアイデアを共有する場所です。 この用語は Unix のコミュニティに由来しています。カーネルの外で実行されたプログラムを Userland と呼んでいましたが、今日ではそれ以上のことを意味しています。 今日のJavaScript コミュニティの人々が Userland を参照するとき、通常は npm パッケージレジストリ について話しています。 これは実験とイノベーションが多く発生する場所です。一方 Node とJavaScript 言語は(Unixカーネルのように) 比較的小さく安定したコア機能のセット保持しています。

NodeとElectron

Node と同様に、Electron にはコア API の小さなセットがあります。 これらは、マルチプラットフォームのデスクトップアプリケーションの開発に必要な基本的な機能を提供します。 この設計思想により、Electronは過度にルールに則りすぎたものになることなく、柔軟性を持つツールであり続けることが可能になっています。

Userland はコアの対義語であり、ユーザーはElectronの機能を拡張するツールを作成し、共有することができます。

データ収集

私達のエコシステムのトレンドをよりよく理解するために、electronelectron-prebuiltに依存する15,000ものパブリックなGitHubリポジトリからメタデータを分析しました。

私達はGitHub API, とlibraries.io API、それに npm レジストリを使用して、依存関係、開発の依存関係、パッケージ、作者、リポジトリの貢献者、リポジトリからのダウンロード数、リポジトリのフォーク数、夢想家の数の情報を収集しました。

次に、レポートを生成するために以下のデータを使用しました。

結果のフィルタリング

アプリの依存関係 やパッケージ、アプリ、リポジトリなどのリストアップしたおきにいりアプリのようなレポートは結果をフィルタするために使用するテキスト入力をもっています。

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

babel

より多くの人の参加

今回の第一号報告は、始まりに過ぎません。 今後も、コミュニティがどのように Electron を構築しているかについてのデータを収集し、ウェブサイトに新しいレポートを追加していく予定です。

このデータを収集し表示するためのツールはすべてオープンソースです。

これらのレポートを改善する方法についてのアイデアをお持ちでしたら、ウェブサイトリポジトリまたは上記のリポジトリのいずれかにIssueを立ててお知らせください。

Electron コミュニティのおかげで、今日の userland を作ることができました!

アクセシビリティツール

· 読むのにかかる時間 1 分

アクセシビリティの高いアプリケーションを作ることは重要です。開発者がすべてのユーザ向けのより良いアプリケーション開発を手助けする新機能 DevtronSpectron を紹介します。


Electron アプリケーションのアクセシビリティに関する懸念は、どちらも最終的に HTML であるため、ウェブサイトと同様です。 しかし、Electron アプリケーションでは、アプリケーションに監査機を指す URL がないため、アクセシビリティ監査にオンラインリソースを使用することはできません。

これらの新機能は、監査ツールを Electron アプリに提供します。 Spectron でテストに監査を追加するか、開発者向けツール内で Devtron で監査を使用するかを選択できます。 詳細は、ツールの概要を読むか アクセシビリティドキュメント をご覧ください。

Spectron

Spectron テストフレームワークで、アプリケーション内の各ウィンドウと <webview> タグを監視できます。 以下がその例です。

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

この機能の詳細は Spectron のドキュメント にて閲覧できます。

Devtron

Devtronでは新機能のアクセシビリティタブが利用できます。このタブでは、アプリケーション内の監視結果をソートしたり、フィルタによって絞り込んだりできます。

devtron スクリーンショット

いずれのツールも Google が Chrome 向けに開発した Accessibility Developer Tools ライブラリを利用しています。 このライブラリが使用しているアクセシビリティ監査のルールに関する詳細は、リポジトリの wiki に記載されています。

これ以外の Electron 向けに使用可能な素晴らしいアクセシビリティツールをご存じの方は、 ぜひアクセシビリティに関するドキュメント に追加してプルリクエストをお送りください。

Electron での Mac App Store と Windows 自動更新

· 読むのにかかる時間 1 分

最近、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 では、auto-updater モジュールが Squirrel.Windows で動作するように改善されました。 つまり、Electron なら OS X と Windows の両方で簡単に自動更新できるアプリを公開できます。 ドキュメントに Windows での自動更新のアプリ設定 に関する読み物があります。

関連するプルリクエストは electron/electron#1984 です。