ブログ

触ったことのない言語で「時間」のアプリ【今月の社内ハッカソン】

ソニックガーデンでは、「“遊び”こそが成長につながる向上心を生み出す源泉になる」という考えのもと、毎月1回、業務時間内で社内ハッカソンを開催しています。

今月の社内ハッカソンは4/4(金)に、「触ったことのない言語で“時間”に関係するアプリ」をお題として開催しました。

今回のテーマを決めた2年目のプログラマの田島に、選んだ理由を聞きました。

田島の顔田島
「触ったことのない言語」としたのは、他の言語に触れる機会を作りたかったからです。仕事で主に使うRuby on RailsはWebサイト作成に特化したもの。iPhoneアプリやゲームも作る時に、その作成に特化した言語を使ってみたいと思っていたのが理由です。

「時間」のテーマは、自分の作業が遅いことに課題感を持っていたのでパッと浮かびました。

とのことでした。

15組17名が制作したアプリや機能を、テーマに沿った作品度・完成度・アイデアの3軸で評価し合った今回。制作した作品をランキングでご紹介します。

【1位】gogogo

チームメンバー:石崎、伊藤、堀場

伊藤の顔伊藤
私たちはチーム「go!go!go!」としてアプリを開発しました。選んだ言語は、Goです。選んだ理由は、個人的に興味があったことと、先日参加したプログラマの交流会でGoを触っているエンジニアが多く、面白いと聞いたからです。では、ざっきー(石崎)にデモしてもらいます。
石崎の顔石崎
はーい。人生最大の時間泥棒はベッドということで、ベッドから逃げるゲームを作りました。上と左右キーで僕を模したキャラクターを操作し、ベッドに追いつかれたらゲームオーバーで就寝します。ゲームや、スマホ、YouTubeなどのいろんなものが飛んできますが、当たると動けなくなります。コーヒーを摂取すると、眠気が飛んでベッドが遠のきます。

(こちらから遊べます→https://plicy.net/GamePlay/202754

石崎の顔石崎
使用した技術としては、Goという言語と、Ebitengineというゲームを作るフレームワークを使いました。Ebitengineを使うとブラウザゲームもできるし、iOSやAndroidのモバイルにも作れるし、Switchとかのゲームも作れるようになるそうです。最後に感想を、みさみさ(伊藤)からどうぞ。
伊藤の顔伊藤
久しぶりにゲーム作れて楽しかったのと、ジャンプのところで物理の話が出てきて、それをざっきーが分かりやすく解説してくれて良かったです。
石崎の顔石崎
フレームごとに画面が切り替わるので、その時にどういう処理をするか考えるのが普段の開発とは違って大変でしたが、とても楽しかったです。みっちゃん(堀場)最後にどうぞ。
堀場の顔堀場
プログラマではないので、アイデア出しとプレイヤーなど一部コンテンツの絵の作成を行いました。私自身楽しかったし、2人が楽しそうに開発してたのが印象的でした。ありがとうございました!

【2位】loggman

小林の顔小林
皆さん、いつ何をしたか覚えていないことが多いと思います。そんな時に便利なツールを作りました。「loggman」という、ログを残してくれるツールです。

ファイルを作ると同時に、TODOとLOGのテンプレートを作ってくれます。打ち込むと、時刻とともに、何をしたかが書き込まれます。TODOを編集するモードに移ることもでき、そのタイミングで「タスクばらしスタート」というログも記録されます。TODOに対して、「done」と伝えると×がつき、それと同時に終わったことも記録されます。もちろん、Exitも記録されます。これでいつ何をしたか覚えられるかなと思っています。

使用言語は、Haskellです。また、loggmanはbrewでインストールできるので、良かったら使ってみてください。以上です。

【3位】goto

植木の顔植木
ターミナルで予定確認できる、コマンドラインカレンダーツール「goto」をつくりました。

開発者の皆さん、こんにちは。ソニックガーデンで仕事するにあたってGoogleカレンダーを毎日見ていると思いますが、開発者は多くの時間をターミナルで過ごしています。ブラウザとターミナルを行き来するのは負担ですよね。作業の中断や切り替えコストがあるなと思い、思考を途切れさせずに開発するためにgotoを開発しました。これで、ターミナルから直接Googleカレンダーの予定が確認でき、切り替えなしで時間管理ができます。

名前の由来ですが、Googleの「Go」とTodayの「To」を組み合わせました。シンプルな表示で現在時刻がわかり、高速な動作が特徴です。コマンド実行して初回だけ認証してもらって、あとは普通に何回でもコマンドを実行すればOKです。

Rustを使って開発しました。ライブラリは「chrono」「google-calendar3」「tokio」の3つを使っています。生産性が上がる、集中力が上がる、時間節約できるということで、gotoを使って開発の流れを止めることなく予定を確認し、ターミナル作業を維持しましょう!

順位

今回の順位は以下の通りでした。


ソニックガーデンがハッカソンを重視する背景については、当社代表・倉貫がブログで語っています。
興味のある方は、ぜひご覧ください。
遊びから始まるプログラミング 〜 ハッカソンが育む文化と成長

この記事を共有する