祝! iTunes App Storeに並びました!
こちらがサポートページとなっております。
無料アプリなので気軽にお試し下さい。(新しいブログデザインにしたら、トラックバックURLがよくわからないの巻き)
気まぐれ日誌 | 1997/07/07 より
祝! iTunes App Storeに並びました!
こちらがサポートページとなっております。
無料アプリなので気軽にお試し下さい。(新しいブログデザインにしたら、トラックバックURLがよくわからないの巻き)
Xcode 4 とか
便利になっているような気がしますが、あまりに変わりすぎです。何がどこに行ったのかさっぱりわからないという。一部は日本語訳されていたメニューとかの表示もすっかりそぎ落とされてシンプルに英語表記に。そして、インストール直後にオンラインでリファレンスをダウンロードするらしく、拙者のMacだと1時間ぐらいほぼ操作不能な状況になりました。しようがないので終わるまで放置していたらいつの間にか仮想記憶メモリが4GBを超えて異常終了してました。困ります。
iOS 4.3 とか
iPhone 3G とかが切り捨てられたりしてそれは酷いとか思っていたけれど、気のせいじゃなければプロジェクトの標準設定で ARM v6 アーキテクチャが切り捨てられている感じです。(3Gまでがv6で3GSからがv7なんですってよ)
これが火種になって、少し昔にビルドして使い回していたOpenCV-2.0.0のスタティックリンクライブラリが、armv6なんぞ知らんとかいって今開発している最中のアプリがビルドエラーを吐きまくる状況になりました。困ります。
思い出しながらライブラリのコンパイル設定を調査生成するスクリプトの中に書いてある対象SDKを4.0から4.3へ、対象アーキテクチャもarmv6からarmv7へ変更してメイクファイルを再度生成してコンパイルして、出来たライブラリをXcode 4であっち探しこっち探ししながらアプリのプロジェクトに組み込んで、最終的にどうにかビルド出来たのですが、解決するのに4時間ぐらい費やしました。
とは言っても、なんとかかんとかオーバードライブ!とか叫ぶわけではないですけど。(わかりにくいネタ)
iPhoneのプログラミングで、画面遷移アニメーションって簡単に設定できる(簡単だとか簡単に書くと後で簡単だろとか言われて自分の首が絞まる可能性があるので危険)わけですが、そのアニメーションのパターン番号がSDKで名前定義されていないのに動くものがあるわけです。
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationTransition:110 forView:self.view cache:YES];
[UIView setAnimationDuration:2.0];
[UIView commitAnimations];
で、2行目の110ってところが肝。使える番号をハックしてまとめてくれているサイトを見てみると、SDKに定義されているのは0〜4まで。
という感じです。
SDKに定義されていない秘密のAPIをアプリ内で使ったりするとAppleのアプリ審査には通らないけど、定数ってどうなんだろう。試してみるにも次のアプリのネタが無いという。
本日、16進電卓の新バージョン(1.3.20)がAppStoreで公開になりました。
ご愛顧のほどよろしくお願い申し上げます。
先ほど、16進電卓の新しいバージョン(1.3.20)を、Appleのアプリ審査に提出しました。
Appleにアプリケーションのバイナリファイルをアップロードする方法が、前は圧縮ファイルを作ってWebページの流儀に沿ってアップロードしていたのが「Xcodeのビルド&アーカイブとオーガナイザを使いなさいよ!」ってことになっちゃってるような気がします。見落としてるだけかも知れないですけど。というか、アプリ新版の審査申請(アプリのバグ取りとも言う)を半年ぐらいしなかったら、開発者ポータルの操作手順が変わりまくっててちょいとビビりました。
このままリジェクトされなければ、来週末ぐらいにはユーザーの皆様のお手元のデバイスにビットシフト演算とか出来るようになったバージョンアップ版をダウンロードできるようになるのではないかと思います。なんのかんのと、初公開からもう1年ぐらい経ちました。多謝。
iPhoneアプリをホーム画面でタップしてから最初のアプリ画面が表示されるところまでの流れが、SDKドキュメントから見つけられなかったので(というか、英語で書かれたドキュメントが大量で、そもそもちゃんと見ていない)、新規プロジェクトのテンプレートから View-based Application を選んで、画面を表示するだけの簡単なプロジェクトを用意し、適当に見繕ったメソッドにNSLogを入れて、メソッドの呼び出し順を確認してみました。
動作環境は、iOS4.1です。
(アプリを初めて実行すると以下が発動) main UIViewController initWithCoder UIViewController awakeFromNib UIApplicationDelegate didFinishLaunchingWithOptions (viewController.viewを参照すると以下が発動) UIViewController loadView UIView initWithCoder UIView layerClass UIView awakeFromNib UIViewController viewDidLoad (windowにviewController.viewをaddSubviewすると以下が発動) UIViewController viewWillAppear UIView willMoveToWindow UIView willMoveToSuperview UIViewController shouldAutorotateToInterfaceOrientation UIViewController viewDidAppear UIViewController shouldAutorotateToInterfaceOrientation UIView didMoveToWindow UIView didMoveToSuperview UIApplicationDelegate applicationDidBecomeActive UIView drawRect (アプリ実行時にホームボタンを押すと以下が発動) UIApplicationDelegate applicationWillResignActive UIApplicationDelegate applicationDidEnterBackground (アプリをタスクバーから呼び出すと以下が発動) UIApplicationDelegate applicationWillEnterForeground UIApplicationDelegate applicationDidBecomeActive (アプリをタスクバーから消すとSIGKILLが発動) たぶんトラップ不能
NSLogを入れていないクラスやメソッドも他にたくさんあるので、呼び出しはこれで全てという訳ではないと思います。流れを見ると、タスクバーから消すときは、アプリに問答無用というのがかなり割り切ってますね。何かwillなんとか呼んでくれてその上で数秒後にSIGKILLならまだ救われるのだけれども…。