コガミツlog

福岡在住エンジニアのブログ

Flutterハッカソンに参加して3位入賞しました🎉

参加したハッカソンの概要

先日Flutter ハッカソンに参加しました。

flutterlabo.tech

期間は一週間で、初日にテーマ発表。 一週間後に成果発表をしてその場で審査。という流れでした。

今回のテーマは「アナログのイベントをデジタル化できるアプリ」でした。 firebaseを使用すること、という条件もありました。

参加きっかけ

所属している会社の社内勉強会で、Flutterのチュートリアルをやる機会がありました。 しかしそれ以降は特に勉強する機会を作れなかったのですが、たまたまFlutterのハッカソンのイベントを知りました。

見つけた時は仮に参加しても最後までやりきれるか心配で参加を迷っていたのですが、会社の同僚にハッカソンの話をしてみると皆さん良い反応でした。 結果的に4人チームが出来たので参加を決めました。

プロダクトの概要

今回のハッカソンで作ったものは、「Talk to me」というアプリを作りました。(リリースをしていないので名前は仮です。)

福岡からの参加でしたので認知しやすいように「めんたいこ」とチーム名を決めました

画像の通りで、エンジニアがリアルイベントに参加した時にTwitterを始めとするSNSの情報を交換するサポートになるアプリを作りました。

僕らは4人ともエンジニアのチームなので、自分達がよく参加するイベント = IT系の勉強会を思い浮かべて、そこから生まれる課題からアイデアを固めていきました。

具体的にはエンジニアがオフラインのリアルイベントに参加した時には以下のような課題感があると思います。

  • イベントで初対面の人に話しかけにくい
  • SNS交換したいけど、きっかけが掴めない
  • よくTwitterのID(名前代わり)書いている人いるが本人が目の前にいるのに勝手にフォローはしにくい...

これらを解決するアプリを作りました。

ユースケースとしては

  • 事前にアプリにTwitter IDとGitHubのIDを登録しておく
  • リアルの勉強会に参加する
  • 挨拶の最後にQRコードを表示してすぐに交換できる
  • リアルで挨拶後に交換するのでイベント終了後も繋がりやすい

といった流れです。

役割と進め方

イデア出しは、はじめに全員で行いました。

イデアソンではなくハッカソンなので作り切れる事、課題がイメージしやすいもの

の2つの視点から考えました。

最初は中々決まらなかったのですが、結果的にベースとなるアイデアが生まれたのでそこから肉付きをして最終的に作るものが決まりました。

そこから必要となるタスクを洗い出してそれぞれに振って開発を進めました。

私が担当したのは以下です。

  • アプリのベース作り(firebaseを使ったログインなど)
  • イントロダクションページの作成
  • チームのタスク管理
  • 発表資料作成
  • 発表&質疑応答の対応

アプリのベースに関してはfirebaseのAuthentication, firestoreの設計なんかがはじめて戸惑いもありましたが最低限は出来ました。

知見が無い状態だったのでぜひリファクタリングしたいです。

チームのタスク管理に関しては、ハッカソン終了後に「古賀さんのマネジメント素晴らしかったです」的なお褒めの言葉を同僚からいただき恐縮なのと頑張って良かったと思いました。

結果発表

発表順番がくじ引きで決まるということでドキドキしていたら、まさかの一番目でした。 久しぶりの人前での発表だったので緊張しっぱなしでしたが、その場でやったデモも成功し安心しました。

発表後は他のチームのプロダクトを聞くだけだったので気持ちがだいぶ楽でした。 そして2時間くらいで全チームの発表が終わり最後に結果発表でした。

結果が全てではありませんが、ありがたいことに3位入賞で非常に嬉しかったです。

全体の感想&今後

日中は普通に仕事していたのですが、その中で夜な夜な開発を進めて完成まで辿り着いて良かったです。 一緒に作ってくれた会社の同僚に感謝です🙏

技術的には、Flutterを使って開発できたこと。

もっというとモバイル開発を集中して取り組んだのが最初でしたので学びが多くて良かったです。

慣れるまではWidge Treeで画面を構築していく感じが難しかったのですが、次第に慣れてくると気になりませんでした。 総じてFlutterの開発体験が良くて楽しかったです。

その一方で、コード的に改善できるところが多いので少しづつ整理したいです。 特にモバイルアプリでは主流らしいMVVM+repositoryパターンだったり、riverpodあたりの状態管理も上手に使いたい気持ちです。

ではまた!