2011年02月06日

iOSプログラミング初心者への提言

iPhone SDKがリリースされて以後、iOS向けのアプリケーション開発に挑戦しようとする人が増えています。そして今でも変わらず日々初心者の人が関心を持って参入しようとしてきています。ただ自分が使いたいと思うアプリケーションを開発したいだけの人もそれを全世界に販売してお金持ちになりたい人まで多様です。

しかしながらiOS SDKの開発は(Mac OS X以外の)他のプラットフォームでのプログラミング経験がある人であっても独特でかなり敷居が高いせいか、ネットで見かける質問にはあまりにもまとはずれなものであったり、適切に調べれば誰でもすぐにたどり着けるようなことでも質問しちゃっているものも多い気がします。

そもそもSDKで何ができるのか理解していないせいか、問題の整理ができていなくて調べることすらできていないのではないかと思える質問も多数見られます。

そこで、そんな開発初心者向けに学習方法などをまとめてみました。

(1)入門書を読む



こんなゲームが欲しい。こんな機能を実現したい。今あるアプリでは満足できないから自分なりのやり方で実装したい。

そんな思いからいきなりMacintoshを購入しSDKをダウンロードして、まさにそのアプリケーションの開発に着手する人が多数いるように見えます。でも焦らないでください。ロシア語を知らない人がいきなりロシア語で書かれた最新医療技術の論文を読み始めるでしょうか?

まず基礎をしっかり身につけてください。iOSの基礎の勉強はロシア語の勉強に比べて格段に学ぶことは少ないです。でもまったくゼロではありません。

まずなんでもいいので入門書を一つ読んでください。そして
・どんなハードウエアが必要なのか
・どんなツールを使うのか
・開発の流れ
・実機にインストールするにはどうするか
・他の人に使ってもらうにはどうするか
・iOSでは何ができるのか(そして何ができないのか)
を学んでください。

このブログでも色々お勧めしていますが、その人のもっているスキルや興味・好みなどによって何が最適化は変わってきます。今は沢山入門書が出ています。長年Mac向け開発をしてきた者から見るとあり得ないほど沢山の種類が出ています。選び放題です。貴方にあう入門書がきっとあります。Amazonでレビュー読んで選ぶのもいいですが、街に出て実際の本屋で立ち読みして探して見てください。

お金がないのでなるべくお金をかけたくないというならAppleのサイトで入門書も公開されています。日本語化もされています。とにかくまず開発の流れを自分で体験してください。

最近の本にはコードがCD-ROMでついていたりダウンロードできたりしますが、それらは使わずできれば自分で入力してください。入力して動かなかったらそれを解決することが自分の身に付きます。どうしてもわからなければ正解と自分の間違いを比べる目的で、著者が作ったサンプルソースコードを使うといいと思います。

そしてできれば本に書かれていることを少しだけ変えて動かしてください。例えば文字の色を変えるとか表示するサイズを変えることか画面遷移の効果を変えるとか。そうすることで将来自分が開発するアプリケーションで、何をどう使えばいいのかわかってくると思います。


(2)Objective-Cについて知る



入門書段階でももちろんObjective-Cについて勉強することになりますが、その段階ではあまり深く考えず、そんなもんだと思う程度でいいと思います。とにかく全体の流れを身につけることが大切です。

ですが、実際に他の人に使ってもらう段階に進む前には是非Objective-Cの特徴を知っておいて欲しいと思います。特にメモリ管理について知ることは重要です。実メモリが豊富にあり仮想記憶もサポートしているパソコン上のアプリケーションと違い、小さなメモリ空間を効率よく使わななければならない携帯端末では多くのメモリを使うことはアプリケーションを不安定にする一番の原因になります。是非Objective-Cについて勉強してください。

別途紹介する萩原剛志さん著の『詳解Objective-C 2.0』が最適だと思いますが、他のものでも構いません。詳しく解説してある本を選んでください。アップル自身も無償でObjective-Cに関する解説をデベロッパーサイトで公開していますのでお金のない人はこちらでも構いません。もちろん日本語です。

(3)UIKit/Foundationについて知る



ここは(1)でどこまで学んだか次第ですが、ひとととり基本的なiOSの機能について調べてください。Foundationの範囲ではNSString, NSDictionary, NSArrayなどのよく使うクラスでどのようなことができるか一通り知っておくのがいいでしょう。

UIKit(Cocoa Touch)の範囲ではViewControllerについては是非知っておいてください。UITableViewはよく使います。UIImage, UIView, UIResponderなども知っておいた方が良いでしょう。

さらにCore Animation, Core Graphics, AV Foundationで何ができるのか確認しておいたほうがいいでしょう。この後自分でつくるアプリケーションで使う機能についてはAppleのサンプルが豊富にあるのでそれらでいいでしょう。

この段階ではひとつひとつ詳しく見る必要はありません。全部知る必要もありません。どんなフレームワークやクラスがあるのかそのクラスで大体なにができるのかを一通り知れば十分です。このあと実際に開発するときに「あ、この機能はあのフレームワークを使うんじゃないの?」「そういえばあんなクラスがあったはず」というのを思いつくヒントを知っておきましょう。

分厚い入門書であればこれらを含んでいることもあります。使わない機能まで詳しく調べる必要はありませんが、どこになにがあるか、何がSDKの基本機能でできるのかを確認することは重要です。


(4)特定分野の応用知識を学ぶ



ここまでくれば、自分の作りたいアプリの機能を考えてあの機能とこの機能を使えば良いなあとわかってくるのではないでしょうか?そうすればあとは具体的にどうやって実現するかを学ぶだけです。

が、単純にSDKのあるフレームワークのあるAPIを呼べば終わりでしょうか?であればそんなアプリはきっともう世の中にあるのではないでしょうか?組み合わせてはじめて実現できるからこそあなたが自分でつくらなければならないんです。

どうやって実現するのか詳しく調べて行きましょう。ある分野についてはすでにそれについて書かれた本があります。オーディオを詳しくとか、位置情報を使いたいとか。

さらにネットで開発手法を公開しているひとも大勢います。この段階までくればGoogleなどで検索してそれらのサイトを見つけることは可能なほど知識がついているはずです。

それでも見つからなければ質問すればいいでしょう。ここまでくれば何がわからないのか整理できているんじゃないかと思います。正しい質問をすれば正しい答えが返ってきます。

(5)自分独自の知識経験考えを実装する。



そして最後にあなた独自の何かを追加して自分のアプリを開発してください。あなたの独自性、あなたの個性、あなたのセンス、それこそ世に問うべきものです。

素晴らしいアプリケーションが増え、あなたの素晴らしいアプリケーションにいつか出会えることを楽しみにしています。

ラベル:IOS 初心者
posted by 永遠製作所 at 14:27| 東京 ☁| Comment(0) | TrackBack(0) | iPhone/iPod touch | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック