.NET6でWindowsアプリを作ろう!VRChatユーザー向けアプリ開発の裏側を覗いてみた

詳細情報

集会名 個人開発集会
日時 2023年06月08日 22:00 - 22:30
テーマ .NET6でWindowsアプリを作る
発表者 水無月せきな
発表資料 ファイル

発表内容のハイライト

  • VRChatユーザー向けのWindowsアプリ「VRCToolBox」の開発経験から、.NET6を用いたWindowsアプリ開発のポイントを紹介
  • WPFと.NET6を組み合わせ、VRChatのログ取得や写真管理などの機能を実装
  • アプリの配布方法や自動更新、パッケージ化の検討など、開発における課題や工夫を共有

VRChatで活躍する水無月せきなさんが、2023年6月8日に開催された「個人開発集会」で、.NET6を用いたWindowsアプリ開発について発表しました。せきなさんは、VRChatユーザー向けのツール「VRCToolBox」の開発者でもあり、今回の発表ではその開発経験を活かしながら、.NET6を使ったWindowsアプリ開発のノウハウを惜しみなく披露してくれました。今回は、せきなさんの発表内容を基に、.NET6とWPFを使ったWindowsアプリ開発について詳しく解説していきます!

VRCToolBoxと.NET6アプリ開発のきっかけ

せきなさんは、VRChatユーザー向けのツール「VRCToolBox」を開発しています。VRCToolBoxは、VRChatのログ取得や写真管理、通知機能など、VRChatユーザーにとって便利な機能を備えたオールインワンアプリです。前身となるアプリはC#とWindows Forms、.NET Frameworkを使って開発されていましたが、より多くの機能を追加したいという思いから、.NET6を使った新しいアプリの開発を検討し始めたそうです。

なぜ.NET6を選んだの?

.NET6は、Microsoftが開発した最新のクロスプラットフォーム開発フレームワークです。.NET Frameworkに比べて、よりモダンで柔軟な開発が可能になるため、せきなさんは.NET6を選択しました。また、.NET6は、今後機能面で進化していくことが期待されており、将来的な拡張性を考慮した点も大きなポイントだったようです。

WPFでユーザーインターフェースを作成

.NET6の開発環境が決まった後は、ユーザーインターフェースの構築に取り掛かります。せきなさんは、WPF(Windows Presentation Foundation)を選択しました。WPFは、Windowsアプリ開発で広く利用されているUIフレームワークで、洗練されたユーザーインターフェースを簡単に作成することができます。

MVVMパターンは採用せず?

WPFでは、MVVM(Model-View-ViewModel)パターンという設計パターンがよく使われます。しかし、せきなさんは、PrismやReactivePropertyといったMVVM関連のライブラリを導入せず、素組みで開発を進めたそうです。初期段階では、素組みで開発した方が理解しやすく、開発速度も速いため、このような選択をしたとのことでした。

.NET6アプリの配布と自動更新

.NET6アプリをユーザーに配布するには、.NET6ランタイムを一緒に配布する必要があります。せきなさんは、アプリに.NET6ランタイムを含めて配布する方法を採用しました。また、アプリの自動更新機能については、パッケージ化することで実現できるものの、証明書の取得が必要となるため、今回は見送ったそうです。

パッケージ化とコード署名証明書

.NET6アプリをパッケージ化すると、自動更新機能だけでなく、ユーザーに安全にアプリを配布することができます。しかし、パッケージ化にはコード署名証明書が必要となります。コード署名証明書は、アプリが改ざんされていないことを保証するためのものです。今回は、証明書を取得してパッケージ化する方法を検討しましたが、費用や公開時の手続きなどを考慮して、今回は見送ったそうです。

まとめ

せきなさんの発表では、.NET6を用いたWindowsアプリ開発のポイントや、VRCToolBox開発における工夫などがわかりやすく紹介されました。.NET6は、モダンで柔軟な開発が可能なフレームワークであり、WPFは洗練されたユーザーインターフェースを簡単に作成することができます。しかし、アプリの配布や自動更新、パッケージ化など、開発には様々な課題があることも理解できました。

今回の発表は、VRChatユーザーだけでなく、Windowsアプリ開発に興味がある方にとっても非常に参考になる内容だったのではないでしょうか?

スライド資料

個人開発集会の他の発表もチェック!

いいプロンプトの極意はチーム開発スキルにアリ!~LLMとの対話で広がる個人開発の可能性~

P2Pで作る異世界:fogさんのVRChat個人開発集会発表内容を徹底解説!

UnityプロジェクトをGitで管理して開発効率を爆上げ!バージョン管理で開発の悩みを解決

パチンコで稼ぐってホント?パチプロのひねりさんが語る、稼ぎ方と収支の秘密!

VRChat個人開発集会で聞いた!認証機能を分離してアプリ開発を効率化する方法

最強のWeb開発環境を求めて:GPT Engineerの活用と課題