シェーダファイルを追加し、NSBundleでパスを取得しようとしてみました。
しかし、nilになってしまいます。
対処は次のようにする。
ターゲット→プロジェクト名のなにか→ソースをコンパイル
にあるシェーダファイルを
ハンドルリソースをコピー
に移動する。こうするとアプリケーションに含まれるようになります。
2011年1月23日日曜日
2011年1月20日木曜日
2010年10月26日火曜日
AVFoundation
主にカメラ周りでUIIMagePickerControllerの代替手段を調査中です。
AVCaptureSession
AVCaptureStillImageOutput
AVCaptureVideoDataOutput
DelegateのcaptureOutputを利用することでカメラのリソースを取得することができます。
AVCaptureSession
- isRunningがTRUEのときはcanAddInputやaddInputのadd系が使えません。一度stopRunningする必要があります。
AVCaptureStillImageOutput
- AVCaptureVideoDataOutputなどがaddされていると、captureStillImageAsynchronouslyFromConnectionが、AVCaptureStillImageOutputを単一でaddしているときと比べて動作が異なるようです。
AVCaptureVideoDataOutput
DelegateのcaptureOutputを利用することでカメラのリソースを取得することができます。
2010年10月20日水曜日
アプリ申請手順
1.アイコンの用意
以下、2つのアイコンサイズが必要です。またそれぞれは形式に注意する必要があります。
57 x 57(PNG)
512 x 512(JPEG)
2.スクリーンショットの用意
App Storeで利用するスクリーンショットを用意します。これも形式に注意します(JPEG)。オーガナイザから取得するといいと思います。
3.Distributionビルド
Distributionでのアプリビルドを行います。
3.1.Distribution Certificateの作成
メンバセンター → iOS Provisioning Portal → Certificatesに移動します。ここで前回のDevelopmentタブではなく、Distributionタブを開きます。ここで前回のキーチェーンアクセスで作成した証明書を利用してDistribution用のCertificateを作成します。
作成し終わったら、ダウンロードしてダブルクリックでインストールします。インストールしないと次のプロビジョニングファイル作成が行えません。
3.2.Distribution Provisioningの作成
同様にProvisioningに移動して、Distributionタブからプロビジョニングファイルを作成します。Developmentで作成されたプロビジョニングファイルと同じProfile Nameは利用できないようです。
作成し終わったら、ダウンロードしてオーガナイザに登録します。
3.3.プロジェクト設定
ビルド前にいくつか設定を行います。
3.3.1.plist設定
とりあえず、以下を確認しておくとイイかもしれません。
・Bundle Display Name:iPhone上では10文字以上は省略されてしまうので注意。
・Icon file:アイコンファイルを設定します。
・Localization native development region:japanでもなんでもいいようです。
・Bundle Identifier:App IDで設定されたものを適切に設定しないとビルドできません。
・BUndle Version:アプリのバージョンを指定します。
3.3.2.プロジェクト設定
XCodeのプロジェクト → プロジェクト設定を編集から構成タブを開きます。ここでReleaseをコピーしてDistributionなどの新しい構成を用意しておくと便利です。用意したら、ビルドタブからコード署名IDを先ほど作成したDistribution用のプロビジョニングファイルを設定します。
3.3.3.ビルド
ビルドターゲットをDeviceとDistributionに変更し、ビルド → ビルドでビルドだけ行います。
3.3.4.圧縮
作成されたアプリを圧縮します。アプリはプロジェクトディレクトリ以下のbuild → Distribution-iphoneos → xxxx.appを右クリックから圧縮を選択して作成します。
ここで、xxxx.appは拡張子が表示されていない場合があります。そのときはxxxxになります。(xxxx.app.dSYMではないほうです。)
また、Distribution-iphoneosディレクトリもDistributionプロビジョニングを適用した構成フォルダ以下にあるappファイルを選択することになります。
4.iTunes Connectからの申請
DevCenterなどのリンクからiTunes Connectにアクセスします。Manage Your Applicationsをクリックして申請ページに移動、Add New Applicationをクリックします。
4.1.New Application
4.2.App Information
4.3.Rights and Pricing
4.4.Version Information
4.5.Application Loader
諸情報を入力し終わるとApplication Loaderをダウンロードする画面に遷移します。バイナリのアップロードをこれを利用して行います。アップロードするIDを選択して、バイナリを選択するだけです。
以下、2つのアイコンサイズが必要です。またそれぞれは形式に注意する必要があります。
57 x 57(PNG)
512 x 512(JPEG)
2.スクリーンショットの用意
App Storeで利用するスクリーンショットを用意します。これも形式に注意します(JPEG)。オーガナイザから取得するといいと思います。
3.Distributionビルド
Distributionでのアプリビルドを行います。
3.1.Distribution Certificateの作成
メンバセンター → iOS Provisioning Portal → Certificatesに移動します。ここで前回のDevelopmentタブではなく、Distributionタブを開きます。ここで前回のキーチェーンアクセスで作成した証明書を利用してDistribution用のCertificateを作成します。
作成し終わったら、ダウンロードしてダブルクリックでインストールします。インストールしないと次のプロビジョニングファイル作成が行えません。
3.2.Distribution Provisioningの作成
同様にProvisioningに移動して、Distributionタブからプロビジョニングファイルを作成します。Developmentで作成されたプロビジョニングファイルと同じProfile Nameは利用できないようです。
作成し終わったら、ダウンロードしてオーガナイザに登録します。
3.3.プロジェクト設定
ビルド前にいくつか設定を行います。
3.3.1.plist設定
とりあえず、以下を確認しておくとイイかもしれません。
・Bundle Display Name:iPhone上では10文字以上は省略されてしまうので注意。
・Icon file:アイコンファイルを設定します。
・Localization native development region:japanでもなんでもいいようです。
・Bundle Identifier:App IDで設定されたものを適切に設定しないとビルドできません。
・BUndle Version:アプリのバージョンを指定します。
3.3.2.プロジェクト設定
XCodeのプロジェクト → プロジェクト設定を編集から構成タブを開きます。ここでReleaseをコピーしてDistributionなどの新しい構成を用意しておくと便利です。用意したら、ビルドタブからコード署名IDを先ほど作成したDistribution用のプロビジョニングファイルを設定します。
3.3.3.ビルド
ビルドターゲットをDeviceとDistributionに変更し、ビルド → ビルドでビルドだけ行います。
3.3.4.圧縮
作成されたアプリを圧縮します。アプリはプロジェクトディレクトリ以下のbuild → Distribution-iphoneos → xxxx.appを右クリックから圧縮を選択して作成します。
ここで、xxxx.appは拡張子が表示されていない場合があります。そのときはxxxxになります。(xxxx.app.dSYMではないほうです。)
また、Distribution-iphoneosディレクトリもDistributionプロビジョニングを適用した構成フォルダ以下にあるappファイルを選択することになります。
4.iTunes Connectからの申請
DevCenterなどのリンクからiTunes Connectにアクセスします。Manage Your Applicationsをクリックして申請ページに移動、Add New Applicationをクリックします。
4.1.New Application
- Primary Language:日本だけでの公開ならJapan、いろいろな言語圏で公開したいならEnglishにします。
- Company Name:おそらく、最初の登録がすべてになる気がします。
4.2.App Information
- App Name
- SKU Number
- Bundle ID
4.3.Rights and Pricing
- Availability Date
- Price Tier
- Discount for Educational Institutions
4.4.Version Information
- Metadata
- Version Number
- Description
- Primary Category
- Secondary Category(optional)
- Keywords
- Copyright
- Contact Email Address
- Support URL
- App URL(optional)
- Review Notes(optional)
- Rating
- EULA
- Images
4.5.Application Loader
諸情報を入力し終わるとApplication Loaderをダウンロードする画面に遷移します。バイナリのアップロードをこれを利用して行います。アップロードするIDを選択して、バイナリを選択するだけです。
2010年8月27日金曜日
2010年7月21日水曜日
パフォーマンス計測❶
Sharkを利用するのは次回。
とりあえずはコードレベルで計測する方法を。。。
NSDate* start = [NSDate date];
// 計測したい処理
NSDate* end = [NSDate date];
NSTimeInterval time = [end timeIntervalSinceDate:start];
timeはdouble型のようです。
とりあえずはコードレベルで計測する方法を。。。
NSDate* start = [NSDate date];
// 計測したい処理
NSDate* end = [NSDate date];
NSTimeInterval time = [end timeIntervalSinceDate:start];
timeはdouble型のようです。
2010年7月19日月曜日
デフォルト起動時の画像を設定する
起動時のアニメーション時に表示される画像の設定方法。ファイル自体はdefault.pngでリソース直下に保存しておけば、設定なしで自動で使用されるようです。
スクリーンショットからお手軽に作成する方法を記載します。
❶プロジェクトの「ウインドウ」から「オーガナイザ」ウインドウを開きます。
❷デバイスの画面の「Screenshots」タグを開きます。
❸右画面下にCaptureボタンがあるので、クリックします。
そうすると、自動でdefault.pngが作成され、リソースに登録されるようです。
スクリーンショットからお手軽に作成する方法を記載します。
❶プロジェクトの「ウインドウ」から「オーガナイザ」ウインドウを開きます。
❷デバイスの画面の「Screenshots」タグを開きます。
❸右画面下にCaptureボタンがあるので、クリックします。
そうすると、自動でdefault.pngが作成され、リソースに登録されるようです。
アイコンの作成と設定
アイコンの作成は57x57のサイズのようです。
❶PNG形式で57x57のアイコンを用意します。
❷プロジェクトのリソースに登録します。
登録時は「デスティネーショングループのフォルダに項目をコピー」にチェックを入れます。
❸xxxx.info.plistを編集します。
Icon.pngの項目にファイル名を入力します。リソース直下ならパスはファイル名だけでいいはずです。
❶PNG形式で57x57のアイコンを用意します。
❷プロジェクトのリソースに登録します。
登録時は「デスティネーショングループのフォルダに項目をコピー」にチェックを入れます。
❸xxxx.info.plistを編集します。
Icon.pngの項目にファイル名を入力します。リソース直下ならパスはファイル名だけでいいはずです。
2010年6月10日木曜日
iOS4 Beta GM seed / Apple
さすがにGMまでくると実用に耐えると考えて入れてみました。
■マルチタスク
アプリ対応が必要なのですかね、結局は起動し直しているようです。また、起動したアプリがずっと残っているのが気になります。ユーザは気にしなくてもいい設計だとかいいつつも、切り替えるときに大量にあるアプリから探すのは面倒。
■デジタルズーム
使うかどうかは別として、ちょっとイイですね。
■壁紙
iPadとは違い、画面面積の大半をアイコンが埋め尽くしてしまうので微妙かなとは思います。でもこれもイイです。
■フォルダ
割と使い勝手がいいフォルダ。しかし、、、フォルダにアプリを登録するときにアイコンの入れ替えとご判断されることも。。。
■顔文字
日本語版のキーに顔文字ボタンが。。。なんかイイ。
○いいなと思ったところ。
・開発者登録していたのでGMだけどいち早く試せたところ。
○ これはちょっと、、、と思ったところ。
・フォルダの位置変更と登録のディテクションがイマイチ。
全体的にはうれしい対応が多いですが、3GSでは少し引っかかる用になった気がします。。。
■マルチタスク
アプリ対応が必要なのですかね、結局は起動し直しているようです。また、起動したアプリがずっと残っているのが気になります。ユーザは気にしなくてもいい設計だとかいいつつも、切り替えるときに大量にあるアプリから探すのは面倒。
■デジタルズーム
使うかどうかは別として、ちょっとイイですね。
■壁紙
iPadとは違い、画面面積の大半をアイコンが埋め尽くしてしまうので微妙かなとは思います。でもこれもイイです。
■フォルダ
割と使い勝手がいいフォルダ。しかし、、、フォルダにアプリを登録するときにアイコンの入れ替えとご判断されることも。。。
■顔文字
日本語版のキーに顔文字ボタンが。。。なんかイイ。
○いいなと思ったところ。
・開発者登録していたのでGMだけどいち早く試せたところ。
○ これはちょっと、、、と思ったところ。
・フォルダの位置変更と登録のディテクションがイマイチ。
全体的にはうれしい対応が多いですが、3GSでは少し引っかかる用になった気がします。。。
2010年6月4日金曜日
2010年5月19日水曜日
iPhoneアプリの高速化❶
作成したアプリが重い。。。画像処理を基本としているので遅くなるのは承知の上だったのですが、、、
原因はコンパイルオプションの設定。
【プロジェクト】 → 【プロジェクト設定を編集】
【GCCx.x-コード生成】の【Compile for Thumb】のチェックを外す
通常はコードサイズが35%ほど削減できるThumbモードと浮動小数演算の処理速度が向上するARMモードの2つが用意されています。デフォルトではThumbになっているので、これを切り替えるだけでOKです。
詳しくは
http://developer.apple.com/jp/iphone/library/documentation/Xcode/Conceptual/iphone_development/120-Running_Applications/running_applications.html
原因はコンパイルオプションの設定。
【プロジェクト】 → 【プロジェクト設定を編集】
【GCCx.x-コード生成】の【Compile for Thumb】のチェックを外す
通常はコードサイズが35%ほど削減できるThumbモードと浮動小数演算の処理速度が向上するARMモードの2つが用意されています。デフォルトではThumbになっているので、これを切り替えるだけでOKです。
詳しくは
http://developer.apple.com/jp/iphone/library/documentation/Xcode/Conceptual/iphone_development/120-Running_Applications/running_applications.html
2010年3月26日金曜日
UIImageWriteToSavedPhotosAlbum
UIImageを写真アルバムに保存する場合はこの関数を利用するようです。
サイズにもよりますが、保存には結構時間がかかるようです。
途中でアプリケーションを終了させる場合などには、保存処理待ちなどの対策がいるようです。
-(void)saveFinished:(UIImage*)image
didFinishSavingWithError:(NSError*)error
contextInfo:(void*)contextInfo
{
// 終わったら呼ばれる関数;
}
のような感じのメッセージを、UIImageWriteToSavedPhotosAlbumのセレクタに渡して、終了時のコールバックを受けるまで待つようにするのがいいようです。
サイズにもよりますが、保存には結構時間がかかるようです。
途中でアプリケーションを終了させる場合などには、保存処理待ちなどの対策がいるようです。
-(void)saveFinished:(UIImage*)image
didFinishSavingWithError:(NSError*)error
contextInfo:(void*)contextInfo
{
// 終わったら呼ばれる関数;
}
のような感じのメッセージを、UIImageWriteToSavedPhotosAlbumのセレクタに渡して、終了時のコールバックを受けるまで待つようにするのがいいようです。
2010年3月24日水曜日
UIImage::imageNamed
UIImageViewのimageにimageNamedで作成したUIImageを割り当て、後に別のUIImageと差し替えようとしたところ、エラーで落ちてしまった。
原因はimageNamed。
下記のようにすることで解決した。
原因はimageNamed。
下記のようにすることで解決した。
NSString* pImageNmae = [[NSBundle mainBundle] pathForResource:pOffImagePath ofType:@"png"];
UIImage* pUIImage = [[UIImage alloc] initWithContentsOfFile:pImageNmae];
登録:
投稿 (Atom)