iPhone 5s は大ヒット商品である一方、この新しい Apple 端末には、あまり歓迎されない特徴がもう一つある。それは、iPhone 5c や iPhone 5 のアプリに比べて、アプリが 2 倍も頻繁にクラッシュするということだ。
原因はおそらくiPhone 5sの64ビットA7プロセッサ、64ビットiOS 7オペレーティングシステム、そして既存の32ビットアプリの組み合わせです。64ビットiPhone 5sで動作するアプリのクラッシュ率は2%です。
一方、前世代の A6 チップと 32 ビット版の iOS 7 を使用している iPhone 5c または iPhone 5 で実行されるアプリの場合は、わずか 1% です。
iPhone 5s はなぜアプリのクラッシュに対して脆弱なのでしょうか?
最も可能性の高い理由は、開発者が端末の64ビットハードウェアを検証する時間がなかったことだ。対照的に、ソフトウェア脆弱性追跡サイトのCrittercismがAllThingsDに語ったところによると、Appleは6月に32ビット版iPhone向けのiOSの初期テスト版をリリースしていたという。
同社のCEOは、Appleがハードウェアとソフトウェアを完全に64ビットに移行していることを考えると、この問題は「避けられない」と述べた。
「新しいハードウェアやソフトウェアがリリースされるたびに、問題が発生します」とアンドリュー・レヴィ氏は述べた。レヴィ氏は、デスクトップPCが64ビットアーキテクチャに移行し、開発者が新しいソフトウェアの開発を余儀なくされたことを例に挙げた。
良いニュースは、Appleが問題を確実に認識していることです。Appleは、これらの問題が発生するたびに、非常にうまく対処しています。
以前、Apple のサポート フォーラムで増え続けるスレッドに基づいて、iPhone 5s でのアプリのクラッシュについて詳しく説明しました (こちらとこちら)。
このすべてには、1 つの可能かつ合理的な説明があります。
既存の 32 ビット アプリを 64 ビット コードに移行すると、メモリ使用量が増加します。これを慎重に管理しないと、メモリ消費量が増加し、アプリのパフォーマンスに悪影響を与える可能性があります。
これは、iPhone 5sのiOS 7には、32ビットと64ビットの両方のカーネル、ライブラリ、フレームワークが含まれており、これらはオンデマンドで読み込まれるため、メモリ使用量が増加してしまうためです。デバイス上で実行されるすべてのアプリが64ビットランタイム用にコンパイルされている場合、iOS 7はこれらのライブラリの32ビット版を読み込むことはありません。そのため、システムのメモリ使用量は削減されます。
残念ながら、アプリ開発者はコードを 64 ビット プラットフォームに移行し始めたばかりなので、ほとんどの App Store ソフトウェアがユニバーサル iPhone/iPad アプリ バイナリと同様に 32 ビットと 64 ビットの両方のデバイスをサポートするファット バイナリ形式で提供されるようになるまでには、しばらく時間がかかるでしょう。
そのため、Apple は、「64 ビット デバイスで実行されるすべてのアプリ、特にバックグラウンド処理をサポートするアプリを 64 ビット ランタイム用にコンパイルすることは、すべての人にとって有益です」と述べています。
Apple の移行ガイドでは、アプリを新しい 64 ビット アーキテクチャに移植する方法について詳しく説明しています。
恐ろしい「ブルースクリーン」が iPhone 5s をクラッシュさせる様子をご覧ください。
iOS 7で導入された機能には、マルチタスク機能の強化、通知センター、刷新されたコントロールセンターなどがあります。9月下旬のiOS 7リリース以降、Appleは初期段階で発生したいくつかの問題を修正したファームウェアアップデートを2回リリースしています。
Appleは現在、アプリ開発者に対し、64ビット版iPhone 5sでアプリをテストし、iOS 7に追いつくよう促しています。これまでのところ、ほとんどのアプリアップデートは、iOS 7で導入された外観上の変更にのみ焦点を当てています。
これまでのところ、iPhone 5s の使用感はいかがですか?