Yahoo Hack Day 2017に参加してきました! #hackdayjp
おばんです、📦を頭にかぶって寝ると、暗いし音も防げるし、ほのかに暖かいので安眠できるという知見を得た田中です。
今回の記事は2017/02/06 - 07の二日間で開催されたYahoo Hack Day 2017というハッカソンに参加したレポートです。
発端
普段iOSの勉強会で会っている方々とコードを書いたりなにか物を作ったりしてみたいと思って誘ったらみんなノってくれたというのが発端です。超楽しかった。
作ったもの
- 毎日の読書量を記録するアプリ
- 読書中かどうかを通知してくれるデバイス『ひもとき』
磁気センサーをつないだkonashiをブックカバーに取り付けて、本の開閉イベントを取得する。 konashiとiPhoneをBLEで接続して、その開閉イベントをiPhoneに通知する。これによって読書時間を計測できるという仕組みです。 ちなみにアプリがバックグラウンドでもイベントの検知ができるスグレモノ。
これから読む本の情報はiPhoneのカメラでバーコードを読み取ってGoogle Books APIから取得。 バーコードからはISBNという世界共通で図書(書籍)を特定するための番号が取得できるので、それをデータソースにしています。
UIは
- 今読んでいる本
- 今日読んだ時間
- 最近どれだけ読んでいるか
- 読んだ本の一覧
を表示しています。GitHubを参考に、読んだ量に応じて草を生やすようなデザインにしました。(日付ごとに横一列に表示されたグリッドの色が濃くなっていく)
自分たちの欲しいものを作りました。全体の構成は以下のような感じです。
着想
- 規格の決まったものに追加できるものだと使いやすく作りやすい
- 規格の中には「決まった動作」も含めて考えることができる
今回作った『ひもとき』は「決まった動作」に着目しました。本を読むときに本を開閉するという決まった動作です。これによって、普段の読書生活の邪魔をすることなく自然に読書時間を計測することが可能になりました。
使用した技術
(※作ったものの名前は『ひもとき』だけど、Himotokiは時間なくて使わなかった…!)
田中が新しく挑戦したこと
- GitLab(5つのバックアップ手段が俺たちのリポジトリを守ってくれるので安心)
- Sketch(UIデザイン、アプリアイコン作成)
- Carthage(これまではCocoaPodsしか使ってこなかった)
- Kingfisher(これまではAlamofireImageしか使ってこなかった)
- Realm
役割分担
- @tamakiさん(デバイス・BLE担当)
- @yutailangさん(Realm, API・バーコードリーダー・ビジネスロジック担当)
- @ktanaka117(UIやデザインなど担当)
感想
自分の知らない技術や開発の流れ、雰囲気を感じることが出来てとても刺激になりました。特にハッカソンに参加するにあたって、どんな技術を使っていきたいかという話で「名前は知ってるけど使ってこなかったもの」が出たので急いで勉強することが出来てよかったです(イベント駆動勉強)
社外の人と開発できる機会も貴重でした。今回参加したメンバーは普段から勉強会でよく会っていた人たちで、そろそろみんなで何かを作りたいと思っていました。みんなが知っているけど自分は知らない、勉強会で発表しているような話を身をもって知ることができるのはめちゃよかった。
そして日々勉強して、開発をしていると「自分がそれなりに作れるようになってきたかなー」と思うタイミングがあるけれど、全然そんなことはないということが認識できるのでハッカソンはおすすめです。一年に一回は出たい。けど体力が落ちてきたのでなかなか厳しくなってきた。体力測るのにもいいのかもしれない。
Aftershow
突如始まる筋トレ
体力が残った人で行った小打ち上げ。肉サイコー。