Mac初心者のiPhoneアプリ開発記3 Objective-Cの壁

Objective-C手探りで進めているiPhoneアプリ開発記。前回は@ITの記事を参考に、Xcodeの使い方を勉強しながらBMI計算アプリを作りました。

コードはまだ理解できずにコピペしてるだけで、そういうもんかと進んでいる状態です。

今回は@ITの連載の続きから行いましたが、結論から言って挫折しました!というのは今回のコード、完全に理解不能なんですね。(;_;)

今までCやC++を触ってきているのに、構文や命令すらほとんど理解不能。@が多用されてるけど、@ってなに!?状態です。

少し分からないなら、そのうち理解できるだろうと先に進むことも出来ますが、全く分からないのにコピペで先に進んでも意味ないです。というわけで今回は一旦Xcodeを離れ、Objective-Cの基礎を勉強したいと思います!

 

挫折したところ

@ITの連載「SDKで始めるiPad/iPhoneアプリ開発の勘所」の第4回、iOS 4のSDKで、Twitterを使ったiPhoneアプリを作るで挫折しました。

この記事では「Twitterクライアント」を作成します。なのでハードルが高いのも当然かもしれません。途中までは「そういうものか」と進めたのですが、コードの説明から全く理解できなくなりました。

最後までコピペで進めても良かったのですが、恐らくこの連載はある程度Objective-Cを理解している人向け。なのでObjective-Cの勉強に切り替えるべきと判断しました。

 

Objective-Cの勉強へ

現状ではObjective-Cのソースを読んでも訳が分かりません。本当にコレはC言語かという感じです。Objective-Cの基礎については、同じく@ITの連載「Cocoaの素、Objective-Cを知ろう」に沿って勉強することにしました。

この連載は2008年に公開されているのでかなり前の記事ですが、初心者が勉強する部分に大きな変化はないと思います。

Objective-Cは特殊な言語? – @IT

この記事はC++経験レベルの読者を想定しているようで、@がコンパイラディレクティブを示すなど、私が疑問に感じたポイントが的確に載っています。

前回のBMI計算アプリでは、Xcode開発の美味しい部分だけを触りましたが、これから本格的にiPhoneアプリを開発するのならObjective-Cの基礎は避けて通れません。

 

少しだけ複雑なHello World

前回はiPhoneエミュ上に”Hello World”を表示させましたが、この記事ではObjective-Cのプログラム構築手順を学習するための簡単なプログラムを組みます。

具体的にはXcodeは一切使わず、普通のテキストファイルにObjective-Cを書き、ターミナルのgccでコンパイル→リンクして、最後にターミナル上で実行します。

一番初めのObjective-Cプログラム – @IT

C++との違いにも触れながらObjective-C独特のクラス定義方法が勉強できました。私はとりあえずmiというテキストエディタでソースを記述し、デスクトップのgccフォルダに保存しました。

スクリーンショット 2013-02-22 16.17.53

ターミナルでgccを実行してみたらgccがnot found。どうやらXcode 4.3からgccはXcodeに入らなくなった模様。

MacOS X Lion + Xcode 4.3 での gcc

を参考に、Xcode上でCommand Line Tools for Xcodeをインストール。ターミナルでgccが使えるようになりました。

スクリーンショット 2013-02-22 16.18.11

あとは記事のソースをコンパイル。main.mでエラーが出ますがエラー内容をよく見れば簡単に解決できます。最後にターミナルに、

♪ La La La ... ♪

とでたら成功です♪
意図した通りに動くのは嬉しいですね。

コンパイルやリンクといった工程を一つ一つ行うことで、Xcodeでは味わえない流れがしっかりと把握できる良記事です。

この記事ではObjective-Cにおけるオブジェクト指向プログラミングの組み方から、ソースを実行ファイルに変換する流れを説明していますが、ある程度基礎がある人を対象にしているようです。

もしSingerとかSongとかクラスって一体なんなのか?実行結果の意味が分からん!などの疑問が残る場合は、この時点で立ち止まりオブジェクト指向の基礎をおさらいしましょう。

 

さらにクラスの理解を深める

第3回は座学です。オブジェクト指向の要所であるクラス定義について勉強します。

Objective-Cのクラス定義を理解しよう – @IT

この記事で明らかになったのは、アクセサメソッドの自動生成の為のコンパイラディレクティブ”@property”と”@synthesize”の存在で、前回のBMI計算アプリのコードに登場しており?な部分でした。Objective-Cのバージョン2.0から導入された機能のようです。

前回のBMI計算アプリでは、BMICalcViewControllerクラス内のインスタンス変数のアクセサを自動作成していたんですね。

 

今回はObjective-Cの基礎をダダダッと進めました。まだ理解があやふやで怪しい部分もありますが、今後ソースと接する度に徐々に理解できていくと思うので、立ち止まらずに次回に進みます。

