コントリビュート

このドキュメントを編集

ドキュメントを翻訳するか、お使いのコンピューターでプロジェクト全体を開きます。

作業内容を送信するまで、何も公開されません。

ブログ

Wails v2 リリース

Wails のリリースノートとお知らせ

leaanthony読了まで1分

モンタージュのスクリーンショット

ついにリリース!

本日、Wails v2 をリリースしました。最初の v2 アルファ版から約 18か月、最初のベータ版のリリースから約1年が経ちました。プロジェクトの発展に携わってくださった皆さんに、心から感謝します。

これほど時間がかかった理由の一つは、正式に v2 と呼ぶ前に、何らかの意味で完成した状態に到達したいと考えていたためです。実際のところ、リリースにタグを付ける完璧なタイミングなどありません。未解決の問題や、どうしても盛り込みたい「あと一つ」の機能が常に残るものです。それでも、完全ではないメジャーリリースにタグを付けることで、プロジェクトのユーザーにはある程度の安定性がもたらされ、開発者にとっても一区切りとなります。

今回のリリースは、私がかつて想像していた以上のものになりました。私たちが開発を楽しんだのと同じくらい、皆さんにも楽しんでいただければ幸いです。

Wails とは?

Wails をご存じない方のために説明すると、Wails は、Go プログラマーが使い慣れた Web 技術を使用して、Go プログラムにリッチなフロントエンドを提供できるようにするプロジェクトです。Electron に代わる、Go ベースの軽量な選択肢です。詳しくは、公式サイトをご覧ください。

新機能

v2 リリースは、このプロジェクトにとって大きな飛躍であり、v1 の多くの課題を解消しています。macOS、Windows、Linux 向けベータ版に関するブログ記事をまだ読んでいない場合は、ぜひご覧ください。主要な変更点がすべて詳しく説明されています。概要は次のとおりです。

  • 最新の Web 標準とデバッグ機能に対応した Windows 用 Webview2 コンポーネント。
  • Windows でのダーク/ライトテーマとカスタムテーマ。
  • Windows では CGO が不要になりました。
  • Svelte、Vue、React、Preact、Lit、Vanilla の各プロジェクトテンプレートを標準でサポート。
  • アプリケーションのホットリロード開発環境を提供するVite統合。
  • ネイティブアプリケーションのメニューとダイアログ。
  • Windows と macOS 向けのネイティブなウィンドウ半透明効果。Mica および Acrylic の背景効果をサポート。
  • Windows へのデプロイ用NSIS インストーラーを簡単に生成。
  • ウィンドウ操作、イベント処理、ダイアログ、メニュー、ロギングのユーティリティメソッドを提供する充実したランタイムライブラリ。
  • garble を使用したアプリケーションの難読化をサポート。
  • UPX を使用したアプリケーションの圧縮をサポート。
  • Go 構造体から TypeScript を自動生成。詳しくはこちらをご覧ください。
  • どのプラットフォームでも、アプリケーションに追加のライブラリや DLL を同梱する必要はありません。
  • フロントエンドアセットをバンドルする必要はありません。他の Web アプリケーションと同じようにアプリケーションを開発できます。

クレジットと謝辞

v2 に至るまでには多大な労力を要しました。最初のアルファ版から本日のリリースまでに、89 人のコントリビューターによって約 2200 件のコミットが行われました。また、それ以外にも非常に多くの方々が、翻訳、テスト、フィードバックの提供に加え、 ディスカッションフォーラムや Issue トラッカーでの支援に携わってくださいました。皆さん一人ひとりに、心から感謝しています。さらに、 指針や助言、フィードバックを提供してくださったプロジェクトスポンサーの皆さんにも、特別な感謝を申し上げます。皆さんの あらゆるご支援に深く感謝しています。

ここで、特に触れておきたい方々がいます。

まず、私たち全員に恩恵をもたらす数多くの貢献に加え、多くの Issue で多大なサポートを提供してくださった@stffabi に、心から感謝します。外部開発サーバーのサポートをはじめとする主要機能を提供し、Vite の強力な機能を利用できるようにすることで、私たちの開発モードを一変させました。彼の素晴らしい貢献がなければ、Wails v2 はこれほど魅力的なリリースにはならなかったと言ってよいでしょう。@stffabi、本当にありがとうございます!

また、Web サイトを絶えず保守し、中国語翻訳の提供、Crowdin の管理、新しい翻訳者が作業に慣れるための支援まで行ってくださった@misitebao にも、心から感謝します。これは非常に重要な仕事であり、注いでくださったすべての時間と労力に深く感謝しています。本当に最高です!

最後になりましたが、v2 の開発中に助言とサポートを提供してくださった Mat Ryer に心から感謝します。v2 の初期アルファ版を使用して xBar を一緒に開発したことは、v2 の方向性を形作るうえで役立っただけでなく、初期リリースに存在した設計上の欠陥を理解する助けにもなりました。本日から xBar の Wails v2 への移植を開始し、xBar がこのプロジェクトの旗艦アプリケーションになることをお知らせでき、うれしく思います。ありがとう、Mat!

得られた教訓

v2 に到達するまでに得られた多くの教訓が、今後の開発の方向性を形作っていきます。

より小規模で迅速かつ焦点を絞ったリリース

v2 の開発過程では、多くの機能やバグ修正がその都度個別に開発されていました。その結果、リリースサイクルが長くなり、デバッグも困難になりました。今後は、含める機能の数を減らし、より頻繁にリリースします。各リリースでは、徹底的なテストに加えてドキュメントも更新します。こうした、より小規模で迅速かつ焦点を絞ったリリースによって、リグレッションが減り、ドキュメントの品質が向上することを期待しています。

参加の促進

このプロジェクトを始めた当初、問題を抱えるすべての人をすぐに助けたいと考えていました。Issue を「自分自身の問題」と捉え、できるだけ早く解決したいと思っていました。しかし、これは持続可能ではなく、最終的にはプロジェクトの長期的な存続を損ないます。今後は、質問への回答や Issue のトリアージに他の人が参加できる余地を増やします。そのためのツールも導入できればと思っています。提案があれば、こちらのディスカッションにぜひご参加ください。

「No」と言うことを学ぶ

オープンソースプロジェクトに関わる人が増えるほど、大多数の人にとって役立つかどうか分からない追加機能への要望も増えます。こうした機能の開発とデバッグには初期段階で時間がかかり、その後も継続的な保守コストが発生します。この点で最も反省すべきなのは私自身です。実用最小限の機能を提供するよりも、しばしば「あらゆる問題を一度に解決」したくなってしまいます。今後は、コア機能の追加に対してこれまでよりも少し多く「No」と言い、開発者自身が必要な機能を実現できるようにする方法へ力を注ぐ必要があります。この用途に向けて、プラグインを本格的に検討しています。これにより、誰でも自分のニーズに応じてプロジェクトを拡張できるほか、プロジェクトへ簡単に貢献できるようになります。

未来に向けて

次の主要開発サイクルで Wails に追加したいと考えているコア機能は、すでに数多くあります。ロードマップには興味深いアイデアが詰まっており、取り掛かるのが楽しみです。特に要望が多いものの一つが、複数ウィンドウのサポートです。これは難しい課題であり、適切に実現するには、現在の API はこの用途を想定して設計されていないため、代替 API の提供を検討する必要があるかもしれません。初期段階のアイデアとフィードバックを踏まえると、私たちが目指している方向性を皆さんにも気に入っていただけると思います。

個人的には、Wails アプリをモバイルで動作させられる可能性にとても期待しています。Android で Wails アプリを実行できることを示すデモプロジェクトはすでにあるため、ここからどこまで発展させられるのか、ぜひ探っていきたいと思っています!

最後に取り上げたいのは、機能の同等性についてです。完全なクロスプラットフォーム対応がないものはプロジェクトに追加しないという方針は、長年にわたって中核的な原則でした。これまでは(おおむね)実現できてきたものの、新機能のリリースを大きく妨げてもきました。今後は少し異なる方針を採用します。すべてのプラットフォーム向けに直ちにリリースできない新機能は、実験的な設定または API としてリリースします。これにより、特定のプラットフォームの早期導入者がその機能を試し、最終的な機能設計に反映されるフィードバックを提供できるようになります。もちろん、その機能が対応可能なすべてのプラットフォームで完全にサポートされるまでは API の安定性は保証されませんが、少なくとも開発の停滞は解消できます。

最後に

V2 リリースで私たちが成し遂げたことを、本当に誇りに思います。これまでのベータリリースを使って、すでに多くの方々が素晴らしいものを作り上げているのを見るのは驚くべきことです。Varly、Surge、Octoberといった高品質なアプリケーションがあります。ぜひご覧ください。

このリリースは、多くのコントリビューターの尽力によって実現しました。無料でダウンロードして利用できますが、何の犠牲もなく生まれたわけではありません。誤解のないように言えば、このプロジェクトには多大な犠牲が伴っています。それは私自身とすべてのコントリビューターが費やした時間だけでなく、その一人ひとりが友人や家族と過ごせなかった時間でもあります。だからこそ、このプロジェクトの実現に捧げられた一秒一秒に、心から感謝しています。コントリビューターが増えるほど、この負担をより多くの人で分担でき、力を合わせてより多くのことを成し遂げられます。誰かが報告したバグを確認する、修正案を提案する、ドキュメントを変更する、困っている人を助けるなど、皆さんにも何か一つ、貢献できることを見つけていただきたいと思います。こうした小さな取り組みの一つひとつが、非常に大きな力になります!v3 に至る物語に皆さんも加わってくださったら、本当に素晴らしいことです。

お楽しみください!

‐ Lea

追伸:ご自身または会社で Wails を便利にお使いいただいている場合は、プロジェクトへのスポンサー支援をご検討ください。ありがとうございます!