My iPhone 11 is perfectly fine, but the new buttons on the iPhone 16 are compelling
iPhone OS 3までのアプリ動作 iOSのいわゆる「マルチタスク」について今回は取り上げたいが、「マルチタスク」の意味が一般には誤解されているので、まずはここから説明したい。 iPhoneは技術的な意味ではマルチタスクに当初から対応しているが、WindowsやMac OS Xのように、ユーザーが明示的に複数のアプリケーションを起動することができないことや、サードパーティ開発者によって作られるアプリケーションに別のアプリケーションが稼働する背後で何かをさせるといったことができないことを総称して「マルチタスクに対応していない」といういわれ方をしている。正しくは「アプリケーションの複数起動やバックグラウンド動作ができない」ということである。 iPhone OS 3では、これがユーザーの不満であったことは確かだ。Appleの考えるコンセプトは、アプリケーションが終了する時、その状況を残してお
最近アプリのアップデートが非常に多いですね。 「iOS4に対応しました」という内容のアップデートが多いわけですが、色々なアプリをアップデートしてみて、ちょっとした違和感があったりします。 アップデート内容をAppStoreで見てみますと、各アプリごとに表現が微妙に違うんですよね。まとめると以下のようになります。 iOS4に対応 ・iOS4での動作保証 ・マルチタスクに対応 Retinaディスプレイ対応 ・iOS4での動作保証も含まれる(Retina=iPhone4=iOS4ですので) ・Retinaディスプレイ対応(アイコンのみ) ・Retinaディスプレイ対応(UIからの見直し) アプリ内で新機能についてアナウンスするものなどもあるのですが、そういうことではなく、インストールする以前の問題です。いかに「良さそうなアプリだ」と分からせてくれるかという意味ではすごくわかりにくいような気がしま
最後の二つが今回から追加された状態であり、状態の変化はNotificationで取得することが可能。また、同時にUIApplicationDelegateのメソッドもコールされる。 状態遷移やそのときにポストされる通知については iPhone Application Programming Guide が詳しいのでそちらを参照のこと。 これらの状態を踏まえて、マルチタスク化をする際に”最低限”やっておくことを順にまとめる。 ※なお、どうしても以下の処理ができないのであれば、必ずinfo.plistにUIApplicationExitsOnSuspendを追加して値をYESにしておこう。 終了処理 終了時に通るパス アプリケーションが"Active"の状態から"Not running"の状態に遷移する過程で、必ず通るパスがある。そこでデータや設定などを保存しているアプリが多いと思うのだが、こ
10.07.01 iOS4.0 マルチタスク対応 関連資料 これまでのiOS 3.x用アプリをiOS 4.0用に拡張中。iOS4.0ベータが出たころにはまったく手をつける余裕がなく、実際に着手したのは本当に最近。。。 まずはマルチタスク対応から。 マルチタスクと言っても対応中のアプリはバックグラウンドで動作することはなく、ただひたすらsuspendしているだけ。それでも、データ保存のタイミングやメモリ解法、復帰時の処理などなどいくつかケアしなくてはならないことがある。うかつにSDK4.0でビルドだけして公開すると、ユーザーデータの保存タイミングを逃したり、パスワード情報など見せてはいけないものを画面に表示してしまったり、大きな問題になりかねない。怖い怖い。ということで、まずはじっくりお勉強。 今回のマルチタスク対応にあたり、資料がかなり充実していて助かった。 おすすめなのはWWDCのセッシ
iPhone 4 の Retina Display の高解像度表示にアプリケーションを対応させるための方法をいくつか書きます。 これだけですべての場面に対応できるわけではないですが(例えば OpenGL での描画など)何かの役に立てばと思います。 高解像度の画像リソースを用意する Retina Display は従来のディスプレイの倍の解像度を持っているので、倍の解像度に合わせた画像を用意します。 もちろん単純に拡大しただけではダメなので、解像度が高くなったぶん、なめらかな画像を用意することになります。 上記の例は、上が従来の画像、下が Retina Display 対応の画像です。 命名規則によって自動的に解像度に合わせた画像を読み分ける [UIImage ImageNamed:] で読み込む場合は、ファイル名のサフィックスを判断して自動的にディスプレイの解像度に合わせた画像を読み分けて
CashFlow を US で使っている方からメールがあり、日付選択画面(UIDatePicker)の表示が日本時間になってしまうとのこと(それ以外は現地時間で出ている)。 いろいろ探ったところ、UIDatePicker の setTimeZone でタイムゾーンを設定しておく必要があるらしい。とりあえず、 [datePicker setTimeZone:[NSTimeZone systemTimeZone]];という行を入れたところ、不具合は解消された。 で、この不具合は iOS4 でのみ発生するようだ(iPod touch や iPad では問題なし)。また、日本国内で使っている分には問題はおこらないので気づきにくい。 しかし GMT になるならともかく、なぜ日本時間になるのだ、、、どこかにそんなプロパティあったっけ、、、?
OS4.0はiPadには対応していない。iPhoneとiPod touchのみに対応している。 マルチタスク SDK4.0以降でビルドし、OS4.0以降で実行すればアプリケーションはホームボタンを押しても終了しない。 ホームボタンを押すと、バックグラウンド実行コンテキストへ移る。これは多くのアプリではバックグラウンドになったらすぐにサスペンド状態に入るということ。アプリをメモリに保持し起動処理を省略することができ、ユーザエクスペリエンスは、向上する。また、アプリをサスペンドすることで、CPUパワーの使用は最小化され、フォアグランドアプリの実行時間を増やす。 大抵のアプリではバックグラウンドになったらすぐにサスペンドする。バックグラウンドでも動き続けるアプリの場合は、次のテクニックが必要である。 アプリは、いくつかの重要なタスクを完了するために有限の時間を要求できる(長時間タスク) アプリは
まずは目玉は、マルチタスクですね。バックグラウンドへ行って、サスペンドして、ユーザがタスク一覧から×ボタンで終了させたときは、applicationWillTerminate:デリゲートが呼ばれないというのが最大の注意点か。おかげで、このデリゲートで接続の安全な切断とか状態をストレージ保存をしているアプリは、applicationDidEnterBackground: デリゲートをハンドルして、そちらに処理を移す必要がある。特定の条件で、applicationWillTerminate:も呼ばれることがあるとのことなのでそちらにも終了処理が必要。 あとバックグラウンドは限定的と聞いてはいたが、はやり結構制限が厳しい。がしかし、こういうCPUパワーの小さいデバイスでは、制限を強くすることはよい設計だと思う。実際、iOS3.1.3では、Apple製メールアプリがバックグラウンドで受信を始めると
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く