どらめも

なんでもないことをかきます

JPHACKS2020に出た話

それは何?

全国規模のハッカソンで何かとtechを組み合わせて社会課題を解決するみたいなハッカソンです。例年は地域ごとに予選をするらしいですが、今年はフルオンラインだったので地域の意味なくね?って感じでした。
基本的に1週間でプロトタイプを作って同一地域グループ内で競う+全国のもので優秀なやつはその後の全国大会的なものに駒を進めるみたいなイメージです。

何を作ったの?

JointSoundというオンラインで共同編集可能なDAWソフト的なものを作りました、詳細はGithub等を見てください。

フロントエンドはVue.js、バックエンドはflaskで動作しています。
3人チームで出場していて僕ともう一人がフロントエンドを担当、後の一人がバックエンドを担当しました。
今回はどんなことをしたかとか思ったことをつらつらと書いていきます。

イデアだし

こういうのが3人とも初めてだったのでとりあえず毎日discordで深夜23時くらいから雑談兼日常の困りごとをしゃべるようにしました。これは意外と効果があり、結構いろんなアイデアが出ました。緊張せずにとりあえず集まってだらだらしゃべるのも時にはありなんだなと思いました。この中で感じたのが自分のアイデアの柔軟性のNASAですね。どの意見をとっても変に真面目というか、進捗管理とかそういう方面に考えてしまいがちなのをやめたいなと感じました。最終的にチームメンバーの中でオンラインDAWやったら楽しそうという意見が出て実装方針を考えることになりました。やっぱり作っていて楽しいものを作るのが一番な気がします。発表会でどなたかが話していましたが、プロダクトに対して熱心なユーザーがいると開発が進みます。ユーザー目線を大事にしたいと感じました。

実際の開発

マウスイベントとかたくさん使いそうだしどのライブラリを使うといいだろうとメンバーと話した結果誰も使ったことのないVue.jsを使うことになりました。(??)感想としてはhtml直書きからの拡張もしやすく(あまりモダンではないですが)今まで書いたことがなくても難なく開発に入れるいいフレームワークだなと思いました。v-ifとかv-forをはじめとしたやつすごく便利ですね。また、開発の中でも値の管理ちゃんとしたいな→Vuexとかいうのあるらしいみたいな感じで必要に応じて機能等を勉強して使えたのでとてもいい体験でした。(多少reactの経験があったのでそこら辺の導入はしやすかったです)やっぱ物を作りながら学ぶのが最高に効率いいですね。 f:id:doradorasuki:20201108000429j:plain
また、フロント開発は基本的に昼にdiscordつないで作業しようと取り決めをして行いました。これはけっこうよくて今何の作業をしているかがすぐわかったり実装に詰まったらお互いに補助しあえました。個人開発は経験がありましたが、友達と何か作るという経験は今までしたことなかったのでなかなか新鮮で楽しかったです。
あと今回は当たり前のことですがブランチをしっかり切って動作確認をとったうえでdevelopにマージする手法を実践できました。GitHubのConflict解消って見やすくて便利ですね、いままでローカルでばっかりやってたのでびっくりしました。

感想

  • チーム開発、うまくやれば進捗が1人でやる場合のn倍になるのでどんどん開発が進んで楽し~
  • javascriptで型との格闘を結構して世間でTypescriptの流れになっているのはかなり理解できましたpythonとは全然違いますね~
  • 申し込み当初は時間がなくてやばいんじゃねとか思っていましたが時間は意外と作れますね(研究の進捗さん....)
  • ハッカソン系あったらまたやってみたいですね