2014年06月21日

Objective-CからiOSアプリ開発の再勉強

本業の仕事の関係で半年程遠ざかっていましたが、最近になって、またiOSアプリ開発へのモチベーションが復活してきました。AppleからiOS 8リリースの発表もあり、ADCではiOS 8 beta 2の配布が始まっています。このメジャーバージョンアッブによって、iOSはさらに大きく進化するようです。このまま手をこまねいていると、どんどん置いていかれて恐竜状態になりそうです。年齢的にはもはや恐竜並みのオールドタイマープログラマですが、恐竜のように絶滅したくはないです。

私のいまのiOSブログラミングのレベルは、低機能なアプリはそこそこ簡単に書けるが、本格的なアプリを作ろうと思うと、まったく歯が立たないという状態です。過去の記事で紹介した本の中で通読したのは『iOS Programming: The Big Nerd Ranch Guide (3rd Edition) 』だけで、他の本は、実際にアプリを書いているときに役立ちそうな箇所を拾い読みしたりして使っている程度です。プログラマ歴が長いので、経験や勘でカバーできる部分も多少ありますが、モバイル開発はPC(WindowsやLinux)や組込み開発とは別世界なので、iOSブログラミングについてはビギナーレベルに少し毛が生えた程度だと考えるのが適切な自己評価というものでしょう。いまの中途半端なレベルから脱して、本格的なアプリをどんどん書けるシニアレベルに早く到達しないとダメだなぁと感じています。そこで、初心に帰って、iOSアプリ開発の勉強を一からやり直す決心をしました。

同じことを繰り返したくないので、どういう方針でiOSアプリ開発の再勉強に取り組むべきか色々と考えたのですが、やはり基本に立ち返って、iOSアプリのブログラミング言語であるObjective-Cをしっかりと習得しておかないと、ビギナーレベルから脱することはできないんじゃないかと思いました。C++はC言語の知識をベースにして特別な勉強なしで自然に習得することができましたが、Objective-Cは微妙な違和感があって、iOSアプリのコードを書いていてもスーと落ちてくるような感じがなかなかしないです。Objective-Cの言語仕様はSmalltalkの影響を強く受けており、C++よりオブジェクト指向が徹底しているからではないでしょうか。C++なら中途半端なオブジェクト指向設計でもプログラムを書くことができますが、Objective-Cではそれができないような感じがします。一応ちゃんと理解しているつもりですが、オブジェクト指向について深いレベルで理解し直すことにもなるので、Objective-Cから再勉強するのは意味があることではないかと思えます。それともう一つ、Objective-CはOSとの連携性がすごく高いプログラミング言語だという感じがします。Mac OS XとiOSのフレームワークを構成する基礎的なクラス群は「NS」という文字で始まる名前がつけられています。これは、Mac OS XとiOSがNEXTSTEPをベースとして生み出されたOSだからです。この2つのOSのフレームワークもObjective-Cで書かれています。Objective-Cというプログラミング言語を深く理解することは、Mac OS XとiOSのフレームワークの設計思想を理解することにも繋がります。たとえ遠回りだとしても、ブログラミング言語であるObjective-Cをもう一度一から勉強し直すことがベストな方法ではないかと思えてなりません。頭の中に実現したい機能が浮かんだときに、参考情報からスラスラとObjective-Cでプログラムコードが書けるレベルでないと、本格的にiOSアプリを開発していくことなど到底できないでしょう。ブログラミング言語の文法や書式は完全に頭の中に入っており、OS側のAPIリフアレンス情報やコードサンプルなどを参考にしながら、アプリの実装コードをどんどん書き進めていけなくてはシニアレベルのプログラマとは言えません。

そこで、上記のような方針に合っていそうな本をAmazonで探し回りました。この2年でiOS開発関連の書籍はさらに数が増大しているようです。本当にすごい数の本が出版されていますが、今回はその中から以下の2つの書籍を選びました。

iPhoneアプリ開発のコツとツボ35
國居 貴浩
秀和システム
売り上げランキング: 58,864


Amazonのカスタマーレビューでの評価が高く、どちらもObjective-Cにフォーカスした内容で豊富なサンプルコードが掲載されているようです。『iPhoneアプリ開発のコツとツボ35』の方は印刷版、『Effective Objective-C 2.0』の方はKindle版を購入しました。どちらもKindle版が欲しかったのですが、前者の電子書籍版はまだ発売されていないようです(本記事を書いた後で確認したら、Amazonの『iPhoneアプリ開発のコツとツボ35』の商品ページにKindle版が登録されていました。Kindle版の発行日は2014/06/13で、しかもXcode 5とiOS 7に対応した改訂版になっているようです。私がこの本を注文購入したのは06/17ですが、そのときはまだKindle版は登録されていなかったか、あるいは見落としてしまったのかもしれません。改めてKindle版も買うべきか悩んでいますが、一度完読して内容の有益度を確認してから決めようと思っています)。後者は洋書ですが、この本の翻訳版和書も出版されています。

Effective Objective-C 2.0
Effective Objective-C 2.0
posted with amazlet at 14.06.21
Matt Galloway
翔泳社
売り上げランキング: 123,169

『Effective Objective-C 2.0』は和書と洋書のどちらを選ぼうかちょっと迷いましたが、Kindle版は洋書の方が安く、こういう技術書の英語なら辞書なしでも意味を理解しながら読めるので、洋書の方を買いました。

「とにかく、どんどんコードを書く」これが一番の大切な事だということを忘れずに、iOSアプリ開発の再勉強をやっていきます。書くObjective-Cコードの量が増えれば、iOSに関する技術知識やプログラミング能力は自然に身についていくんじゃないかと想像しています。私は組込み分野でのプログラマ歴が長いですが、自分の経験からも「書いたブログラムコード量と技術習得速度は比例する」という法則は成り立っています。分野を問わず、多くのプログラマがこの法則に賛同するはずです。あと必要なのは、実際に本格的なアプリを書き始めてからの「このブログラムをどうしても完成させたい」という熱意でしょう。iOSアプリ開発で取り組みたい研究分野も探していましたが、じつは、最近「これならイケるんじゃじゃないか」という分野をやっと見つけました。その辺については後日別の記事に書こうと思っています。

タグ:Objective-C
posted by とみやん at 14:47| Comment(0) | TrackBack(0) | 日記
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/100135662

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