【iPhone】メソッドを遅延実行させる

概要

指定したメソッドを指定した時間後に実行させる方法。
また、view.frameでサイズを指定したはずなのに正しく表示されない場合などの対応策(あまり推奨はできないが。。)

方法

下記のようなメソッドがあり1秒後に実行したい場合、

- (void)hoge

下記のようにする。

[self performSelector:@selector(hoge) withObject:nil afterDelay:1];

上記のように実行すると、hogeが1秒後に実行される。

また、メソッド内でviewのサイズを指定して生成したはずなのにうまく表示されない場合などは、

[self performSelector:@selector(createView) withObject:nil afterDelay:0];

のようにするとうまく表示される場合がある。

【iPhone】NavigationBarに任意の色を設定し半透明にする。

概要

NavigationBarに任意の色を設定し、半透明にする方法。

方法

viewDidLoadなどに下記を記述する。
この例ではnavbarをオレンジ色に設定し、透過している。

self.navigationController.navigationBar.tintColor    = [UIColor orangeColor];
self.navigationController.navigationBar.alpha        = 0.7f;
self.navigationController.navigationBar.translucent  = YES;

この部分で色を設定

self.navigationController.navigationBar.tintColor = [UIColor orangeColor];

この部分で透過

self.navigationController.navigationBar.alpha  = 0.7f;
self.navigationController.navigationBar.translucent = YES;

おすすめの書籍

iOS開発におけるパターンによるオートマティズム

iOS開発におけるパターンによるオートマティズム

iOSアプリ開発におけるパターン(delegateなど)を学ぶことができます。

【iPhone】PCH file built from a different branch ((clang-425.0.27)) than the compiler【Xcode】

概要

下記エラーの解消方法

PCH file built from a different branch ((clang-425.0.27)) than the compiler

Xcodeをバージョンアップしたら出るようになった?

解消方法

上部メニューから「Product」-「Clean」を実行。
下記でも直るらしい。
エラー:PCH file built from a different branch - アプリ開発のメモ帳

【iPhone】XcodeプロジェクトをBitbucketで管理する

概要

XcodeのプロジェクトをgitとBitbucketで管理する。
BitbucketはプライベートRepositoryが無料でいくらでも利用できるので、外部に公開したくないソースなどを管理するのに便利。
*GithubではプライベートRepositoryが有料。
なので、外部に公開するソースはGithub、公開したくないソースはBitbucket、と使い分けるのが良い。

1. Bitbucketに登録する

下記URLより無料登録。
Githubのアカウントがある場合は連携することで簡単に登録できる。
Sign up for a Bitbucket account

2. BitbucketでRepositoryを作成

「Create」から新しいRepositoryを作成する。
このときに「This is a private repository 」をチェックすると外部に公開されないRepositoryを作成可能。
RepositoryページトップURLの末尾に「.git」と付けたものを後でXcode側で指定する。
例、「https://ユーザ名@bitbucket.org/ユーザ名/小文字のRepository名.git」

3. Xcodeの準備

Xcodeでプロジェクトを作成する際に「Create local git repository for this project」にチェックを付ける。
XcodeからCommitする。ファイル名の横に「M」と表示されている場合はCommitされていないということなのでCommitする。
Commitの仕方は、メニューから「File」-「Source Control」-「Commit...」
Commitする際にコメントを忘れないこと。コメントを入れないとエラーとなりCommitできない。

4. XcodeでBitbucketをRemote Repositoryに指定する

Xcodeのメニューから「Window」-「Organizer」を選択。
「Repositories」を選択。左メニューから「Remotes」を選択。
下部、「Add Remote」を選択し、Remote Nameにはbitbucketなど適当に入力。
Locationには、「2. Repositoryを作成」で作成したRepositoryのURLを入力。
URLの形式は、「https://ユーザ名@bitbucket.org/ユーザ名/小文字のRepository名.git」
入力したら、「Create」を選択。
「Username」と「Password」に、それぞれBitbucket登録時に設定したものを入力する。

