iOSプログラミング入門書では、まず最初のHello, World!すら難しい
公開日:
:
最終更新日:2014/06/12
iOSアプリを書く! JavaScript, Objective-C, PHP, Xcode
Hello, World!が第一歩
新しくプログラミング言語を習得するときに、「この言語でのHello, World!はどのように書くのかな」というように最初のプログラム作成ステップを踏んでいくタイプの人がいるだろう。最初のプログラムは、どこか画面に”Hello, World!”という文字列を出力することで完成し、達成感が得られる。第一歩目が終わる。
ウェブプログラマの場合なら、たとえばJavaScriptで以下のように書く。
document.write("Hello, World!"); |
これをブラウザのコンソールで実行するか、あるいはhtmlファイルのscriptタグに挟めば、画面に実行結果が表示される。成功だ。
あるいはPHPならば、
echo "Hello, World!"; |
これをhtmlファイル中でphpタグに挟むか、あるいは.phpのファイルにして(ローカル)サーバに置き、ブラウザからアクセスすれば良い。成功だ。
その勢いのまま、自分のプログラミングの才能に惚れ惚れしつつ、iOSプログラミングの本を開く。さあ、Hello, World!はどこだ?
果てしなく大股の第一歩
すると、どうも他のプログラム言語の入門書と勝手が違うことに気がつくだろう。まず最初にXcodeのインストールの仕方から始まり、画面の部分の説明が始まり、さあ最初のプログラムを書いてみましょうとなる。
そして急に登場する.hファイルと.mファイル。@interfaceとか@implementationとかの、およそテキスト処理とは無縁そうな単語。さらに、すでに書かれているコードをいじらされる。たかだかテキスト表示するためだけに、きっと優秀なプログラマが書いたであろうコードを傷つけないように、肩身の狭い思いをしながらテキストを打ち込めと指示される。もうこんな言語は嫌!という気分になって、挫折してしまうだろう。
Objective-C言語から自然に入門できる入門書は無いのかねぇ
どうしてこのような悲劇が起こるかというと、JavaScriptやPHPにおけるブラウザ、あるいは他の言語におけるコマンドラインのような出力環境をiOSに作るためのコードが必要だからだ。iOSプログラムを立ち上げて、初期画面が表示される。この時点での状態が、既に優秀なコードの結果なのだ。だからiOSプログラムの第一歩というのは、巨人の肩でこそこそ踏み出すことになる。まず必要なのは、巨人の上でバランスを崩さない技術なのだ。
じゃあ、iOSでの一歩の前に純粋にObjective-Cの一歩を踏み出したい!となったらどうすればよいか。これ、最初のプロジェクトテンプレート選択で、OSX ApplicationのCommand Line Toolを選択すれば良いのよね。
すると、このテンプレートにはコードを書く所がmain.mしかない。main.mにはinsert code here…というコメントが書かれている。ここにObjective-Cのコードを書いて左上の三角ボタンで実行すれば、実行結果が左下のスペースに出る!
で、実は既にHello, World!が書いてある(チェッ)。見なかったことにして、書いてあるコードを削除、新たにこのように打ち込んでみよう。
NSLog(@"Hello, World!"); |
するとどうだろう、なんと実行すると画面にHello, World!と表示される。そうそう、こういう感動が大事なわけよ。
そしてここからどんどんコードを書く技術を膨らませて行けば良い。関数を定義するにはどうすれば良いか。オブジェクトを作るには?インターフェースは書くことができるのか?
そのようにObjective-Cの経験を積んだ後、iOSアプリケーションのテンプレートを眺めて、「昔はこれ、さっぱり分からなかったなぁ」と懐かしむのが一番良い学習経路ではないか。うん。
Xcode6が正式リリースになって、Swiftが入門者を待ち受けるようになるとどうなるか分からない。少なくとも.hと.mのようにファイルを分けることは無いというから、もっと直感的になるのか。けれども、とりあえずObjective-Cから食らいついていく場合には、最初っからiOSアプリケーションを作ろうとしない方が良いんじゃないかな。
関連記事
-
Objective-Cの第四歩 インスタンスプロパティ・メソッドを定義する
Objective-Cの第三歩では、ピュアC言語からのObjective-Cのクラス入門ということで
-
Xcode 6の正式リリースまでに、Objective-Cでアプリを一つ仕上げる!
Swiftに早速触れてみたい!でもXcode 6がベータ版の間は、有料(7800円/年)のDevel
-
Objective-Cの第六歩 プロトコルの宣言と実装
Objective-Cの第五歩では、親クラスの継承とメソッドのオーバーライドについて説明した。そこま
-
Objective-Cでは何故.hファイルと.mファイルを作成させられるのか
前回説明したように、Objective-Cでプログラムを書く際には、別にC言語そのもののつもりで書い
-
Objective-Cの第三歩 クラスとクラスメソッドを定義する
Swiftの事をひとまず置いておいてObjective-Cの入門編を書いているわけだが、前々回の"H
-
Objective-Cの第一歩(仕切り直し)
前回Objective-Cの第一歩として挙げたコードであるが、綺麗さっぱり忘れてほしい。というのは、
-
Objective-CでiOSアプリの第三歩 UIViewControllerの必要性を理解する
前回はUIViewControllerの存在を無視して"Hello, World!"アプリケーション
-
Objective-CでiOSアプリの第一歩 新規プロジェクトで生成されるコードの解説
しけたコンソールアプリばかり作っていたけれど、ようやっとiOSプログラミングに入るとしよう。急がない
-
Objective-Cの第五歩 クラスの継承とメソッドのオーバーライド
前回Objective-Cの第四歩では、等差数列の和を計算するプログラムGaussTesterの作成
-
Objective-CでiOSアプリの第二歩 とにかく立ち上がればというレベルのHello, World!アプリを作成
前回はiOSアプリ作成の第一歩として、Empty Applicationを選択した際に書いてあるコー
- PREV
- RetinaのiMacは今年後半に出そう
- NEXT
- Objective-Cの第一歩(仕切り直し)