iOSアプリケーション開発入門』著者インタビュー

2012年7月に発売されたiPhone/iPad用アプリケーション開発の解説書iOSアプリケーション開発入門の著者、新居雅行氏にお話を伺いました。

――どんな仕事を現在しているのですか?

iOSやWeb向けの開発の仕事はもちろんですが、それらについて、教える仕事も大学やコンピュータ系の学校で継続的に行っています。また、システム開発や運用に関するコンサルティングも行っています。以前はライターをしていたのですが、今はエンジニアとしての仕事と教える仕事が中心で、書籍はたまに出すという感じです。

――iOSの開発が注目されています

正確には、iPhoneで稼働するネイティブアプリケーションということになります。App Storeによる販売モデルが非常に大きな市場を形成したことから、話題性ということ以上にビジネスとしての注目が広がっています。一方、HTMLとJavaScriptで作るWebアプリケーションもありますが、市場としてはあまり顕在化していません。直接、収益につながるという意味で、Appleも開発者もネイティブアプリケーションに注目しているのが現状です。

――どんな書籍なのでしょうか?

iOSデバイス向けの開発者を養成する書籍と言えばいいでしょうか。他のOSでの開発経験がある方や、あるいは学生でC言語を学習しているという方には、実践的なサンプルで、アプリケーション開発のポイントを理解していただけます。また、iOS 5での開発を解説していますが、iPhoneの初期の時代にやってみて最近はご無沙汰というみなさんは、今現在のiOSでのアプリケーション開発を学習していただけます。初期のiPhoneからけっこう変わっており、Appleも「モダンな」という形容詞で現状を解説しています。

――iOSでの開発は取り組みやすいのでしょうか?

Objective-Cというある意味特殊な言語を使う事をことさら取り立てることが多いですが、言語はそれほど問題にならないと思います。プログラミングの基本と、オブジェクト指向の考え方がわかっていれば、言語は単なる書き方の問題です。昔から、開発=言語と考えられがちですが、本当に大変なのはフレームワークの習得です。もちろん、文字列の扱い1つを取ってもC#やJavaと違うので、その意味では「難しい」のですが、メソッドとプロパティのセットが違うだけと言えばそれだけのことです。やる気があれば十分に理解できる世界です。

――iOSのフレームワークの特徴は?

10年以上前の古い時代のAPIを用いたプログラミングでは、基本的な機能を大量に並べてやっとなにか1つできる、といった状況でした。今では1つ1つのメソッドの機能が多彩なので、昔の感覚で言えば「マクロを組む」というレベルに近いと思います。また、iOSは画面設計の定義を基礎にしてプログラムを作りますが、そのあたりが「何でもソースで書く」的なJavaとは大きく違い、わかりづらいかもしれません。しかし、延々とプログラムを記述する代わりに画面やオブジェクトの配備がグラフィカルに定義できるため、結果として、プログラムは以前のOSに比べて短く作れるという傾向があるのです。特に、Appleのガイドラインに従えばしっかりしたAPIのサポートがあるので、シンプルにプログラムを書けるのです。

――iOS開発の難しいところは?

やはり、独自のフレームワークという点でしょうか。本書では、フレームワークのすべてを説明しているわけではありません。しかしながら、ビューとビューコントローラーといった画面表示の基本、写真やテーブルといった基本的なコンポーネントの使い方は、実際に動くプログラムを元にして、フレームワークの仕組みを学習できるような記述になっています。

――書籍の特徴は他にありますか?

インターネットに接続するiOSデバイスでは、ネットワーク処理は基本です。本書では、業務系のシステム等での共有を意識して、iCloudではなくASWのSimpleDBを使ったサンプルを組み立てています。通信はサードパーティのフレームワークを使う事が多いのですが、通信処理の基本やXMLのパースなども、フレームワークでどこまでできるのかを説明しています。さらに、iPad対応、ローカライズのやり方、iOS 5の新しい機能であるページビューコントローラや顔検出といった機能を使ったアプリケーションを紹介しています。

――プログラムの初心者でも読みこなせますか?

C言語やオブジェクト指向の知識が前提ではありますが、本書は演習が中心であり、指定された手順に従って作業をすればアプリができるようになっています。最初に開発ツールのXcodeの使い方を一通り演習しますし、ツールの使い方についても事前に学習する必要がないように執筆していますので、わからないなりにとにかくやってみるという取り組み方も歓迎したいですね。

――iOS開発の学習ニーズはあるのでしょうか?

筆者は2009年に「iPhoneアプリケーションプログラミング」という書籍を技術評論社より出版しましたが、当時はどちらかと言えば、プロの開発者に対する適切なガイドが必要だった時期です。2010年以降、iOS開発はエンジニアのスキルとして認知され、むしろ学校を中心に初学者の技術習得が課題となっていきました。筆者はそのような時期に、理科系の大学生だけでなく、文科系の大学生も含めて、iOS向けの開発を体験するというセッションで講師を数多くこなし、そのようなテキストの作成のなかから本書が出来上がっています。その意味では間口の広い書籍と言えると思いますし、奥行きもある書籍として書き下ろしました。

――iOSプログラマになりたい人へのアドバイスはありますか?

Appleのデベロッパープログラムの会員には必ずなりましょう。そして、英文のAppleのドキュメントを読みこなせるようになるというのが一人前の基準だと思います。もちろん、書籍等に頼ってもいいのですが、オリジナルとしてのAppleのドキュメントを理解するという手順を省いてはいけません。もちろん、あまりちゃんと説明されていない場合もあり、Stack Overflowに頼るしかないこともありますが、ともかくAppleのサイトを参照するのが基本です。学習していろいろと知識を得ると、自分で考えたアプリケーションを作りたくなります。そのときには、Appleのドキュメントを参照するところから始めると良いでしょう。中でも、⁠iOS Human Interface Guidelines』は必ず読みましょう。