社内で開催されたSwiftハッカソンに参加しました

はじめまして。現在Airシリーズ開発チームでiOSアプリエンジニアをしている浅野です。

みなさん、バリバリSwift書いてますか?

既に過去記事でSwiftについては触れられていますが、私が現在担当しているアプリでもSwiftで開発を行っています。

2014年にリリースされてから、新バージョンのSwift2、そして昨年末のオープンソース化と話題には事欠かないSwift。
現状、様々な制約はあるものの、Linux環境でもSwiftを使えるようになり、一部プログラミングコンテストでもSwiftに対応し始めていたりと、iOSエンジニア以外でもSwiftに触れる機会というのは増えてきているのではないかと思います。

社内でも、新規アプリにはもちろんSwiftが採用されていますし、既存アプリでもObjective-CからSwiftに書き換える例も出てきています。

しかしそんな状況とはいえ、既存アプリのほとんどはObjective-Cのまま保守されているというのが実際のところ。
社内にいるiOSエンジニアでも「実はまだSwiftに触っていなくて……」という人もまだまだ多いです。

また、Swiftを書いていても、普段はなかなか他のチームと知見共有ができていない、という課題もありました。

そんな中、「社内でSwiftハッカソンが開催される」という情報が。
渡りに船とばかりに参加してきたので、以下体験レポという形で当日の雰囲気を紹介できればと思います。

今回のハッカソン概要

テーマ

社内で利用している GitHub Enterprise(以降GHE)のAPIを用いたアプリ(or サービス)の開発

スケジュール

13:00 集合・ガイダンス
13:15 開発(各個人)
18:15 発表(1人5分)
19:45 投票・最優秀者発表
20:00 解散

※休憩などは各自適宜

参加人数

16人

その他制約

なし!

社内のイベントということもあり、だいぶゆるい感じですね。

それでは実際の様子を写真交えながらどうぞ。

集合〜ガイダンス

開始前の様子

開始前の様子。
各自開発に向けて集中力を高めている……という場面のはずですが、
ガイダンス前でライトが消えていたのも相まって、暗い雰囲気にみえます(笑)

ガイダンス

冒頭の主催者からのガイダンス。

ここでテーマなどの詳細について説明がありました。
なお、テーマについては事前にアンケートがあり、いくつかの候補の中から今回のテーマに決まったようです。

開発

ガイダンスが終わったら、さっそく開発の時間です!

5時間弱と限られた時間の中でアプリを作らなくてはいけないため、みなさん1分1秒の時間を惜しんで開発に取り掛かっていました。

開発中1

真剣な眼差しでPCと向き合う参加者(自分)

開発中2

貴重なお菓子の補充シーン。
集中して作業をする上で、糖分は大事です。

開発中3

中には、自宅からAppleTVを持ち込んで(!)開発をする参加者も。

また、当日はHipChat(社内で使っているチャットツール)で専用のルームが作られ、
そこで参加者同士がテーマの相談をしたり、技術的に詰まった部分の質問をしたり、時には雑談をしたりしていました。

発表

開発の時間はあっという間に過ぎ去り、各自作ったものの発表をする時間に。

開発時間も短いですが、発表時間も短いので要点を絞っての説明が要求されます。

写真にはあまり写っていなかったのですが、夕食代わりにピザが届いていたので、みんなそれを食べながら発表を聞いていました。

発表1

単純に作ったものの内容だけではなく、コードの中身にも触れている人が多かったのが特徴でした。

発表2

AppleWatchアプリを題材としている人が多かったのも印象的でした。
(わかりづらいですが、スクリーン右にAppleWatchのシミュレータが起動しています)

業務ではほぼiPhone/iPadの開発しかしないため、せっかくだからそれ以外のものを、とAppleWatchやAppleTVに手をつけた人が多かったのかもしれません。

かくいう私も、GHEから設定したリポジトリのPull Request(以下PR)一覧を取得し、タイトルなどで任意にフィルタを掛けた上で通知を表示するというタスクバー常駐型のデスクトップアプリを作成しました。

投票・結果

発表も終わり、最後の投票。

各自書いたコードはGHEにPushすることになっており、投票については
良かったと思った作品のリポジトリにStarをつける
という方法で行われました。

その結果……

なんと私が得票数1位に!

結果

参加者16人中、13Starsを獲得!

見事(私にとって)良い結果で幕を閉じました。

おわりに

まず、今回意外だったのが(というと失礼ですが)、発表の段階で「何も作れなかった」という人はゼロで、全員がきちんとアプリとして動くものを作り、発表に臨むことができていたということです。
中には普段はAndroidアプリを作っていて、SwiftどころかiOSアプリ自体作るのは初めて、という方がいたにも関わらずです。

この事実が、iOSアプリ開発の敷居の低さ、またSwiftという言語の親しみやすさを表しているのではないかと思います。

また、今回私が作ったアプリについて、元々は業務中のPRのレビューが遅れたり、未レビューPRの判別が煩わしかったりしたので、完全に自分のために作った感じだったのですが、実はほとんどの人が同じような課題を持っていた、というのが多くの賛同を得られた理由だと考えています。
こういった普段の日常業務の中では得られない発見があったのも今回の大きな収穫でした。

次回は是非、社外の人も交えて(+チーム形式で)開催できると良いですね!