NotificationCenterを使ったFast App Switching対応

iOS4以降、iOSアプリを作る場合はマルチタスク(Fast App Switching)の対応を考慮しなければいけなくなりました。バックグラウンドに入ったらアプリを終了するようにして、マルチタスクをサポートしないようにすることもできますが、AppStoreでリリースされている多くのアプリがマルチタスクをサポートしており、ユーザがマルチタスクに慣れていることを考えると、できるだけマルチタスクをサポートしておきたいものです。
Fast App SwitchingのハンドリングはAppDelegateで行っている人も多くいると思いますが、コードの再利用性を考えるとNotificationCenterを使った方が効率的な場合があります。
“NotificationCenterを使ったFast App Switching対応” の続きを読む

StoreKitトランザクションとFast App Switching

久しぶりにStoreKitについての記事です。In-App Purchase Programming GuideStoreKit Framework ReferenceにはFast App Switchingやスリープに関する説明がありません。しかし、購入手続きの途中にアプリ切り替え(Fast App Switching)が発生すると、アプリケーションは正しくトランザクションの状態変化を把握できなくなってしまいます。そこで、この問題についての対策を考えます。
※2012/05/22追記 この部分の挙動が変更になったようです。再検証を行ったのでこちらの記事を参照してください。

注意

この記事は、Apple公式ドキュメント類では説明/推奨されていない実装方法についての考察です。挙動や実装は将来的に大きく変わる可能性があり、動作は一切保証できません。参考にする程度にとどめ、もし下記に書かれている内容を実装する場合は自己責任で行ってください。 “StoreKitトランザクションとFast App Switching” の続きを読む

Windows Phone 7 シミュレータ

IS12Tの発売前から、どうもWindows Phone 7のUIが良くできている、という噂が流れていましたが、先日パンカクに来ている学生の子が買った実機を触らせてもらったところ、実際のところiPhoneにも劣らない程によくできていた印象を受けました。近年のMicrosoft製品のUIはどうも首を傾げてしまうものが多かったのですが、Windows Phone 7のUIは素直に気に入りました。
そんなWindows Phone 7のUIをiPhone / Android上で体験できるWindows Phone 7シミュレータが公開されたという記事がTechCrunchで紹介されてました。実際に手元のiPhone 4Sでアクセスしてみたところ、ほぼWindows Phone 7実機と同じようにヌルヌル動く。Safariで開いて実行するのでHTML/JS/CSSだけで実装されているのですが、よくJSでこれだけのものを再現できるなと感動します。もしかして、Windows Phone 7自体のUIもJSでできているのだろうか??ちなみにAndroidでも試してみましたが、一応動作はするもののブラウザの機能的な制約からか、画面効果はiPhoneに比べると地味なものになっており、また動きもAndroid特有のカクカクした感じになってしまっていました。
アプリのお試しの機構も面白そうだしXNAが使えて、しかも実機/OSの品質も良い、ということで結構Windows Phone欲しいなと思うのですが、ネックはアプリ開発がWindowsでしかできない点だなあ。
参考
マイクロソフトがiPhone/Androidユーザーのために、Windows Phone 7シミュレーターを作った

StoreKit(組み込みプロダクトモデル編) まとめ

というわけで、StoreKitの挙動について細かく検証してきましたが、少なくとも組み込みプロダクトモデル編については、ここから先はかなり細かい話になってきてしまうので一旦ここでまとめておきます。
なお、この情報は2011年11月現在のiOS 5.0におけるもので、将来的に仕様が変わっている可能性があります。また、公式ドキュメント等には記載されていない独自の検証に基づく見解が含まれます。参考程度に読んでください。そして気づいた点を躊躇せず指摘してください。 “StoreKit(組み込みプロダクトモデル編) まとめ” の続きを読む

StoreKit トランザクションの重複を防ぐ

トランザクションが複数できると面倒なことになると前回のポストで書きました。特に購入手続きの途中でアプリケーションが終了してしまったような場合は、アプリケーション側で少し面倒ですが対策をいれないと問題を回避できません。 “StoreKit トランザクションの重複を防ぐ” の続きを読む

StoreKit Consumableプロダクトの二重購入

トランザクションの中断と再開について、さらにケースを見ていきます。未完状態のトランザクションが既にある状態で、新しいペイメントをリクエストした場合の挙動について。厄介です。 “StoreKit Consumableプロダクトの二重購入” の続きを読む