AWSはReactで「新しいオープンソースデザインシステム」を構築している

Table of Contents

AWSはReactで「新しいオープンソースデザインシステム」を構築している

Amazon Web Services は AWS UI をリリースしました。クラウド サービス業界ではこれを「新しいオープン ソース デザイン システムを作成するための大規模なプロセスの最初のステップ」と表現しています。

この背景は、Windows 専用の .NET Framework アプリケーションをスキャンして、Linux 上で実行される .NET のオープンソース バージョンである .NET Core に移植するために修正が必要な箇所を検出するツールである .NET Porting Assistant のユーザー インターフェイス コードをオープンソース化することです。

AWS は顧客に Windows からの移行を強く勧めているようで、投稿では「Linux のパフォーマンス、コスト削減、堅牢なエコシステム」に言及している。

Porting Assistant for .NETは既にオープンソース化されていましたが、ReactとElectronを使用して構築されたツールのユーザーインターフェースのコードはこれまで公開されていませんでした。ReactはFacebookが開発した人気のJavaScriptフレームワークであり、ElectronはJavaScript、HTML、CSSを使用してクロスプラットフォームのデスクトップアプリケーションを構築するためのプロジェクトです。

.NET で .NET 移植ツールを構築してみてはいかがでしょうか?.NET Framework アプリケーションは Windows でしか実行できないため、AWS が Windows Forms、Windows Presentation Foundation、または UWP を使用してデスクトップで .NET Core コードを実行できる機能を活用しないのはなぜかと疑問に思うかもしれません。確かにこれは可能ですが、AWS はクロスプラットフォーム ユーザー インターフェース コンポーネントを JavaScript/TypeScript、そしてある程度は React に標準化し、Web とデスクトップ間でライブラリを共有できるというメリットを得ているようです。

AWS UIは「新しいオープンソースデザインシステムを作成するためのより大きなプロセスの最初のステップ」と説明されています。

この方向性は、AWS UI の最初のリリースで明確に示され、「Web アプリケーションで直感的で応答性に優れ、アクセスしやすいユーザー エクスペリエンスを実現する React コンポーネントのコレクション」と説明されています。

AWS UI プロジェクトは Apache 2.0 オープンソース ライセンスの下でリリースされていますが、ソース コードはまだ GitHub などに公開されておらず、NPM パッケージとしてのみ利用可能です。

同社は次のように述べています。「AWS UIのソースコードとドキュメントはまだオープンソース化または公開されていません。現時点では、利用可能なコンポーネントとそのパラメータのリストを取得する最良の方法は、node_modules内のパッケージを確認することです。AWS UIに関して追加のサポートが必要な場合は、問題を報告してください。必要なサポートを喜んで提供いたします。」

ボタン、テキスト入力、チェックボックス、プログレスバー、テーブルといった基本的なものから、コードエディタや設定可能なステップを備えたウィザードコンポーネントといった複雑なものまで、50種類以上のコンポーネントを網羅した包括的なコレクションです。コードは大部分がTypeScriptで記述されています。

AWS UI の一部である他の NPM パッケージには、React フックを介して一部の UI コンポーネントの状態を制御する collection-hooks、AWS UI と一貫性のある新しいカスタムコンポーネントの構築を支援する design-tokens、グローバルスタイルおよびテストユーティリティ用のパッケージなどがあります。

AWS が「新しいオープンソース設計システム」(AWS 自身の言葉)を作成しているのはなぜでしょうか?これは推測の域を出ませんが、クラウド サービス企業である AWS はクライアント アプリケーションの作成を事業としているのではなく、サービスの使いやすさを重視しているのです。

AWS SDKは、C++からPython、Java、.NETからAndroid、iOSまで、あらゆる言語に対応しています。こうした多様なシステムへのサポートを維持することは不可欠ですが、一部のサービスでは、クライアント構築の複雑さが依然として導入の障壁となっています。

一例として、Chime SDK はビデオ、オーディオ、チャットソリューションを提供しています。そのため、SDK には Chime を使ったアプリケーションを開発する開発者向けに、より高レベルなコンポーネントを提供する React コンポーネントセットも含まれています。React は、Electron などのソリューションと組み合わせることで幅広いプラットフォームに対応できるため、優れた選択肢となります。

こうした状況で奇妙なのは、.NET Porting Assistant の実際の UI が、実に簡素で見苦しいということです。その用途を考えれば、これはそれほど問題ではありませんが、今後、より印象的な AWS UI の例が登場することを期待したいところです。®

Discover More