2011年11月4日金曜日

iOSアプリ開発者への道(7):開発言語(Objective-C)その3

iOSでのメモリ管理方式について少しだけ。
└詳しく書きだすとこれだけで本を一冊書き上げる位多岐に及ぶので。。。(^_^;)

C言語でのプログラミング経験者であれば自分で確保したメモリ領域は責任を持って解放するのが当たり前ですから「何をいまさら」って感じるかも知れませんが、近年の多くのプログラミング言語では自動的に不要メモリを解放する機能(ガベージコレクション機能)が当たり前のように実装されています。

ガベージコレクション機能があればメモリの存在期間を意識しないでコーディングできますし、予期しないメモリリークの発生も気にしないで済みますのでプログラマにとっては「楽」ができる機能です。

しかし、ガベージコレクション機能自体が負荷の高い処理であり、携帯デバイス自体少ないメモリ搭載量ですので、iOSは現時点ではガベージコレクション機能を搭載していません。
└iOS5.0でそれっぽい機能が付いたようですがまだ評価していませんので割愛。

このため、iOS開発ではプログラマがメモリの確保から消滅まで意識してコーディングする必要があり、これがiOS開発を難しくしている1つの理由だと思います。
└特に最初のソフトウェアを1本書き上げるまでは苦労するかな。(独特な仕組みなので)

まぁ、それも慣れですから多くコーディングを繰り返し書いている内に(半年くらい(^^ゞ)特に意識しなくてもメモリの状態を把握しつつコーディングできるようになります。

あと、アップル社自体もメモリ管理処理がメモリリーク等のエラー・不具合の要因になっている事やプログラマの負担になっている事も認識しているようでLeopard以降のObjective-C 2.0からはガベージコレクション機能も利用できるようになっています。(Mac用アプリ開発のみ)

最後に全ての言語習得に言えることですが、習得する近道は実際に繰り返しコーディングすることに勝る方法はないと思います。
しかしながら、Objective-C言語は他に例を見ないユニークな言語ですので基本的な概念・機能については体系的に理解しておいた方が結果的に早く習得できると思いますので、1冊くらいはObjective-C言語に関する本を読んだ方が良いと思います。

<オススメのObjective-C言語解説本>

入門 Objective-C 2.0 (Programmer’s SELECTION)/Scott Knaster
¥3,360
Amazon.co.jp
Mac OS X Cocoaプログラミング 第三版/Aaron Hillegass
¥4,410
Amazon.co.jp

2冊とも洋書の翻訳本ですが、私の経験上プログラミング言語に関する本は翻訳本の方が内容も分かり易く内容も充実していると思います。(数多くの出版本の中から選び抜かれた本が翻訳されている訳なので)
└日本の著者には申し訳ないですが。。。

1冊目の「入門 Objective-C 2.0 (Programmer’s SELECTION)/Scott Knaster」はObjective-C言語の概念から各種機能まで分かり易く書かれており、メモリ管理についても多くのページを割いて分かり易く説明されておりObjective-C言語を知るには最適な1冊だと思います。
└内容の割にスラスラと読めますので初心者にもオススメ。

特に2冊目の「Mac OS X Cocoaプログラミング 第三版/Aaron Hillegass」はCocoa解説本の中ではピカイチだと思います。(iOSアプリ開発用ではありませんがCocoaについて深く理解できます)

0 件のコメント:

コメントを投稿