FlutterKaigi 2023公式アプリについて

Koji Wakamiya
FlutterKaigi
Sep 4, 2023

--

こんにちは。FlutterKaigi アプリ開発チームの Koji Wakamiyaです。
昨年度までは登壇者としてFlutterKaigiに参加していましたが、今年は運営メンバーとして参加しています。

2023年9月4日、FlutterKaigi 2023公式アプリのリポジトリを公開しました!

https://github.com/FlutterKaigi/conference-app-2023

AndroidとiOSのストア公開が準備中、Webが公開中となります。コードからデプロイのステップまで含めて、動作しているアプリに関わるコードはすべて公開しています。ぜひご確認ください。

<2023年10月下旬追記>
AndroidiOSともにストア公開いたしました!
<追記ここまで>

また、IssueのWelcome contributeタグがついているものは、広くアサインを募っております。その他バグの報告、改善提案なども受け付けておりますので、こちらも合わせてご確認ください。

https://github.com/FlutterKaigi/conference-app-2023/issues

と、リポジトリ公開の告知まででは少し物足りないので、アプリ公開までの経緯とコンセプトを紹介します。

開発経緯とこれから

「FlutterKaigiに合わせてFlutter製の公式アプリを作らないのかなぁ」と、多くの方が思ったのではないでしょうか。私も去年まで思っていました。

FlutterKaigi運営メンバーとしても、同じ思いがあったそうです。2022の振り返りの中で「2023では公式アプリを公開したい!」という意見が上がっていました。また、2023はオフライン開催を目指していたため、現地で利用できるアプリがあれば便利そうな見通しもありました。

そんな中、たまたま代表の @kikuchy さんと私が会う機会がありました。「FlutterKaigi公式アプリを作成するのであれば、ぜひとも協力したい!」と盛り上がった話の中で熱意をアピール。結果として、FlutterKaigiの運営メンバーに入り、アプリの開発に関わるようになっております。

日本においてはRubyKaigiやDroidKaigi、iOSDCなどのコミュニティ主導のカンファレンスがいくつもあります。その中でも、DroidKaigiのconference-appは、Android開発コミュニティを大いに盛り上げる、印象的な取り組みです。

https://github.com/DroidKaigi

DroidKaigiのように、アプリをオープンに開発をすることで、日本のFlutter開発コミュニティを盛り上げることができないか、と考えました。オープンソースとして、またカンファレンス開催前に広くコントリビューションを受け入れる形式を目指し、今日までアプリ開発に取り組んできました。

振り返ってみますと、初年度からAndroidとiOS、そしてWebの公開を目指すなど、少々風呂敷を広げすぎたところもあります。このため事前に用意したIssueが少ない、iOSの開発用アカウントの管理が一部メンバーに閉じている、などの課題を残すこととなってしまいました。こちらは、ひとえに私の力不足によるものです。来年以降、FlutterKaigiがアップデートするように、アプリ開発チームとしても知見を蓄え、改善していきたいと思っております……!

コンセプト

FlutterKaigi 2023アプリのコンセプトは、次の3点です。

  • シンプルな構成、状態管理
  • M3の全面採用による、可読性の確保
  • 「参加者が主役」であることを重視したカスタマイズ性

シンプルな構成、状態管理

Flutterの開発においては、プロジェクトの構成や状態管理が1つの議論の種です。コミュニティの中でも、Flutterのアプリを開発しているチームの中でも、多くの時間が費やされているのではないかと思われます。

FlutterKaigi 2023アプリは、カンファレンスの参加を助けるためのアプリです。このため、複雑な仕様にならないことが明らかでした。したがって、可能な限りシンプルに、全体像を把握しやすい構成や状態管理を志向しています。

アーキテクチャは、riverpodのpub exampleで紹介されているものを採用しました。特に命名されているものではないため、呼び名が難しいのですが、Model-View-Presenterを模してModel-View-ProviderやModel-Consumer-Providerと呼ぶとしっくりくるように思っています。

https://github.com/rrousselGit/riverpod/tree/master/examples/pub

フォルダ構成としては、構造がFlutter WebにおけるURLと一致することを意識して実装しています。ファイルやフォルダ数を削減することで、初心者から上級者まで、コード把握の負担感が低くなっていれば、狙いが達成できているのではないかなと。

M3(Material Design 3)の全面採用による、可読性の確保

カンファレンスアプリにおいては、可読性が最も大切だと考えています。

これは要素と要素間に十分な余白があること、そしてアクセシビリティへの考慮がなされていることと、言い換えることができます。こうした事情を踏まえて、デザインシステムとしてM3を採用しました。

特にM3のカラーテーマにおいては、figmaのMaterial Theme Builderを利用し、適切なtoneによるコントラストの確保を行なっています。

https://material.io/blog/science-of-color-design

その他、リリース前にTalkBackが意図通りに動作するかチェックするなど、Flutterで実現できる可読性の確保に努めます。もしも「この箇所はもっと改善できる!」とお気づきの点があれば、ぜひIssueでお知らせください。

「参加者が主役」であることを重視したカスタマイズ性

FlutterKaigiは、Flutterに関心を寄せる全ての人が主役のカンファレンスです。

カンファレンスに関わるメンバーは運営チームや登壇者だけに限りません。セッションの聴講、Ask the speakerへの参加、SNS上でコメントを寄せてくれるすべての人が、カンファレンスに関わるメンバーと言えます。

このことを踏まえて、2023年のアプリでは、利用者がカスタマイズできる要素を増やしています。Material Youを採用し、言語リソースやフォントなどを設定画面から変更できるようにしています。ぜひ、お好みの調整をした上で、アプリを楽しんでみてください。

おわりに

FlutterKaigi 2023は2023年11月10日に開催されます!

カンファレンスアプリも開催に向けて、どんどんアップデートしていきます。もしもお気づきの点、改善案、議論したいことなどがあれば、GitHubにお寄せください。私個人としましては会場でお会いできること、また会場でアプリが利用されることを、心より楽しみにしております!

--

--

Koji Wakamiya
FlutterKaigi

Mobile Application Developer. I like Kotlin, Dart, Swift.