iPhone Developer Program に入って、1週間弱がたちました。平日はほとんど何もやれてないのが実情ですが、少しずつ進めています。ブログの趣旨がぼやけまくりですが、今までのようなコンテンツと併せて、今後プログラミングをやって行く過程をブログに書き溜めて行こうと思います。
今回はここまでの歩みをまとめておきます。少し長いです。。。
プログラミング経験値
ブログやTwitterでコミュニケーションとりやすくなることを願い、わたしのプログラミング経験をさらしておきます。
- 大学でPascalという学習者向けのプログラミング言語に触れる。
- プログラムおもしれーと想い、いきなりWindowsでVisualC++に挑戦。Hello Worldをダイアログに表示することさえ全く訳が分からず玉砕。
- 何かソフトを作ってみたいという想いがあったが、VisualC++のトラウマから「おれには無理だ」と諦めて過ごす日々。
- その後、VisualBasicを触ったところ、VisualC++に比べて驚異的に簡単だったので、「なんかできそうだー」とトラウマから解放されるが、飽きっぽい性格からアプリケーションらしいものを作るに至らないままポイ。
- また、大学の授業でその後ネットワークプログラミング(C言語;ソケット使って、POP/SMTPくらいだったか。)と組み込み系のプログラム(あるアセンブリとC言語)をかじる。かなり面白かったが、その時に軽々と課題をこなすスーパーマン集団を見て「あいつらみたいにはなれねーな」と熱が冷める。
- その後は、たまにプログラミングというものへの憧れが季節が巡る度に虫のように湧いてきて、C++、Perl、Rubyといろいろかじってはさよならを繰り返す。
- 結局は研究や仕事で便利なテキスト処理をPerl(100行以内)で作る、という程度のプログラミングスキルのみが身に付いて現在に至る。
こう振り返ると、このCocoa/Objective-Cプログラミングも「季節もの」で終わる可能性が大です。ただし、実機が持つマイク、スピーカー、タッチパネル、GPS、加速度センサーといったインターフェイスを動かすことの面白さと、もしかすると世界中にアプリが配布できて一攫千金も夢じゃないという人参があるので、なんだか行けそうな気がしている今日この頃。
Cocoa/Objective-C経験値
- everybodyキャンペーンでiPhoneを買う1ヶ月くらい前に、iPhoneSDKプログラミング大全を買う。あの"Singing Cat"のfrnkさんが話題になったことがきっかけ。
- ぼちぼち読みすすめていたが、iPhoneを買ってから2ヶ月弱、iPhoneを使うことに夢中で放置状態。
- iPhoneを触ることに慣れ、またそのデバイスの面白さに触れる。なにか作ってみたいと改めて思い立つ。
- 「たのしいCocoaプログラミング」を買い、半分くらい読む。
- 「実機を動かした方が面白い」という考えから、iPhone Developer Programにお布施。
C++やRubyをかじっていたことから、オブジェクト指向のクラス、メソッド、インスタンスあたりの概念に抵抗はなかったです。また、「たのしいCocoa」はC++との比較があり、Objective-Cの理解の助けになっています。
現在の課題
今のところ、作りたいものは決まっていて、必要なスキルを作りながら身に付けているという状況です。楽しいですが、道は長く険しそうな予感がしてます。現状直面している課題は以下のようなもの。頭がモヤッとしてます。
- デレゲートの概念
- MVCアーキテクチャでM(モデル)をどう作るのか
- protocol
デレゲートがさっぱり頭に入ってきません。Window-Based Applicationプロジェクトを新規で作ると、hogehogeAppDelegate.h/.mというソースコードができます。チュートリアルではここにガシガシとMVCのC(コントローラ)にあたるものを書くものをよく目にしますが、Delegate=Controllerではないですよねー。すみません、自分で書いてて支離滅裂です。
上の話にも絡みますが、MVCのMは理想的には独立したクラスとして作るべきなんですよね?きっと。チュートリアルでは規模が小さいからか、hogehogeAppDelegate.mに直接書いてるものしか目にしません。本格的かつ実用的なアプリケーションを開発している方はどういう作り方をしてるんでしょうか。・・・支離滅裂ですか(汗)
protocolは従うべき決まり事を規定したものだと理解していますが、従わなければならない場合、あるいは、従ったほうが便利な場合ってなんなのでしょうか。そもそもなにが規定してあるのかチンプンカンプン。実は、試しに作ったプログラムで「xxx.hはyyyプロトコルに従ってない」というWarningが出たところ、そのまま従わせたらWarningが消えて根本原因がさっぱりわからなかったというのが疑問の発端。
(2009/5/3追記)プロトコルとデレゲート、少し理解が進みました。
これから始める初学者の方は上記のことは忘れてください!
こちらをどうぞ http://www.macj-log.com/article/118577716.html
今後
今後はこういった感じで、つらつら書き留めて行こうと思います。解決したらそれも書き残して行きます。これから試して行きたいのは、TableView、SQLiteあたりです。データベースなんて扱ったことないですが。。。
今日はこんな所です。
先は長そうだー。