サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
konton.ninpou.jp
iPhoneアプリケーション開発に必要なものは? Konton's iPhone application labolatory English top page iPhoneアプリケーションの開発には少なくともまずハードウェアとしてインテル製のCPUを搭載したMac OS X搭載機が必要です。 なぜかというとiPhoneアプリケーションの開発環境であるiPhone SDKはインテル製のCPUを搭載したMac OS X搭載機でなければ動かないからです。 ちなみにiPhone SDK 3.2からはMac OS X 10.6(Snow Leopard)でないと動作しないので、Mac OS X 10.5以下の場合はOSのアップグレードも必要になります。 iPhone SDKはアップル社のサイトからダウンロードする必要があるため、インターネット接続環境も必要になります。 アプリケーションを開発してシ
NSMutableDataとは NSMutableDataの主な用途はNSDataと同じくバイナリデータの格納です。ただしこちらは可変長であるため、 アプリケーション内部で作成したデータを格納するのに向いています。NSDataにあるメソッドも全て使えます。 代表的なメソッド(目的別) 新しいNSMutableDataを作りたい - initWithLength: 現在のデータの末尾にデータを追加したい - appendData: 新しいNSMutableDataを作りたい - initWithLength:
window、viewとは アプリケーションの表示される部分がwindowと呼ばれます。通常アプリケーションはwindowを一つ持ちます。その中にviewを一つまたは複数持ちます。 viewとは画面の中に表示される(ことを前提としている)ものです。インターフェースを構築する時に使うラベルやボタンも全てviewから派生したものです。 画面全体を表すような大きなviewには必ずといってよいほどそれを制御するcontrollerが存在します。通常はそのcontrollerからviewを制御します。 そのためプロジェクトにはviewではなくviewControllerのhファイルやmファイルが作られます。例外として、OpenGL ESを使うviewや、タッチパネルへの応答を書く必要があるviewはそれぞれhファイルやmファイルを用意します。 一般的にはプログラムはこれらのviewControlle
メソッドファイルにはそのクラス(オブジェクト)が持つ命令が書かれています。BASICでいうならサブルーチン、CやC++,VisualBasicで言えば関数といったものに該当します。 そのなかに一連の手順を書き込みます。そのメソッドの書き方は、他の言語に馴染みがある人から見ると少し特殊なものであり、 という書かれ方になっています。引数が1個も無い場合には、メソッド名の右のコロン以降は全てなしになります。 その直後にくる中括弧で閉じた内部にそのメソッドで実行したいコードを記述します。C言語と同じ部分としては、戻り値はreturnのあとに変数名を書くというのがあります。 戻り値が無い場合でも、returnはそのメソッドからの脱出に使えます。何かの条件によっては実行する必要のない命令などがある場合、 retuneでとっとと戻ってそれらの部分をスキップすることもできるわけです。returnの右には値
開発を始める前に iPhone Developer Programへの加入や、iPhone SDKのダウンロードおよびインストールを終えたら、いよいよ開発のスタートです。ただし、その前にちょっとだけ確認しておきたいことがあります。 それは、あなたが開発したアプリケーションをどうしたいのかということです。もしあなたが開発したアプリケーションをiTunes Storeを使って配信したいと考えているなら、開発よりも先にアップル社との契約の締結手続きやその準備を優先させたほうが良いでしょう。 なぜならその手続きが終了するまでに数ヶ月を要するからです。開発が終わってからそれらの手続きを行うと、手続きが終わるまでの間かなり待たされ、 完成したアプリケーションが宙ぶらりんになる可能性が高いです。私が昨年(注:初掲載が2009年でしたので、昨年とは2008年のことを指します。以下も同様です。)に契約手続き
ファイルの中にあるデータからNSDataオブジェクトを作ります。下の例では自分のアプリケーションのドキュメントフォルダにある、 data.xmlというファイルの内容をmyDataという名前のNSDataオブジェクトに入れています。一応ファイルが存在しないときに実行しないようにエラー対策をしています。 NSData *myData; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *path = [documentsDirectory stringByAppendingPathComponent:@"data.xml"
getterとsetterとは まずは簡単な例として@propertyで外部から読み書きともにアクセス可能な変数について考えてみます。 外部からオブジェクト内の変数などへアクセスする場合、たとえばオブジェクト外部においてmyObjectという名前で宣言したオブジェクトにある、 myValueという名前の変数なら、 myObject.myValueと書いたものを式の右辺におけば現在の値を取り出せます。逆に左辺におけば外部から値を変更することが出来ます。 このときオブジェクトの内部ではゲッターやセッターと呼ばれるものが働いています。例えば先ほどのmyValueがNSInteger型の変数だとすると、 値を入手する場合には
Interface Builderとは Interface BuilderはiPhone SDKの構成パーツの一つで、ユーザーインターフェースの設計に使われるツールです。ユーザーインターフェースに使う部品を画面に配置してゆくことで、 全体の画面設計をしてゆくことができます。 ただ、別にユーザーインターフェースの設計は全てこれで行わなければならないというものではありません。全部をInterface Builderで設計しても構いませんし、 部分的にだけ使っても構いません。全く使わないという選択肢もあります。多言語対応のソフトを作る場合だと、 現在ユーザーが設定している言語に従い、表示内容を変更しなければならなくなります。そのようなことをInterface Builderのみでやる場合は 各言語のファイルをそれぞれ用意することになるので、管理に手間がかかります。このように小回りの利かない部分は
iPhoneアプリケーション開発入門(cocoa touch,Objective-C関連)まとめ Konton's iPhone application labolatory English top page はじめに これはiPhoneデベロッパKontonによるObjective-C(cocoa touch)によるiPhoneアプリケーション開発に関する覚書をまとめたものです。 これまでブログにTipsを書いていたのですが、何というかそれぞれが単独の項目となっていて、まとまりに欠けるような気がするため、 こちらにも少しずつ内容を再構成しつつ書いてゆくことにしました。例によって(?)更新は不定期です。なるべく平易な言葉を使うようにして書いています。 なお更新日時はファイルの本文が更新された日時なので、アップロードした日時とは異なりますのでご注意ください。 例として書かれるコードには、何の
NSMutableDictionaryとは NSMutableDictionaryはNSMutableArray同様にオブジェクトの集合を格納するものですが、NSMutableArrayとは管理の方法が違います。 NSMutableArrayはそれぞれのオブジェクトに順番に番号をつけて管理しますが、こちらはキーと呼ばれる名前をそれぞれのオブジェクトに結びつけた状態で管理します。 キーはNSStringです。オブジェクト全体で一つのものに付随する情報を格納するというような使われ方をします。 例えばある人物に関するデータとして、氏名、年齢、住所、電話番号…と色々な情報がありますが、これらを一つのNSMutableDictionaryに格納することで、 一つのデータ集合体として扱えます。仕組みを理解してしまえば自分でデータ用の構造体などを作るのよりも簡単です。 SQLiteのデータを格納する場合
NSMutableArrayとは NSMutableArrayはNSObjectを親オブジェクトとするオブジェクトの集合を格納するオブジェクトです。順番のあるデータの格納に向いています。 中に入れたオブジェクトはそれぞれ0から順番に番号が割り当てられて管理されます。番号の型はNSUIntegerです。 NSArrayとの大きな違いは、こちらは可変長だということです。プログラム中の好きな場所で要素の数を足したり減らしたりできます。そのためUITableViewの各行のデータを格納するのによく利用されます。なお、NSArrayにあるメソッドはこちらでも全て使えます。そのため以下ではNSMutableArray特有のものだけを取り上げます。 代表的なメソッド(目的別) オブジェクトを末尾に追加したい - addObject: オブジェクトを途中に挿入したい - insertObject:atIn
NSNumberとは NSNumberは数値を格納するオブジェクトです。数値はそのままだとNSArrayやNSDictionaryに格納することができませんが、 一度NSNumberに格納してオブジェクトとして扱えるようにしてしまえば、格納することが出来るようになります。 格納した値を取り出すときには別の型で取り出すことも可能です。数値の型はC言語にあるものは全てあります。 代表的なメソッド(目的別) BOOL型の変数からNSNumberオブジェクトを作りたい - initWithBool: int型の整数からNSNumberオブジェクトを作りたい - initWithInt: float型の変数からNSNumberオブジェクトを作りたい - initWithFloat: double型の変数からNSNumberオブジェクトを作りたい - initWithDouble: NSNumberオ
関連を使った拡張を行う 以前の記事「初めてのCore Data on iPhone」でCore Dataの超簡易サンプルとして紹介した「FirstCoreData」ですが、前回の説明では関連について全く触れていませんでした。 そこで今回は前回のサンプルに手を加えて、関連を使用した発展バージョンにしてみます。ちなみにこれもiPhone SDK 3.1.2用です。 残念ながら現在のXcodeでは操作方法が異なる部分があるため、そのまま応用することはできません。 基本方針 まず、基本的な設計についてですが、関連を使うために2つのエンティティからなるデータベースにします。親オブジェクトの中に子オブジェクトが複数格納されるスタイルです。 とりあえず今回はそれぞれのオブジェクトに名前を付けられるようにし、それをナビゲーションバー付きのテーブルビューで行ったり来たりできるようにします。 名前はテキストフ
アプリケーションのローカライズとは iPhoneアプリケーションはテンプレートから作成した初期段階では、英語にしか対応しません。 システム側が用意しているボタンであれば、そのままでも表示がユーザーの使用言語により変化するものもあります。 でもラベルなどでユーザーの使用する言語により表示内容を変更する場合には、ローカライズを行わなければなりません。 標準言語の変更 まず第一に、そのアプリケーションを日本語のユーザーのみが使う場合を考えてみましょう。 この場合、ユーザーインターフェースの表示は全部日本語で作っているでしょうから、 info.plistファイルに手を加えるだけで事足ります。 Localization native development regionキーの値をJapanに、Localizationsキーの値をJapaneseに変更しましょう。 複数言語への対応 では標準の言語は英
Objective-CでのDelegateとは iPhoneアプリケーション開発において、結構頻繁に出てくるのがこのDelegateという言葉です。プロジェクトを作れば必ず~AppDelegateというクラスが作られますし、 他にも様々な場面で~Delegateというものを目にすることになります。Delegateとは代理人とか代表者とか委譲などという意味があります。 通常あるオブジェクトへと送られてくるメッセージはそのオブジェクトで処理するべきなのですが、いちいちそのオブジェクトのファイルを作るのは面倒という場合があります。 その場合に、別のクラスに送られてきたメッセージを丸投げしてしまうと、そのオブジェクト自体に特有の処理を書くなどしなくて良くなるため便利、というわけです。 たとえば、iPhoneアプリケーションで画面にメッセージを表示するUIAlertViewというクラスがあります。
Core Dataの利用 iPhone SDK 3.0以降ではデータの保存にCore Dataを使う事が出来ます。Core Dataを使ってデータを保存する事で得られるメリットは様々なものがあるため、 これから大量のデータを扱うアプリケーションを作る場合にはCore Dataの使用をまず検討した方が良いでしょう。 このCore Dataを使うためにはいろいろと新しく覚えなければならない事がありますが、はっきり言ってサンプルを見ているだけで理解するのは至難の業です。 初めてCore Dataに触れる人には、サンプルコードを見ても何をやっているのか分かりにくいのです。これはCore Dataの利点でもあるコード記述量の削減が、 逆にコードの個々の繋がりを分かりにくくしてしまっていることが原因でしょう。 そんな状態でいきなりiPhone Developer Centerに掲載されているサンプルを
NSDictionaryとは NSDictionaryはNSArray同様にオブジェクトの集合を格納するものですが、NSArrayとは管理の方法が違います。 NSArrayはそれぞれのオブジェクトに順番に番号をつけて管理しますが、こちらはキーと呼ばれる名前をそれぞれのオブジェクトに結びつけた状態で管理します。 キーはNSStringです。オブジェクト全体で一つのものの状態を表す、というような使われ方をします。 ファイルの持つ様々な情報(ファイルサイズなど)をこのオブジェクトで一まとめにして受け取るというような使われ方をします。 代表的なメソッド(目的別) ファイルにNSDictionaryの内容を保存したい - writeToFile:atomically: ファイルの内容からNSDictionaryオブジェクトを作りたい - initWithContentsOfFile: キーに対応した
UITableViewの使い方2:編集モード編 UITableViewの編集モードで行の挿入・削除・移動を行う方法の説明です。 English top page UITableViewの編集モード ナビゲーションバーなどに編集ボタンを用意すると、そのボタンを押すことでUITableViewを編集モードへ移行させることができます。 編集モードでは新しくセルを挿入したり、今あるセルを削除したり、セルの順番を入れ替えたりと様々な操作を行うことが出来ます。 ここではUITableViewの編集モードの動作設定に使われるメソッドを説明してゆきます。 UITableViewの使い方1と同様にUITableViewはInterface Builder側で作っていて、UITableViewのdataSourceやdelegateがUITableViewControllerに設定されているものとして話を進め
メモリ管理の大まかな原則 C言語と共通の部分について、メモリ管理で気をつけることは特にありません。Cで気をつけることと共通です。 自分がmalloc()で確保したメモリは忘れずfree()で開放しましょうということだけです。従って、多くの場合に問題になるのはObjective-C固有の部分です。 Objective-Cのオブジェクトはretain countというものを持っています。生成すると0から1になります。 そのオブジェクトに関連付けられている変数名でretainをすれば、カウントが1増えます。 releaseをするとカウントが1減ります。run loopと呼ばれるシステムへの応答処理へ入った時、 このカウントが0になっているものはメモリ上から消えるようになっています。 autoreleaseとした場合には、適当と思われる部分で自動的に開放されるので、自分でreleaseを行う必要は
プロパティの基本的な役割 プロパティの基本的な役割は、他のオブジェクトが自オブジェクトの中にある変数やオブジェクトへアクセスする時のルールを決定することです。 その変数やオブジェクトが外から変更可能なのか、オブジェクトを外から変更する場合、外から渡されたオブジェクトをそのまま持つようにするか、 そのコピーをとって持つのかといったこともプロパティで決定します。iPhoneアプリケーションの場合、普通の変数についてはnonatomicとassignを、 自分で使うビューやラベル、配列、ディクショナリーなどにはnonatomicとretainを、文字列やデータなどにはnonatomicとcopyを設定するようです。 BOOL値については細かい属性はつけずそのまま書くだけで良いようです。プロパティを設定する場所はヘッダファイルの@interface宣言の中括弧が終わったところから、 @endで終わ
UITableViewの使い方1:基本編 UITableViewを使う場合に知らなければ困る基本設定の説明です。 English top page UITableViewとは iPod機能でもよくお世話になるリストの表示を受け持つ部分です。セクションにより区切られた中にセルという表示単位を持っています。上下にスクロールする機能を持っているので、表示しきれない分は下にスクロールさせると見ることが出来ます。上部にナビゲーションバーを組み合わせて、階層構造を持つデータの表示に使われることが多いです。システム側が用意するセルはこれまで1行のテキストとイメージを表示する基本機能をもつものだけでしたが、iPhone SDK 3.0になりセルの基本タイプが4種類に拡張されました。UITableViewの動作制御は基本的にそのコントローラーであるUITableViewControllerを通じて行います。
ようこそ iPhone/iPod touch/iPadアプリケーションを開発して、App Storeにて配信しています。 各ソフトの詳細は以下のソフトウェア名をクリックして、各ソフトの紹介ページをご覧ください。 最新の更新: プログラミングの基本項目の一部をiPhone SDK 3.2対応へと書き直しました。 ユニバーサルアプリケーション(iPad対応) Easy RDS 現在配信中のバージョン: 1.3 動作条件: iPhone/iPod touch/iPad、iOS ver.3.1以上 iPhone/iPod touch/iPadのタッチパネルを使って文字や絵を描き、それを素にしてランダムドットステレオグラムを作るソフトです。 バージョンアップによりiPadの画面解像度にも対応しました。iPadでも画面フルサイズ(1024×768ピクセル)のランダムドットステレオグラムを作成できます。
NSArrayとは NSArrayはNSObjectを親オブジェクトとするオブジェクトの集合を格納するオブジェクトです。順番のあるデータの格納に向いています。 中に入れたオブジェクトはそれぞれ0から順番に番号が割り当てられて管理されます。番号の型はNSUIntegerです。 NSArrayの中にさらに別のNSArrayを入れたり、NSDictionaryを入れたりできます。 さらにそのNSArrayやNSDictionaryにNSArrayを格納して…ということで階層構造のデータを構築できます。 代表的なメソッド(目的別) オブジェクトを列挙してNSArrayを作りたい - initWithObjects: ファイルにNSArrayの内容を保存したい - writeToFile:atomically: ファイルの内容からNSArrayオブジェクトを作りたい - initWithConten
NSStringとは NSStringは文字列を格納するオブジェクトです。iPhone内部やインターネット上のファイルの場所を格納するのにも使われ、 その場合に便利なさまざまメソッドが用意されています。C言語などでは文字列は単に""の間に入れるだけですが、 Objective-Cの場合は@""と、頭の部分に@が付きます。 代表的なメソッド(目的別) 文字列からNSStringオブジェクトを作りたい - initWithString: 変数を組み込んだ文字列からNSStringオブジェクトを作りたい - initWithFormat: NSStringオブジェクトの内容をファイルに保存したい - writeToFile:atomically:encoding:error: インターネット上のファイルからNSStringオブジェクトを作りたい - initWithContentsOfURL:e
このページを最初にブックマークしてみませんか?
『混沌のiPhoneアプリケーション工房 - 作者のiTunes Store配信アプリケーションやiP...』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く