以前、本ブログでもお知らせしたように、7/27〜7/29まで石巻で行われた石巻ハッカソンにHack For Japanスタッフも参加してきました。
石巻ハッカソンはStartup WeekendとIT Boot Campの2つから構成されていましたが、このレポートでは地元高校生(石巻工業高校生)にスマートフォンアプリケーションの開発を習得してもらうIT Boot Campについて報告します。
Corona SDK
今回のIT Boot Campは、あまりプログラミング経験のない高校生にスマートフォン(AndroidおよびiOS)アプリケーションの開発を体験してもらうために行いましたが、授業で、基本的なプログラミングは習っているものの、Javaなどを習得している生徒はほとんどいない状況でしたので、Coronaを用いることにしました。
今回使用した、このCoronaとは、サンフランシスコのCorona Labs社が開発・販売している、Android/iOSをターゲットとしたマルチプラットフォームアプリケーション開発のためのフレームワーク及びSDKの名称です。Coronaは、OpenGLESのグラフィクス処理とLua言語によるスクリプティングにより、ゲームなどの2次元のアプリケーションの開発に適した構造を持っており、画面へのコンテンツ描写が処理の中心となるアプリケーションの開発に適したものとなっています。
このCoronaを用いるために、Corona Labs Inc.からは10個のライセンスを寄附いただき、講師としては、日本Coronaの会から山本直也さんと小野哲生さんに参加いただきました。また、会場には、講師の山本さんが執筆された「基礎から学ぶ CoronaSDK」や実際にアプリケーションを転送して試すためのNexus Sも寄贈されました。
初日
初日(7/27)は午後3時から開始でした。
今回の講師たちは会津若松(Hack For Japanスタッフの佐々木)や東京(Hack For Japanスタッフの及川)、静岡(日本コロナの会の山本さん)、そして兵庫(日本コロナの会の小野さん)から参加しています。IT Boot Campはもう1つのStartup Weekendとは会場もスケジュールも異なるのですが、最初は参加する約10名の生徒とともに、石巻ハッカソンとしてのキックオフに参加しました。IT Boot Campの参加者は、最初の挨拶などが終わったら、すぐに退席し、IT Boot Campの部屋に移動しましたが、通常のハッカソンの始まりを体験できたのは生徒にとっても大きな経験となったことでしょう。
IT Boot Campは、事前に今回のために用意されたWikiに書かれたステップにしたがって進められていきました。最初はCorona SDKのダウンロードからインストール、そして単純にAndroidに “Hello!” という文字を表示するまでのアプリケーションの開発を経験することで、開発プロセスの流れを学びます。
初日は、主に開発に親しんでもらうことを目的としました。画像やテキストを配置したアプリケーションを制作し、最後にイベントとの関連付けを行うアプリケーションとして、タップすると音が出るゲームの開発を行いました。
最後の課題を講師に確認してもらい、終了した生徒(最終的には全生徒となりました)にCoronaのTシャツを贈呈して終了となりました。
二日目
Hack For Japan スタッフの高橋はこの日から参加。講師は5人体制となり、生徒10人に対して5人の講師は、マンツーマンとまではいかないまでもかなり密なサポートができたのではないかと思います。
物理エンジン
午前は物理エンジンについての話から始まりました。Corona SDK の特徴の一つとして、高度な物理エンジンが組み込まれており、それを手軽に使うことができるということが挙げられます。重力の方向に応じてオブジェクトが落下していき壁や床で跳ね返る動作、オブジェクト同士がぶつかる時の当たり判定などは簡単に実現できます。やはり画面に表示したものに動きがつくと面白みが増してきます。生徒達もそれを感じてもらえたのではないかと思います。
Gumbo
午後からは「目指せ Angry Birds」という目標を掲げ、Gumbo というオーサリングツールを使うことを学びました。画面上にオブジェクトを配置して、実際に動きを確かめながらそれぞれの物理パラメータを調整していきます。ここでいろいろと実験することで、各自自分が作りたいアプリのアイデアを考え始めることができたようです。
アイデア
この日の最後には、3日目に各自オリジナルのアプリを作成するため、紙を使ってアイデアをまとめていきました。紙に画面のイメージを書いて考えたのが良かったようで、ゲーム系、音楽系、様々なアプリの構想が出てきました。ここでの講師の役目としては、実現不可能なものになっていないか、まずは何か動作するものを作って、そこから時間の範囲内で機能を拡張していくことができるように手順をアドバイスすること等がありました。
三日目
最終日となる三日目は、前日に考えたアイデアをアプリケーションとして制作する作業です。講師も休む暇なく、生徒の質問に答え、一緒に面白いゲームにするために考えます。この日は時間との戦いの日でもありました。
自由課題
実装を進めていく最中にも様々なアイデアが出てきます。例えば
「このジャンプボタンは1度押すと一定時間使えないようにしたいのですがどのようにすればできますか?」
「それならタイマー機能を使うといいよ」
といった具合に生徒と講師のやり取りが交わされて、どんどん仕上げられていきました。
講師の側もだんだんと熱が入っていき、詰まってる生徒を見つけると「何か上手くいっていないことはある?」と声をかけます。
「1回目は沢山のオブジェクトが画面に出るのに2回目以降は少ししか出ないんです。何が悪いのでしょう」
「(ソースコードを眺めて)んー、なるほど。繰り返し処理の最初の部分で配列をクリアする処理を入れると良いよ」
というやり取りもありました。
実は今回東京から講師として参加した二人のスタッフは事前に少し予習して来たとはいえ、Corona SDK は初心者と言って良い状態。しかしそこは開発の現場で長く培って来た経験を元に何とか講師を務めることができました。もちろん、Corona SDK の取っ付きやすさにも助けられました。
最終的に開発されたアプリケーションは次の9個になります(最終日は1名の欠席がいました)。
- しゃちほことばし(分類:ゲーム)制作高3
- このアプリケーションは左に配置されたダルマを飛ばすことで、右に配置したしゃちほこを落とすゲームです。間には上下に動いている障害物があり、それを避けるようタイミングを計ってボールを飛ばします。
- jumping(分類:ゲーム)制作高3
- 空中に配置されている箱の間を左右移動ボタンとジャンプボタンを駆使して飛び跳ねながら移動していくゲームです。パワーを使うジャンプボタンの使用に制限を加えることでゲーム性を高くしたのが工夫のポイントです。
- ボールタッチ(分類:ゲーム)制作高3
- 画面を埋め尽くさんばかりに大量に落ちてくるボールにタッチして、その数を競うゲームです。
- sound mission(分類:音楽)制作高3
- ボールが跳ねてぶつかると音階を奏でる障害物が画面に複数配置されており、今回は「かえるのうた」が半自動で奏でられるようになっています。最後の要素は自分でうまく動かさないと音が出ないというゲーム性もあります。
- Beginner Drummer(分類:音楽)制作高2
- ドラムの基本パーツを画像とともに配置し、画像にタッチすることでドラムセットを演奏できるアプリケーションです。
- scratch(分類:音楽)制作高2
- DJが使うようなスクラッチ音源を画像とともに配置し、タッチすることで演奏できるアプリケーションです。録音した先生の声を元にしたサウンドも2つ用意してあります。その2つをタッチすると、「寝るなー」と「起きろー」と叫びます。
- クイズゲーム(分類:パズル)制作高3
- 簡単な計算の回答を1から9の数字の中から選ぶだけなのですが、その9つの数字が物理エンジンの原理を用いて、枠の中を動きまわります。動いている数字をタッチする難しさがこのパズルの面白いところです。オープニングもイージングを使った凝ったものになっています。
- シーソーゲーム(分類:パズル)制作高3
- シーソーの右側の籠にあるしゃちほこと釣り合うように、左側の籠に重りとなるものを入れていくゲームです。重りを置いた位置がシーソーの中心からどれだけ離れているかも関係するようになっています。
- ドミノ(分類:パズル)制作高1
- 自分で板を配置していき、ドミノ倒しを楽しむことができます。横スクロールして画面からはみ出した範囲を見ることもできるようになっています。
Startup Weekendの発表会にて、発表
最後に今回の Boot Camp の集大成として、大人達の成果発表に混ざって高校生達も自分たちの作ったアプリを紹介するためにプレゼンテーションを行いました。自分のアプリのアピールポイントを的確に説明することはもちろん、会場のウケを取る場面もあったりと、みんななかなか堂々としたものです。
今後
実質 2 日半という時間でここまでたどり着けたことは素晴らしい成果だと思います。
Hack For Japan では石巻2.0と協力して今後もこの高校生達をサポートしていきます。すでに、Facebookグループが作成されており、全国に分散する講師や先生の情報共有と議論のためだけでなく、参加した生徒もメンバーに加わって質疑応答などがされています。今後は、Google+ ハングアウトなどを使ってリアルタイムでフォローを行なっていくことも検討しています。また、詳細は未定ですが、高校生達が作成したアプリケーションをお披露目する機会も設けようと計画しています。
Hack For Japanスタッフ 及川卓也, 高橋憲一