この連載の一覧

  1. Mac初心者のiPhoneアプリ開発記

    この記事は先日購入したMacBook Air(略してMBA)でiPhoneアプリ...

  2. Mac初心者のiPhoneアプリ開発記2 Xcodeの闇の中で

    iPhoneアプリ開発するぞ!と意気込んでMBAを購入したのは1年前。でもAnd...

  3. Mac初心者のiPhoneアプリ開発記3 Objective-Cの壁

    手探りで進めているiPhoneアプリ開発記。前回は@ITの記事を参考に、Xcod...

  4. Mac初心者のiPhoneアプリ開発記4 Objective-Cの復讐

    前回から10日もたってしまい、ほとんど忘れてる状態からの再開です。今回も引き続き...

  5. Mac初心者のiPhoneアプリ開発記5 因縁のTwitterビューア

    今回は難しくて挫折していた「iOS 4のSDKで、Twitterを使ったiPho...

  6. Mac初心者のiPhoneアプリ開発記6 画像処理はじめました

    前回から随分時間が経ってしまいました。iPhoneアプリ市場は激戦なので、果たし...

  7. Mac初心者のiPhoneアプリ開発記7 設定画面を作る

    今回はツール系アプリなら装備しておきたい、いわゆる設定画面を作ります。今後アプリ...

  8. iOSの進化とフラットデザイン

    iKuracさんが作成したiOSの比較画像。先日発表されたiOS7のデザインの路...

  9. Mac初心者のiPhoneアプリ開発記8 設定画面を動的に作る

    前回は設定画面を作るためにストーリーボードやTableViewの仕組みを勉強しま...

  10. Mac初心者のiPhoneアプリ開発記9 アプリ申請までの道

    ようやく!初のiPhoneアプリ申請までたどり着きました。名前は『Screens...

  11. Mac初心者のiPhoneアプリ開発記 リリース後の反応

    実は先日8/9に『Screenshot Maker Pro』がリリースしました。...

  12. 大人センスなiPhone壁紙『A new world』

    NYで活躍中のドイツ人デザイナーTobias van Schneiderさんの作...

  13. ReynoldsさんのiPhone壁紙

    渋い色調のポリゴン地形がお洒落。Timothy J. Reynoldsさんの作品...

  14. シンプルの美学アンソニーさんのiPhone壁紙

    Anthony Zinonosさんの壁紙。青と黒、シンプルに色分けされた海上にオ...

  15. iPhoneアプリ開発記 iOS7対応で必要だったこと

    公開中のiPhoneアプリ『Screenshot Maker Pro』をiOS7...

  16. Cocos2d-xでiPhone&Androidアプリ開発記1

    そろそろ次のアプリ開発と日々考えていたんですが、私は個人開発なので今後は小粒なゲ...

  17. Cocos2d-xでiPhone&Androidアプリ開発記2 バージョン3.x系挫折

    『ドラゴンクエストモンスターズ スーパーライト』がCocos2d-xで開発とのこ...

  18. Cocos2d-xでiPhone&Androidアプリ開発記3 初心者TIPS

    今回で3回目のCocos2d-x連載。自作アプリを製作中ですが7割ほど完成してき...

  19. Cocos2d-xでiPhone&Androidアプリ開発記4 AdMobメディエーションでAdMob+iAd iOS編

    Cocos2dxで広告を表示するにはiOSとAndroid別々に設定が必要です。...

  20. Cocos2d-xでiPhone&Androidアプリ開発記5 AdMob Android編

    iOSに続きAndroidにAdmodを導入します。とりあえずAdModだけ表示...

  21. Cocos2d-xでiPhone&Androidアプリ開発記6 Android対応

    Androidアプリ開発経験は全くない状態で始めたCocos2dx。ここまでの開...

  22. Cocos2d-xでiPhone&Androidアプリ開発記7 ローカライズとアイコン組み込み

    ようやく初めてのcocos2dxアプリが完成しました! アルファベットを組み合わ...

  23. Cocos2d-xでiPhone&Androidアプリ開発記8 開発の流れとアプリ申請

    Cocos2d-xで初めてのアプリを公開しました。AndroidとiPhone両...

  24. Cocos2d-xでiPhone&Androidアプリ開発記9 SQLiteの注意点

    Cocos2d-xからSQLiteを使うには、iOSとAndroidそれぞれにラ...

  25. Cocos2d-xでiPhone&Androidアプリ開発記10 アプリ高速化

    Cocos2d-xで2本目をリリースしました。前回の英語パズルの続編『英単語ギズ...

  26. Cocos2d-xでiPhone&Androidアプリ開発記11 Androidのデバッグ

    Cocos2d-xによるアプリの新作をほぼ作り終えました。開発はXCode主体で...

  27. iOS/Androidアプリ『英単語RPG ワード・オブ・ザ・リング』

    iPhone/Androidアプリ『英単語RPG ワード・オブ・ザ・リング』を公...

  28. 人にも読めるQRコード

    人にも読めるQRコード『Human Readable Quick Respons...

  29. Xcode7にiOS 8 Simulatorがインストールできない

    Xcode 7.0.1に、iOS 8.1 Simulatorをインストールしよう...

 

 

広告