header

■はじめに

iPhoneアプリ開発やってみたいけど、取っ掛かりが欲しい方のために
実際にちょっと触れてみた際のメモを置きます。

■必要なもの:Mac本体

MacBookとかiMacとかMac miniとか
要はApple社製のPCが必要です。これがないとはじまりません。
Windowsプログラマーにとってここが最大?のハードルだったかも
Winでも開発できたらいいんですけどねー

私の場合は13インチのMacBookProを選びました。
部屋の中をうろちょろ移動するので。
解像度がちょっと狭いですが
Macはフォントが綺麗なので不思議と開発にそれほど支障はありませんでした。
この辺はお好みで。

■必要なもの:書籍

ググれば何でも情報が手に入る世の中ですが
はじめての開発環境であれば尚更のこと、できるだけ書籍を揃えましょう。
自分で買って読んでみたものを幾つか紹介します。

専門書は高価に思えますが(実際高価ですが)
ここをケチると開発効率が落ちます。思い切って最初に数冊揃えましょう。
★★★★★:5点満点

	iPhoneプログラミングUIKit詳解リファレンス

	これは必須です。UIKitの全コントロールの使い方が網羅されています。
	最初にInterface Builderにちょっと触れて
	画面にラベルを配置し、メッセージを表示させますが
	本書はこの手法ではなく、コードでコントロールを配置し
	それを制御する方向で説明が続きます。
	Interface Builderについて知りたい方は導入部分のみになるかも。
	逆にこれを出来るだけ使いたくない人やIBの助けが不要な方には最適かと。

	まず最初にコントロールの基礎となるUIViewについて
	概念や階層構造、座標系、プロパティとその効果、メソッドなどについて学べるので
	基礎が無い状態でなんとなくプログラミングをはじめてしまった私は
	大変参考になりました。下地ができました。

	中身はソースコードとスクリーンショットと文章の配分が絶妙。
	途中、スクリーンショットがカラーだったり白黒だったり気になりましたが
	コストを抑えるためにカラーは必要最低限にしたのかもしれません。

	本のタイトルから、コントロールの使い方に特化した逆引き的な内容だと思っていましたが
	加速度センサーや、タッチのイベント検出、カメラ制御やバッテリー残量の取得など
	幅広くiPhoneを使いこなすヒントが見つかります。
	やりたいこと、作りたいUIが決まったらまずこの本を開いています。 
	
★★★☆☆:3点

	iPhone SDK アプリケーション開発ガイド

	なんとなくオライリー本は揃えたくて買ってみましたが
	突っ込んだ内容が多く、ギークな方でないと楽しめないかも。
	Appleの姿勢や体制に腹を立てたハカーさんがアングラな実装を紹介してたりして
	ここで書かれたコードをそのまま鵜呑みにすると審査に通らなくなるよ。みたいな
	中〜上級者向けです。
	最初は不要でしょう。後から追加でいいかも。
	
★★★★★:5点満点

	OpenGLで作るiPhone SDKゲームプログラミング

	OpenGLでのゲーム開発がメインなら必須です。以下、自分のamazonレビュー

	この本が出るまでOpenGLの利用は難しそうで避けていたんですが
	読み進むと、かなりハードルが下がりました。
	特に座標系への抵抗が強かったんですが
	普通のスクリーン座標で扱うためのヒントもありました。
	(これまではcocos2Dの利用を検討していました)

	私自身は3Dにあまり興味がなく、2Dだけ参考にと手にとりましたが
	サンプルゲームが良く出来ていて
	いわゆる動かすだけのサンプルではなく、遊んでおもしろいサンプルでした。
	そのため、3Dについても機会があれば取り組みたいと思えました。
	ポリゴンやテクスチャについての基礎や、ちょっとした数学の話もあり。

	価格も良心的、本が開きやすい、コードが見やすい
	(コード中に無理にコメントを入れず注釈している)
	欲張ってアレもコレもと説明せず、他書に譲るところは譲って
	その代わりゲームプログラミングの要所は押さえてあります。

	ゲーム開発目的でiPhone関連書籍を何冊も物色しましたが
	はじめからこのような本が在れば遠回りしなくてもよかったのに
	サンプルコードがHPからすぐ手に入る点も良いです。 	
	
★★★☆☆:3点

	iPhone SDK 3 プログラミング大全 ゲームプログラミング

	手っ取り早く絵を表示したい、入力をチェックしたい、
	といった欲求に応えてくれる、最初の取っ掛かりに良い本。

	はじめは動きの少ないノベルゲームからスタートし、
	もぐら叩きなど少しずつ動きのある内容へ。
	最終的に簡単なシューティングゲームを開発します。

	元々、私のようにMac以外のプラットフォームで
	ゲームなどの典型的なアルゴリズムを知っている開発者からは
	恐らく物足りない内容に思われますが
	はじめての環境ですぐに結果が欲しい時
	サラっと読んでウォーミングアップするのに丁度良い本です。 
	
