はじめに
先日行われた「Kloudハッカソン #2」に3人のチームで参加しました。
チーム結成から発表までの開発の流れをここに残しておきます。
技術的なことはあまり書いていません。(もしかしたら後日書くかもしれません)
チームを組む
先輩から「ハッカソン出て~」とのお誘いをいただき参加を決意。しかしチームを先に集める必要があるようなので、せっかくなら同じクラスの人と出てみたいと思い誘いまくりました。
Aさん
Bさん
ぼく
何作るか決める
アイデアってハッカソンで大事ですよね。もしかしたらここが一番重要なのかもしれません。
アイデアが出たときの思考の流れを書いておきます。
テーマは「日常を楽しく」です。
日常→毎日してること→プログラミング→プログラミングで楽しくないこと
プログラミングで楽しくないことを考えると
- 孤独を感じる
- ビルド(コンパイル)の待ち時間が暇
などが思いつきました。
そこから「エディタと連携してデスクトップ上を動き回る何か」を作ればいいのでは!?となり「エディタと連携してデスクトップ上を動き回る何か」の開発が始まりました。
言語&フレームワークどうしよう
デスクトップアプリを作る上では様々な選択肢があるとは思いますが、テックリードとして僕が教えたりトラブル対応がしやすい & IntelliJ IDEAプラグインと連携しやすいKotlinのJetBrains/compose-multiplatformを使用することにしました。(今思えば文献が少ないため悪い選択だったかも)
キャラを決める
動き回る何かということでキャラクターが欲しいですね。どんなのにしようか考えていると僕がとあるDiscord Botを作ったことを思い出しました。
これがそのBotです。アイコンには僕が30秒くらいで書いたとてもかわいい謎のキャラがいます。
このキャラを提案したところAさんがよりかわいく書き直してくれました。
この際、走るときに右手と右足の両方が前に出ているのはおかしいのではないかとの指摘を受け、僕は「確かに!!!」と思いました。しかし、かわいいのでそのままになりました。
開発開始!
同じクラスにチームメンバーが集まっているので授業後の時間に集まって作る内容を相談し合ったり、KotlinやComposeについて教えていたりしました。というか教えるってやっぱり難しいですね。でも僕が十分に説明できなかったところも積極的に調べたりしてくれたので思った数倍スムーズに開発が進みました。超感謝です。
そして、やっぱり絵は動いたほうがいいよねということでAさんがなんとアニメーションにしてくれました!
感動ですね。動いています。
ほかにも開発していく中でアイデアはたくさん出てきて、最終的な機能はこんな感じになりました。
- デスクトップ上を動く
- ゲーミングになる(色が変わる)
- セリフを喋る
- ビルド失敗したら爆発
- エディタで入力した文字に反応
- コーディング時間を記録(統計機能)
- アプリを閉じにくくする
動く機能の実装やセリフの考案はBさんがやってくれました。
アプリ名は「ちぃうご ~なんかちぃさくてうごいてるやつ~」に決定し、一週間ほど教室やDiscordのVCで話しながら開発を続けました。
発表日
ついに発表日。
僕は自然に7時頃目が覚めました。(4時間睡眠)
おはようございますnaotikiさん。
ではここで残りの仕事を見てみましょう。
- 統計機能(進捗無し)
- コーディング時間記録
- 一週間ごとの時間のグラフ表示
- パワポ資料(50%くらいしか進んでいない、台本もデモ動画もまだ)
うわぁぁぁぁぁぁぁぁあああああ!!!!!
7:14 起床
↓
10:38 統計機能実装
↓
12:50 資料完成
間に合いました。よくやった僕。
できたもの
他のチームの発表を聞いて
どれも自分は思いつかないようなアプリでとてもおもしろかったです。これ欲しい!と思ったアプリが沢山ありました。
ついに発表!
少しミスした部分もありましたが無事にやりきりました。頂いた指摘はとても参考になりました。
終わった後は参加者のチャットを少し眺めていました。予想以上に好反応を頂きとても嬉しかったです。
授賞式
参加者投票賞を頂きました。多くの人に欲しい(?)と思っていただけたと思うととても嬉しかったです。
その後・・・
なんと最優秀賞も頂きました!!
W受賞はさすがに予想外すぎてなかなかコメントも出てきませんでした。
おわり
やっぱりハッカソンって開発から発表まで全部超楽しいなと思いました。
孤独なプログラマを救うべくこれからも開発していこうと思います。
参加者、運営及び審査員の皆様そしてなによりチームメンバーのAさん、Bさん 本当にお疲れ様でした。
近日ちぃうごは公開する予定です。お楽しみに!
リポジトリ
後日作り始めたVSCode拡張