ろう学校の生徒が開発する自分のためのiOSアプリ
みなさま、おはようございます。ASCII(週刊アスキー+ASCII.jp)編集部の吉田ヒロでございます。さて、久しぶりにワタクシの専門分野のひとつであるプログラミング系のイベントを取材してきましたよ。
3月18日と19日の2日間、東京・飯田橋にあるKDDI本社のセミナールームで「KDDI×Prokids 聴覚障がい者向けスマホアプリ教室」というプログラミングのイベントが開催されました。
これはKDDIが子供向けのプログラミング講座などを手がけているProkidsと共同で開催したイベントで、KDDIがiPadなどの機材を、Prokidsが講座用の教材などを用意して進められました。
集まったの都内のろう学校に通う中学生から高校生の10人。ちなみに、アスキーのことを知っている人がいるかどうか尋ねたところ、3人の生徒が手を挙げてくれました。認知度は結構高いですね。
1日目は、健聴者との会話支援アプリの開発を進めていきます。KDDIがこういったイベントを開催するのは今回は3回目で、毎回参加している生徒もいるそうですが、もちろん初参加者もいます。そこで最初はプログラミングの基礎を学習します。
こういったプログラミング講座の場合、ScrachやHour of Codeを利用したビジュアルプログラミングツールを使うのは主流ですが、対象者が中高生ということもあり、いきなりリソースコードが出てきます。
具体的には、macOSに付属するソフトウェア開発環境であるXcodeと、iOSやmacOSなどのネイティブアプリを開発できるSwift言語を使って文字を画面に出力する方法などを学んでいました。ここで重宝されていたのが、Xcodeが内蔵する「Playground」。Playgroundと聞くと、iPad版のiOS 10で利用できる「Swift Playgrounds」を思い浮かべる人も多いかと思いますが、簡単に言えばそのmacOS版で、iPad版よりも前からあったものです
Playgroundの何がすごいのかというと、Swiftはコンパイラ言語で、ソースコードを直接実行してその場で結果を確認できるJavaScriptなどのインタプリタ言語とは異なるにもかかわらず、Playgroundを使えば同様のことが可能になります。つまり、Swiftのソースコードを打ち込んだそばから結果を確認できるのです。
休憩を挟んだあとは実践的なプログラミングに入っていきます。ここではボタンのタップやスワイプなどで画面が遷移するアプリを視覚的に作っていける「Storyboard」というXcodeの機能を使っていきます。1日目のゴールである健聴者との会話支援アプリも役立つ内容です。
具体的には、UITableViewクラスなどを使い、項目をタップすると画面が左に流れるようなプログラミングに取り組んでいました。
10人の個性に感服!救急車お知らせアプリ10種類
2日目のテーマは救急車お知らせアプリの開発。1日目で利用したStoryboardを利用してプログラムを作っていきます。具体的には、「AudioKit」と呼ばれるAPIを使って、iPhoneのマイクが拾った音の音量や音階を解析して、アプリに反映させるという内容です。
救急車のサイレンは日常の生活音よりも音量が大きいのと、「ピーポー」という一定パターンの音階(周波数)で構成されているので、この情報を使うことでただの大きい音なのか、救急車のサイレンなのかをアプリが判断できるというわけです。では実際にろう学校の生徒が作ったプログラムを紹介していきましょう。
まずは宮崎くんのアプリ「緊急車両接近中」。このプログラムでは、音量により画面の色が、黒→緑→黄→赤に変化するのが特徴です。苦労したのは、見やすい色を決めるところだったそうです。結果、メイン画面は黒地に白抜き文字を採用していました。また救急車のサイレンを検知した場合には、画面が赤になり、SOSと書かれた救急車の画像を画面に表示させるのですが、わかりやすいようにあえて中央でなく下方に配置するようにプログラムを組んだそうです。通常とはちょっと違う表示方法にすることで、異変に気づきやすくなるというアイデアです。宮崎くんは、救急車のランプ(パトランプ)をモチーフにしたアプリのアイコンもデザインしていました。
石田君は「障害者のためのアプリ」を開発。プログラミング初心者だったので開発にはかなり苦労したそうですが、音量によって画面の色が変化するプログラムを1日で完成させていました。救急車のサイレンが鳴ると赤い画面に遷移するので、必要最低限のことはこれで知らせることができますね。今後は、バイブレーション機能を実装したいとコメントしていました。
梅村君が作ったのは「Sound Checker」。今回のプログラミング講座ではあらかじめ用意されたプログラムの骨組みを組み合わせていく内容だったのですが、梅村君はひと味違います。救急車の接近をより早く探知できるように、なんと骨組み部分のソースコードまでカスタマイズしていました。具体的には、サイレンの音を検知するしきい値を変更していたのです。
おおひらくんは「音感通知」アプリを開発。とにかくソースコードの打ち間違いが多く、エラーをつぶすのに苦労したそうです。なぜ動かないのか原因を探る作業を、たくさんの「あ」の中にある「お」を探す作業に例えて笑いをとっていました。プレゼンの完成度は高かったです。
すがい君が作った「救急車警報」アプリは、最初に利用規約を読ませる画面を挿入するという予想の上をいく内容でした。画面に記載されている内容に同意しない場合は、アプリが自動的に終了するという仕組みです。自分が開発したアプリに起因したトラブルを避けるために用意したとのことです。ここまで考えているのかと正直感心してしまいました。アプリ自体はシンプルなUIですが、機能的にはまだ未完成ながら実際に救急車を呼べる(電話する)機能も加えていました。このアプリも救急車のサイレン音を検知すると、画面が黄と赤に点滅して接近を知らせてくれます。
吉田君が開発したのは「KITEMASU」(キテマス)アプリ。こちらもUIをシンプルにすることを第一に考えたとのこと。開発で苦労したのは、ソースコード内のエラー探しだったそうです。また、タイピングの練習をやっておくべきだったという反省していました。アプリは、音量と音階によって画面の色が水色→紫色→黄色→赤色に変化します。黄色と赤色の場合は救急車の接近を示しており、画面上に救急車のイラストと「キテマス」というフレーズが表示されます。
山口君のプレゼン資料には今回のイベントに協力しているKDDIとProkidsのロゴを入れ込んであり、気のせいかドヤ顔でプレゼンを進めていました。開発したのは「音検出」アプリ。アイコンはスピーカーアイコンの右に疑問符を付けるというシンプルながらアプリの内容がわかるデザインでした。ほかの生徒のアプリとは異なり、どの音量になればどの色になるのかが画面に記載されているのがいいですね。具体的には、白色→緑色→黄色→赤色に変化します。しかも、使用方法のページまで用意されていました。実際は音検出画面から使用方法のページを表示させたかったようですが、限られた時間での開発だったこともあり、スプラッシュ画面に表示する方法に急遽変更して間に合わせたようです。山口君は大学進学が決まっており、大学でもプログラミングの勉強続けるそうです。
よしはる君は「サイレン探知機」というアプリを開発していました。工夫した点は、UIの文字を大きくしたところです。スタート画面の文字やボタンなどが確かに大きくデザインされていました。音量や音階による画面遷移は3パターンで、オレンジ色→黄色→赤色に変わります。黄色と赤色で救急車の到着を知らせてくれます。
のり君が開発したのは「救急車がやってきた」というアプリ。アイコンは「救急車から発される音を目で見る」ことをイメージしてデザインしたとのこと。夜間での使用も想定し、背景色は黒にして光の刺激が少なく暗い場所でも文字を見えやすくしたそうです。救急車のサイレン音が近づくと画面が赤に遷移してパトランプのイラストとともに救急車の接近を知らせてくれます。
大トリとなった江村君のアプリは「音チェッカー」。まず思ったのがプレゼン資料のまとめ方がうまいということ。アプリ内で使用するキーとなる画面を列挙して、それぞれに説明を加えるというかたちで非常にわかりやすかったです。アイコンは、音を可視化するというコンセプトから疑問符とスピーカーアイコンを組み合わせたデザインに決めたそうです。画面の背景色はトンネルなどの暗いところでの使用も想定して目に負担をかけないように暗めの色を使ったとのこと。実際に救急車のサイレンを検知したときにどういう画面になるのかをあらかじめデモとして実行できる機能を備えているなど、使用者のことをかなり考えた作りになっていました。今後は救急車だけでなく。それぞれで異なる緊急車両のサイレンを聞き分けて画面遷移に反映させるプログラムを作りたいとのことでした。
各自5分程度約1時間におよぶプレゼン大会でしたが、プレゼン資料もアプリの内容も個性が出た興味深い内容でした。これまでワタクシは、キッズプログラミングを中心に取材してきましたが、教える相手が中学生や高校生になると、各自の考えでここまでいろいろできるのかと感心しました。
ろう学校に通う生徒は、現実問題として進学や就職の選択肢が限られているそうです。ましてプログラミングとなると、講座を開くにしても手話通訳のスタッフの協力などが必要となるので、なかなか実現しなかったそうです。今回はKDDIとProkidsの協力により、生徒は2日間、Swiftプログラミングに没頭できる環境が整えられていました。障がいを持つ自分たちがアプリを自ら開発することで、ハンディキャップを乗り越えられるのはよかったと感想を述べていた生徒もいました。
また、今回のプログラミング講座を引率した木村先生は、「いつも助けてもらうのではなく、プログラミングで自らが解決できるようにもなっていてほしい」と生徒たちを激励していました。
KDDIが世界に向けて配信している超異例のアプリ
2日間の講座を修了した証として、KDDIコーポレート統括本部 総務・人事本部 総務部 CSR・環境推進室長である鳥光 健太郎氏より、修了証が手渡されました。KDDIはセミナールームの提供やiPadなどの貸し出しだけでなく、手話のできる社員がボランティアとして両日とも参加するなど、がっちりした協力体制を敷いているという印象でした。
冒頭で紹介したように、KDDIのこのような取り組みは今回で3回目。以前は、陸上トラック競技のスタート練習用アプリの開発に取り組んだとのこと。日本では光の点灯などを利用した聴覚障がい者向けのスタート装置は1台しかないので、装置を使って練習する機会が少ないという問題があったそうです。そのため聴覚障がいを持つ日本の選手の多くは、装置が設置されていたとしても敢えて使わず、顔を横に向けてスターターのピストルの動きを見てからスタートを切ることが多いそうです。これだと健常者に比べてスタートがどうしても遅れてしまうわけです。
日本陸連は一般の大会でのこのスタート装置の使用を認めていないのですが、国際大会では聴覚障がい者向けのスタート装置の仕様がきちんと決められており、必要であれば利用することが可能です。聴覚障がいを持つ選手にとっては、スタート装置を使ったほうがいいスタートを切れるわけなので、本来ならぜひとも使いたいはず。こういった実際の当事者の意見を基にアプリを開発していったそうです。
ちなみに障がい者向けのスポーツの祭典といえばパラリンピック有名ですが、聴覚障がい者はパラリンピックには出られず、これとは別のデフリンピックという大会に出場するそうです。もちろん一般の大会にも出場できるのですが、日本陸連が聴覚障がい者向けのスタート装置を認めていないため、ほかの選手と同じ実力があっても不利なってしまうという問題があります。日本陸連は、専用のスターターを使うことで視覚障がい者の選手に逆に有利に働くかもしれない点を払拭できないため、これまで導入が見送っていたそうです。とはいえ現在では日本陸連も視覚障がい者用のスターターの導入には前向きな姿勢を示しているそうで、近い将来は公式な競技会では設置が義務付けられるようになるようです。
2020年から義務教育にプログラミングのカリキュラムが盛り込まれることを受け、全国各地でさまざまな講座が開かれています。しかし、今回のようなすぐ先に完成型が見える実践的な講座はまだまだ少ない印象です。プログラミングの基礎はもちろん大事ですが、中高生に向けた実践的なプログラミング講座が増えていけば、大学への進学や就職の選択肢が、そして夢がさらに広がるのではないでしょうか。