★★★★☆:4点

	詳解 Objective-C 2.0

	言語についての本も必要なのでこちらを勧めます。
	初心者をゼロから救う内容ではなく
	何らかのプログラミング言語経験があることが前提になります。
	
★★★★☆:4点

	入門 Objective-C 2.0

	こちらも言語の本ですが、より初心者向けです。
	C言語からObjectiveCにステップアップするのに良さそう。
	
★★★★☆:4点

	Mac OS X 10.6 Snow Leopard パーフェクトガイド

	MacOSがそもそもはじめての方は、まずOSの基本操作に慣れましょう。
	とゆーことで入門書です。
	カラーでスクリーンショットが豊富なので迷うことはないです。
	

■X-Codeについて

Macを買ったら次にインストールするのがこれです。

WinではVisualStudioがメジャーですが
これと似たような感じでiPhoneアプリ開発ではX-Codeを使います。
あ、無料です。イメージが2GB程度だったかな?
http://developer.apple.com/technologies/xcode.html

エディタの使い勝手や、デバッグ支援など、
VSに慣れすぎた私にとっては正直使いにくかったです。
いえ、これは私がずっとVSに依存してきたからですが。

プロジェクトを作って
コントロールを配置してイベントハンドラを記述して
シミュレータを起動して
Mac上で擬似的にデバッグ。と。
流れはWindowsPhoneやAndroidのアプリも似たような感じです。

iPhone実機が無くても
Mac上でソフトウェアでiPhoneをシミュレーションできるので
まずはこのスタイルで開発を進めても良いです。

MacとゆーOSがはじめてだった私には
X-Codeのパッケージをインストールすることがそもそもハードルでした。
フォルダ構成もよくわからないし。
タイトルバーダブルクリックしたら最大化じゃないしw
OSの基本操作も知らずに開発しようなんて自殺行為なので
まずは手頃な解説本をゲットして、OSに慣れましょう。

↓はXCodeでiPhoneシミュレーターを使った開発風景

■開発言語について

開発はObjectiveC言語で行ないます。
Mac文化圏じゃない人にとっては聞きなれないかも。
コードも慣れないうちは、カッコが沢山出てきて戸惑うかも。
[[]] こんなの

ただ、すべてをObjectiveCで記述する必要はなくって
私の場合、必要な部分だけObjectiveCで、残りはC++で書くスタイルをとりました。

例えば、テクスチャー読み込みとかイベント記述をObjectiveCで
ゲームのロジック部分を使い慣れたC++で。とか。

比率にして3:7くらいかな?物によると思います。
このあとサンプルコードやショットを公開予定ですが
最後までどうしてもObjectiveCの文法とゆーか、見た目には慣れなかったorz

専門書を読みかじった感じだと
関数をコールする、とゆーよりも
そのオブジェクトにメッセージを送る
とゆー感覚なんだとか。よくわかりません。はい。

そもそもプログラミング経験が無いと挫折する方も居ます。
C++でもJavaでもC#でもなんでもいいので
何かしら言語のベースがあるといいんですが。

■実機転送について

X-Code上のiPhoneシミューレーターである程度形になってきたら
USBケーブルでMacとiPhoneを繋いで
自作アプリを転送、実行できます。
(付属の充電ケーブルでOK。専用ケーブルではありません)

ただそのためには年間100$(日本円だと1万円)を払って
デベロッパー登録しなければなりません。

これは、フリーソフトを公開する場合でも有料アプリを公開する場合でも同じです。
フリーソフトを公開するのにお金を支払うのもちょっとアレな感じですが
もっとゆーと
この開発費を支払わなくなるとライセンスが失効してアプリがStoreから消えます。
公開を続けるなら毎年1万円の年貢を納めなければなりません。
ここも地味にハードルです。

Androidなんかは全部無料だし、野良アプリ公開もできるので
この辺がゆるくなるといいんですが。

それから
デベロッパー登録のやりとりが基本英語なので戸惑うかも。
大体皆さんが引っ掛かりそうな所はちょっとググれば解決策が見つかりますし
あとで紹介する専門書にもヒントが出てきます。

■サンプルアプリ

簡単なゲームってことでオセロを作ってみました。
対人、対コンピュータ戦が可能です。

そもそも自分が弱かったので
オセロの専門書を買ってきて定石やセオリーなどを勉強して
2手ほど先読みをさせてみたら
それなりにコンピュータは強くなりました。

で、一応完成しましたが、お金を取れるようなクォリティーではないし
無料で良作がゴロゴロしてるし
毎年開発費を払い続けるはちょっと。とゆーことで未公開のままお蔵入りしました。

何かの参考になるかもしれないので
プロジェクトをリソースを含めて丸ごと圧縮したものを置いておきます。
ただ、著作権的なものは放棄していないので参考程度にどうぞ。
コードを部分的にでも利用したい方がもしいらっしゃれば
その旨、ご連絡ください。
サンプルコードのダウンロード(256kb)




2012.12.23 Androidへ移植してみました。
下記からダウンロードできます。




Copyright © 2008.07 - shougo suzaki