ラベル iPhone の投稿を表示しています。 すべての投稿を表示
ラベル iPhone の投稿を表示しています。 すべての投稿を表示

2010年3月7日日曜日

iPhoneアプリ開発(その4):Interface Builder を使って view 作成

iPhoneアプリ開発(その4):Interface Builder を使って view 作成

Interface Builderでviewを新規作成し、xcodeのコードとつなげる手順。

  1. Interface Builderのメニューから[File]-[New]を選択し、表示されたダイアログで[View]を選択してから[choose]ボタンで完了
  2. 表示された空のviewに必要な部品を配置し、メニューから[File]-[Save]を選んでxxx.xibファイルを保存する(このとき表示される「Would you like to add "xxx.xib" to "xxx.xcodeproj"」というダイアログでは追加先プロジェクトを選択して[Add]ボタン押下)
  3. 追加したviewに対応するViewControlerを追加する(xcodeに戻って、メニューから[File]-[New]で表示されるダイアログ中のUIViewController subclassを選択)
  4. RootViewController.h/mに新しいViewControllerを追加する

    RootViewController.h

    #import "XXXViewController.h"
    @interface RootViewController : UITableViewController {
    XXXViewController* *xxxViewController;
    }
    @property(nonatomic,retain) XXXViewController* *xxxViewController;
    @end

    RootViewController.m

    @synthesize xxxViewController;
  5. RootViewと新しいViewの画面遷移を実装する

    RootViewCotnroller.m:root view => xxx view

    	View2ViewController *xxxViewController = [[View2ViewController alloc] initWithNibName:@"XxxView" bundle:nil];
    [self.navigationController pushViewController:xxxViewController animated:YES];
    [xxxViewController release];
  6. View Controller Identityの設定(xxx.xibを選択してInterface Builderの"File's Owner"を選択した上で、メニューから[Tools]-[Identify Inspector]を起動して、"class"のドロップダウンからXxxViewControllerを選択する)
  7. View Connectionの設定([Tools]-[Connection Inspector]を選択して、"New Referencing Outlet"をドラッグして"File's Owner"にドロップする。表示された"view"を選択すればOK)
こんな感じです。
参考にしたblog:
http://icodeblog.com/2008/08/03/iphone-programming-tutorial-transitioning-between-views/




2009年8月9日日曜日

iPhoneアプリ開発(その2:Objective-C編)

今日はObjective-Cの学習をメインに行いました。
C言語を拡張してオブジェクト指向対応させた言語ということでC++と似たものかと思っていましたが、全く別物だということが分かりました。
C++が静的型付け言語であるのに対し、Objective-Cは動的型付け言語になっています。
カテゴリ機能により既存クラスにメソッドを追加できる所などは、ruby等のスクリプト言語を想起させます。
その他、注目ポイントを列挙しておきます。
  • プロトコル(形式プロトコル)は Java の Interface 相当のもの
  • セレクタは Java の Reflection における Method クラスのようなもので、@selector指示子もしくはNSSelectorFromStringメソッドで取得できる
  • 任意のインスタンスにおいて class メソッドで Class インスタンスを取得でき、クラスのメタ情報を取得できる
  • NSObject は以下のようなメソッドを持っていて、Class やセレクタと組み合わせて様々な情報を得ることができる
    • respondsToSelector: 引数で渡されたセレクタが実装されているかどうかを調査
    • performSelector: セレクタで渡されたメソッドを呼び出す
    • isKindOfClass: 継承関係の調査
    • isMemberOfClass: 継承関係ではなくそのクラス直属のインスタンスかどうかを調査
    • description クラス名を文字列で返す
今日の学習は以下のサイトを利用しています。非常に分かりやすくまとまっていて役に立ちました。
http://journal.mycom.co.jp/column/objc/index.html

iPhone自体の勉強はまた明日・・・。


2009年8月8日土曜日

iPhoneアプリ開発(その1:素朴な疑問)

iPhoneアプリ開発を始めました。
ちなみに私はObjective-Cは初心者です。CとC++についての知識はありますが。
先日購入したmac miniにiPhone SDkをインストールし、まずはサンプルプログラムをさわってみようかなということで、AppleのDevelovper ConnectionからTochesというサンプルプログラムをダウンロードしてみました。
このサイトを参考に環境構築。

そして下記のURLをからサンプルを入手して、ビルド実行してみたものの、根本的なところでつまずいてしまいました。

以下がそのつまずき一覧です。
  • MyViewクラスでイベントに応じた実装がされているのですが、このViewがどこから登録されているのかが分からない。
  • ReadMeを読むとマルチイベントを有効にするにはInterface BuilderかsetMultipleTouchEnabledの呼び出しでフラグを立てる必要がある、とあるがどちらのやり方もまだ分からない。
  • mac上で動作するiPhone Emulatorでピンチ(拡大・縮小の操作)の操作ができない。アイコン操作では無理な気がするのだが可能なのだろうか・・・?
学習が進めばこれらの疑問も解決すると思っているのですが、まだまだいろいろつまずきポイントがありそうです。

初めてのmacなのでmac OS X そのものにつまずいている点もあります。ついでにそれらも列挙しておきます。
  • emacs がターミナルの中でしか起動しない。"-nw"オプションをつけている訳でもないのに。
  • chshでshellをtcshに変えたがそれが反映されない。
  • Xcodeのキーバインドは変更できるのかな(ググればすぐにでてきそうだけど)。
このあたりも解決したものからエントリにしていきたいです。


2009年6月24日水曜日

ティザリング解禁?

SLASH GEAR に「ティザリング(とMMS)のハックに成功!」という記事が掲載されていました。
http://www.slashgear.com/iphone-os-3-0-tethering-and-mms-hack-released-1847342/
iPhone 3.0 から以下のサイトへアクセスして、「ローカル・キャリア・プロファイル・コンフィグレーション・ファイル」をインストールせよ、とのことです。
http://help.benm.at/help.php

自分は勇気が無くて試せていませんが、ソフトバンクでも使えるのでしょうかねぇ。
# 言うまでもないとは思いますが、試す方は at your own risk で・・・。

おまけ。
YouTubeには設定ビデオが公開されているようです。

Jailbreakじゃないよ。タダだよ。と勇ましいタイトルが・・・。