
技育CAMPキャラバン~金沢~
技育CAMPキャラバンとは
技育CAMPキャラバンとは、株式会社サポーターズ様が主催されているハッカソンです。記事を書いている日から約半年前に実施されたハッカソンなので、詳しくは覚えていませんが、事前開発期間は、1週間でした。どのチームも実装力がすさまじく、レベルの高さをまじまじと見せつけられました。
制作物
私のチームでは、「ハノン風楽譜生成アプリ」を開発しました。このアプリを開発した理由は、従来の楽譜やハノン楽譜には以下の4つの欠点があると考えたからです。
1. 持ち運びが不便
ハノン楽譜に限定して言うと、ハノン楽譜はA3用紙100枚以上の楽譜であるため、厚みと重みがあり、持ち運びが不便です。
2. 楽譜が勝手に閉じる
ハノン楽譜は1の通り非常に厚みがあります。そのため、楽譜に癖をつけたり、手で押さえていないと勝手に閉じてしまいます。
3. 弾いている箇所がわかりづらい
楽譜を見ながら、鍵盤を押すのは慣れていない初心者にとって非常に難しいです。
4. 暗い場所では見づらい
当たり前ですが、暗い場所で楽譜が読めません
制作物の機能
・ハノン楽譜自動生成
・音検知
・演奏補助(音検知すると次に引く音符に赤いマークがつく)
・生成した楽譜リスト表示
・楽譜検索
使用した技術
私たちのチームでは、kotlin, jetpack compose ,roomデータベースを使用して、Androidアプリを作成しました。
上記の技術を使用した理由は、2つあります。1つ目は、ハノン楽譜よりも軽く、楽譜を表示してくれるデバイスにスマートフォンが思い浮かんだからです。2つ目は、MAC保有率が33%でIOSアプリ(ネイティブ)が作れなかったからです。
担当箇所
私が担当した箇所は、生成された楽譜をRoomデータベースに保存し、保存された楽譜をリスト表示する。楽譜検索機能。既存コードのMVVMへの移行です。
生成された楽譜をRoomデータベースに保存するところは、Googleのコードラボで学習して実装しました。時間がないんだから、動けば何でもいいやという投げやりの感じで作成したので、DAOぐらいしか覚えてません。
保存された楽譜をリスト表示するのは、ToDoのタスクを並べる要領で実装しました。
楽譜検索機能は、ちょうどリレーショナルデータベースの講義を受講していたため、思ったより簡単に実装できました。
既存コードのMVVMへの移行は一番大変でした。リーダーからの「これまで書いたコード全部MVVMに直しといて」という鶴の一声を受け、一日で実装したことは今でもすごいなと思います。鶴の一声前は、知識量が圧倒的になかったので、全ての機能をMainActivityに書いてました。どうやって一日で実装したのかというとGoogleのコードラボでMVVMとは何ぞやから調べ、なんとなく理解した状態で、chatGPTとペアプロして実装しました。
結果
YUMEMI賞を受賞しました。授賞理由は「このアプリが学生時代にあれば便利なのになと思ったから」でした。

反省
事前に軽くしか学習していない状態で挑むアプリではなかったのかなと思います。しかし、あそこまで実装できた自分はすごいと思います。それから、ハッカソン当日の反省なのですが、自分が思ったようなプレゼンができなかったことです。プレゼン内容は「ピアノやれば、モテるからあなたもこのアプリ使って練習してみない?」的な感じの内容でした。正直意味わかりません。流されず、自分の意見をもっと強く言えばよかったと反省しています。
まとめ
開発したアプリは、初めて作成したスマホアプリにしてはかなりクオリティが高いものになっていると思います。この開発のおかげで、自分の未熟さとAndroidアプリをもっと作成したという気持ちになりました。また、このハッカソンに参加したおかげで、金沢工業大学以外の学生さんのレベル感をなんとなく知ることができました(今回参加された学生さんのレベル高すぎ)。
これまで読まれた方は全体的にふわっとした内容でよくわからないと思われた方がいらっしゃると思います。そんな方は、ぜひ質問してください!!