2010年10月2日

Bootcampでの起動OS切り替え

Macbookでは再起動前にoptionキーを押したままにしておけば、切り替え画面がでてきたのに、なぜかiMacでは出てこない。
で、Google先生で探したところ、ありました!!

Mac起動時の「ボォーン」っという音がした時にOptionキーを押し始めればバッチリだそうです。やってみたら確かに切り替え画面がでてきました。

めでたしめでたし。

2010年9月6日

プロモーション活動

自作のiPhoneアプリをやっと申請したけど、やっぱりアップしただけでは
閑古鳥が鳴いています。。。

普通は作った製品に対してプロモーション活動を行うのが基本!って
ことで、AppBank様のオフ会参加&ギフトの申し出をさせてもらいました。

これで、何かしらのきっかけになれば良いなぁ・・・。

ちなみに、「B-CAL+」というエンジニア向け電卓ですので、
みなさま、よろしくお願い申し上げます。(笑

2010年9月3日

iPhoneアプリ申請完了後のPreview文変更

自作iPhoneアプリのAppleへの申請が完了し(だいたい申請から1週間掛る)、
ふとiTunesで日本語のアプリ登録を見たところ、アプリ名が違う。。。ということに
気がついた。

で、直そうとしたが、説明は後から変更可能だが、アプリ名は変更できない。
ローカライズのプロファイルを1回消してから、もう1回作りなおせば良いかなっと
安易に考えて、一度プロファイルを消したところ、、、

どうやら作れないようで、
「もう申請時にレビューしてるから、次のバージョン登録時にしてね」って警告されました。

あーーー。これで日本語の説明がなくなっちゃったよ(涙

ローカライズの登録をする時は、アプリ名、キーワード これは後から変更できないので
注意して記入するようにしましょう。

2010年8月29日

開発途中からのファイル名やクラス名の変更

開発途中で設計変更によってクラス名やファイル名を変更したい場合ってよくありませんか?
クラス名を変更するにしてもXIBとの関係もあって、なかなか手間で変更できません。


そんな時に便利な機能がX-Codeにはあるんですね!


変更したいクラス名をヘッダ上で選択して、メニューから編集、リファクタリング。
これで全部お任せで任意の名前に変更できます。クラス名からファイル名、ファイル内で使用されている部分やXIB内まで、全部マルッと一括置換されます。


これで設計変更も怖くありませんねぇ・・・。

2010年8月28日

X-Codeでのバージョン管理

X-code3.0を用いたSubVersionによるバージョン管理の方法。
プロジェクト内には、管理しなくても良いファイルもあるので、その辺りは
除外ファイルの指定をできるように設定。


#1
新規リポジトリの作成

Terminalの起動
事前にリポジトリを作成する場所にフォルダを生成しておく。
(/users/xxxxxx/Develop/svn/iPhone/appなど)

svnadmin create <リポジトリのパス>
(svnadmin create /users/xxxxxx/Develop/svn/iPhone/app)



#2
SubVersionの除外ファイルの設定

Terminalの起動
cd .~subversion
vi config

config内のSubVersionの設定を下記のように変更。
------- config設定内 --------
[miscellany]

// 元の設定
#global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store 


// 変更後の設定
global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store *.mode1 *.mode1v3 build *.pbxuser
-----------------------------------

#3
X-codeの設定

X-codeの環境設定からSCMの設定を行う。
名前:アプリ名(わかりやすいものを適当に)
URL:file:///<プロジェクトまでのパス>
後はURLから自動的に追加されます。
URLを設定して「認証されました」と表示されてたらOK。

ただし、パスの間に日本語や記号が入っていると、NGになる場合があるので注意。
(これを解決するのにかなり時間がかかりました。。。)

後はリポジトリ内にコードを読み込めば完了。


メモリ警告とViewのアンロード

Appleのドキュメントには、メモリ警告時にViewがアンロードされると書かれているが、iPhoneシュミレータで実験してもなぜかviewDidUnloadがコールされない・・・。

っと思っていたら、どうやら裏に回ったViewや非表示のビューだけがアンロード対象となるらしく、実際にフリップビューを表示させてからメモリ警告をエミュレートすると、ちゃんとviewDidUnloadがコールされた。

ただし、アプリがバックグラウンドで動作している場合にはコールされないようでした。

2010年8月27日

起動画面のままフリーズ。。。

自作のアプリと別のアプリの間でバックグラウンド切り替え(HOMEボタンダブルクリックで切り替えれるやつ)を行っていると、自作アプリが起動画面のまま固まってしまう事がある。
HOMEボタンを押すと、ホーム画面に戻るが、自作アプリを選択すると、やっぱり起動画面で固まってしまう。
デバッガで確認すると、どうみてもアプリのメインルーチン自体も呼び出されていない。(汗

Google先生に尋ねてみても、同じ症状にはヒットせず。

とりあえず、NSLogを外してみると、なんだか調子がいい♪ ように見える・・・。
まったく原因不明ですが、アプリのコードが一切呼び出されていないので、どうする事も出来ず、しばらく様子を見るしかないか。

2010年8月19日

iPhone4 Retina Display対応

iPhone4になってそれ以前のiPhoneよりも高解像度化(縦横2倍)された訳だが、
アプリ側での対応方法を分かりやすく説明しているサイトがあった。

http://d.hatena.ne.jp/KishikawaKatsumi/20100707/1278522113

画像として、通常用と高解像度用の2種類の画像ファイルを用意する必要があるそうな。
Interface Builderのボタンに設定する画像も同じように2つ用意する事で、自動的に
割り振ってくれる?(その辺りの情報が見当たらないが、エミュレータで見る限りでは
割り振ってくれていそう)

ってことで、画像リソースは以下2つのものを用意する。
  • 画像ファイル名.png 通常版
  • 画像ファイル名@2x.png 高解像度版




アップルによる公式ガイドは以下から
Supporting High-Resolution Screens

続・起動画面

前回、起動画面の画像をファイル名を変更して替えれば・・・のような事を書いたが、
その後いろいろ調べたところ、それはできない事が分かった。
(Appleの純正アプリは、それをやってるらしいが)

結局、AppStoreに申請する時に署名したバンドル内の情報は一切書き換えできないため、
その一部であるDefault.pngもできないってことか。

2010年8月12日

起動画面

アプリ起動時にズームインするような効果でアプリ画面が表示されるが、
あのアプリ画面はアプリパッケージ内のルートにある”Default.png”という名前で配置した
画像を読み込んで表示し、即効起動されたように見せているらしい。
(さっすがアップル芸が細かいねぇ)
”Default.png”無しの場合、起動直後は黒い画面で起動された。

起動画面が1つしか指定できないとすると、起動画面が固定的でない、
縦と横でUIが違う場合はどうするのか?

Webを検索してみたが、あまり情報が無い。
で、おそらくアプリ側で直接”Default.png”の画像ファイルを更新してやることで、
終了直後の状態を再現できるのかなーっと、考えている。
ファイル名を変えて幾つか用意しておき、状況に応じてファイル名を”Default.png”に
変えたら実現できそうな気がしている。

ちなみにAdobeのサイトににアイコンと起動画面に関しての説明があった。

2010年8月10日

アプリの状態保存

iPhoneアプリはいつでも起動と終了ができるので、前回の状態を再開するために、アプリの状態を適当に保存しておかなくてはいけない。
で、どうやって保存すればよいのか調べてみたら「NSUserDedaults」クラスを使って保存できる事が分かった。

今回の用途だとコントロール状態の保存なので、タイミングとしてはViewの切り替え時がよさそう。
Viewの切り替えだと以下のイベントで保存と読込みを行えばよい。


ちなみに保存される場所は、シュミレータの場合
~/Library/Application Support/iPhone Simulator/User/Applications/(インストールする度に変わる文字列)/Library/Preferences/(Bundle Identifier).plist

実機の場合、
/var/mobile/Applications/(インストールする度に変わる文字列)/Library/Preferences/(Bundle Identifier).plist
に保存されるらしい。

まぁ、直接参照する事は無いと思うのですが・・・。