マインドストームがきっかけでAndroidプログラミングにはまった
――5月9日(月)に刊行となったのは『作ればわかる!Androidプログラミング 第4版』ですが、金宏さんは2011年の初版、2013年の第2版、そして2015年の第3版まですべて執筆されてきました。これらは学んでもらうための解説書ですが、そもそもご自身がAndroidプログラミングを始めたのはどんなきっかけがあったからなのでしょうか。
金宏:1999年に翔泳社から発売された『MINDSTORMSパーフェクトガイド』をご存知でしょうか。英語版の『Lego Mindstorms』に解説書がついたセットで、マインドストームの本体は初代の黄色RCXでした(マインドストームはモーターやセンター、ギア、車輪などをプログラムを組み込めるレゴブロックと組み合わせ、ロボットを作れるレゴ社の商品)。
これを翔泳社のSEshopで購入し、当時小学生だった息子にプレゼントしました。ロボットプログラミングを勧めた理由は、パソコンの画面だけを見てプログラムを作るプログラミングより、センサーの値を読み込んでロボットの動作を変えられるほうが結果が目に見えて分かりやすいだろうという理由からです。
私も一緒にプログラムを作り、ロボットを動かして遊んでいたのですが、日経BP社でその様子を連載しようという話になり、日経ソフトウエアのウェブスペシャルで「こうしろうのMindStorms日記」が始まりました。
この連載は10年以上続き、奇しくも第327話「AndroidケータイでマインドストームNXTを動かす」で終わりました。その間、マインドストームも初代のRCXから二代目のNXT、三代目のEV3へと進化しました。現行モデルのEV3はDebianベースのパワフルなLinuxマシンですから、さまざまなことができるようになりました。
ですが、それにもましてAndroid端末が高性能なコンピュータであり、しかもいろいろな種類のセンサーを内蔵しています。この環境で行なうプログラミングが楽しくないはずがありません。結局、自分の息子に買い与えた『MINDSTORMSパーフェクトガイド』がきっかけとなり、Androidプログラミングにはまってしまったわけです。
![金宏和實さん 金宏和實さん](http://cz-cdn.shoeisha.jp/static/images/article/9419/9419_02.png)
遊ぶよりも作るほうが面白い
――学びたいという意思はあっても、学び始めるきっかけがない方もいるかもしれません。金宏さんが息子さんに『MINDSTORMSパーフェクトガイド』をあげたのはきっかけ作りのためなのでしょうか。
金宏:私は現在もNPO活動としてロボットプログラミング講習会などに関わっているのですが、私が自分の息子を始め、子供たちに伝えたかったことは、ゲームで遊ぶよりもゲームを作るほうが面白いということです。
Android端末をお持ちの皆さんは、すでに自作アプリのすばらしい実行環境を手に入れているわけです。洗練されたデザインのかっこいいアプリでなくても、自分で作ったアプリを自分で使ってみると、ちょっとした優越感が味わえるかもしれません。
――実際にどういうふうに勉強していけばいいのでしょうか。
金宏:Androidプログラミングを学ぶには、私も書籍やWebサイトの記事を参考にします。ですが、サンプルを動かして基本的な動作を理解したら、次はそれに少し変更を加え、どうなるかを検証するのがいいでしょう。
それができるようになったら、自分の作りたいアプリをイメージします。ラフでいいので、画面イメージを何枚か描いてみましょう。そして、実装したい機能を箇条書きにしたら、すぐに作り始めるのがおすすめです。
とは言っても、やはり皆さんお忙しいでしょうから、少しずつしかプログラミングは進まないかもしれません。Googleスプレッドシートなどに、日記のように今日行なったことを記録すると、明日やるべきことのイメージができて、長続きするかもしれません。
それから、ちょっと怖いかもしれませんが、作成したアプリを人に使ってもらうのはプログラミングスキルを上げるために有効な方法です。また、日本Androidの会が各地で開催している勉強会に参加するのもいいでしょう。
直接人と会って話をすることで、「何か作ってみたい」と刺激を受けることも多いはずです。私もときおり、金沢支部が石川高専で開いている勉強会に顔を出させてもらっています。
「プログラミングを学ぶ一番の方法は、自分のプロジェクトを始めることです」というのはポール・グレアムの有名な言葉ですが、どれだけJavaの文法を勉強しても、Android SDKに精通しても、何か作ってみないことにはプログラミングできるようにはなりません。
ぎりぎりでAndroid Studio2.0に対応
――すぐ作り始めるというのが、まさに本書での学び方ですね。では、本書の内容について教えてください。
金宏:本書では、第1版からAndroidのセンサーや通信機能をなるべく簡単に利用できるアプリの開発について説明してきました。第4版を刊行するあたり、Android SDKは6.0に、統合開発環境であるAndroid Studioは2.0にバージョンアップしました。ですから、第4版では第3版の内容に加え、Android SDK6.0の新機能であるRuntime Permissionや指紋認証について多くのページを割いています。
特に多くの人にアプリを使ってもらうために、重要なテクニックであるRuntime Permissionについては、8章、9章、10章と続けて、基本的な使い方からメリットを感じてもらえる使い方までを解説しました。また、Android Studio2.0の新機能Instant Runについても説明しています。
Android Studio2.0のプレビュー版は早くからリリースされていたのですが、何度もバージョンアップを繰り返し、ベータ版が出るまでに多くの時間を要しました。同様にベータ版がRC(リリース候補)になるまでも時間がかかりました。そんな中で原稿の締め切りが近づいてきたので、Android1.5にも対応にしようと原稿を直したら、校正の最終段階でAndroid Studio2.0が正式リリースされ、再度、原稿を直すことになりました(※刊行日の数日前にAndroid Studio 2.1がリリースされました。インストールに関する追加情報はこちらをご覧ください)。
書籍を執筆するなら困ったことになりますが、このバージョンアップの活発さが、Androidアプリ開発がホットな分野であることを示しています。今後もAndroid SDKやAndroid Studioはどんどんバージョンアップが繰り返されていくことになるでしょう。私もサポートページでタイムリーに追加情報を出していきたいと思います。
本書のタイトルは『作ればわかる!Androidプログラミング』です。「おっ、面白そうだな」と好奇心を刺激して、「意外と簡単、作り始めればなんとかなる」と感じていただくことが本書の目的なのです。