5. XcodeからRemote RepositoryにPushする

適当にファイルを修正して、Commitする。
その後、メニューから「File」-「Source Control」-「Push...」を選択。
先ほど設定したRemote Repositoryが選択できるはずなので選択する。

以上で、Bitbucket側にソースが登録される。
流れとしては、「Repository作成」-「XcodeでRemote Repositoryを設定」-「Commit」-「Push」となる。
無料なので気軽に始めると良いと思います。

【iPhone】アプリ申請時に必要な画像まとめ

概要

iTunesConnectでアプリを申請する際に必要な画像まとめ。
今回はiPhoneアプリのみを申請する場合。

AppStore表示用画像

■AppStoreで表示される大きいicon
サイズ: 1024x1024
■AppStoreで表示されるアプリ説明画像
・3.5inch端末用(iPhone4など)
サイズ: 640x960 or 640x920(ステータスバーの有無)
枚数: 1枚〜5枚
・4inch端末用(iPhone5など)
サイズ: 640x1136 or 640x1096(ステータスバーの有無)
枚数: 1枚〜5枚

上記画像はシミュレータか実機でスクリーンショットを撮ればOK。
もしくは、上記サイズになるよう自分で作成する。
一番最初にアップロードした画像が、アプリを検索した際などに表示されるので、プロモーション用画像などにすると良い。

実機表示画像

■アプリicon画像
サイズ: 57x57, 114x114, 120x120(iOS7)
Targetsを選択し、Generalタブ内のApp Iconsに画像を設定する。
iconの光沢を消したい場合は、「プロジェクト名-Info.plist」内の、「Primary Icon」の+ボタンから「Icon already includes gloss effects」を追加し、「YES」に変更する。

画像を用意する簡単な方法

AppStore表示用画像とアプリicon画像を用意する

まず、1024x1024の画像を作成。
その後、convertコマンドでサイズを変更。
convertはImageMagickをインストールすることで使用可能になります。
下記は1024x1024の画像を、114x114の画像に変換するコマンドです。

$ convert -geometry 114x114 1024x1024_icon.png icon@2x.png

シミュレータでスクリーンショット

iPhone4, 5の切り替えはシミュレータの「ハードウェア」->「デバイス」で可能。
スクリーンショットは「ファイル」->「スクリーンショットを保存」で取得。

おすすめの書籍

iOS開発におけるパターンによるオートマティズム

iOS開発におけるパターンによるオートマティズム

iOSアプリ開発におけるパターン(delegateなど)を学ぶことができます。

【iPhone】core-plotで小数点以下を表示させない

概要

core-plotを使用した場合、デフォルトでは小数点以下まで表示されてしまう。
これを小数点以下を表示しないよう設定する。
例、5000.0 -> 5000

小数点以下を削除

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setMaximumFractionDigits:0];
x.labelFormatter = formatter;
y.labelFormatter = formatter;

【Android】実行に失敗する 「Android Packaging Problem」

概要

Androidの開発環境を準備して、いざアプリを実行しようとすると下記のようなエラーが出て実行できない!
そんな時の対処法。

Your project contains error(s),please fix them begore running your application

1, 「クリーン」を実行する

Eclipseの「プロジェクト」→「クリーン」を実行する。
それでもだめな場合は、ソース内に空白を入れて消すというような編集動作をしてから再度クリーンを実行する。

2, 「debug.keystore」を作り直す

自分の場合はこちらの方法で実行できるようになりました。
Eclipseの「環境設定」→「Android」→「ビルド」に書かれている「debug.keystore」のパスを確認。
通常、Macの場合は「~/.android/debug.keystore」にあるはずです。
上記「debug.keystore」のバックアップを作成後に削除。
下記コマンドで再作成。パスワードを求められるので、好きなものを入力。

$ keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000 -dname "CN=Android Debug,O=Android,C=US"

再作成後、Eclipseを再起動してビルドを実行する。

keystoreの内容は下記コマンドで参照できます。

keytool -list -v -keystore debug.keystore