3

iOS向けの開発を開始したいと考えています。Android 開発のバックグラウンドから来て、手に入れることができるデバイスの種類が多ければ多いほど、より良いテストが行​​われることを知っています。すべてのデバイスの仕様は大きく異なり、テストデバイスで完全に機能するものでも、テストデバイスでは実行できない可能性があるためです。別のもの、見栄えは言うまでもありません。

エミュレータでテストできることには多くの制限があるため、実機でのテストが非常に重要であることはわかっているため、実機を入手することにしました。

ただし、iOS の世界では利用可能なデバイスもたくさんあります。iPod touch、iPad、iPhone があり、それぞれ世代や構成が異なります (8GB 版と 16GB 版、WiFi 版、3G 版など)。画面サイズだけでなく、縦横比もデバイスや搭載されているセンサーによって大きく異なります。

さまざまなデバイスでアプリケーションを実行することは難しくないと思いますが、サポートする予定のすべてのデバイス タイプで実際にテストする必要がありますか? Apple は低価格で有名ではないので、初期費用をできるだけ低く抑えたいと考えています。

結論として、iOS 開発の世界では、できるだけ多くの種類のデバイスでテストする必要がありますか?

ちょっとした説明: 特定のデバイス/デバイス ファミリに関連する互換性の問題があり、エミュレータまたはまったく異なるデバイスでテストしても検出できない可能性があるかどうかを特に尋ねています。

4

5 に答える 5

3

一般的に言えば、シミュレーターでのテストとデバイスでのテストの機能の主な違いは次のとおりです。

  • シミュレーターは、デバイスとまったく同じサンドボックスを使用しません。したがって、たとえば、プロビジョニング プロファイルに Passbook の資格情報がない場合、この問題は物理デバイスでは表示されますが、シミュレーターでは表示されません。
  • シミュレーターは通常、GPS、マルチタッチ、プッシュ通知、Bluetooth、およびその他の特定の機能をサポートしていません。
  • 非 Retina ディスプレイでは、iPhone 5+ または (特に!) Retina iPad のシミュレーター ビューは、サイズが画面のサイズを超えるため、ほぼ 100% 使用できなくなります。
  • 非常にまれですが、シミュレーターでのみ発生するクラッシュと、デバイスでのみ発生するクラッシュがいくつかあります。
  • シミュレーターは、アプリがサポートする最も古い iOS バージョンを常にサポートしているわけではありません。たとえば、現在のバージョンの Xcode (最新の iOS バージョン用にビルドする場合はこれを使用する必要があります) では、5.0 以降のシミュレータしか利用できません。
  • Instruments を使用した特定のプロファイリングは、私が知る限り、Simulator でしか利用できません。

ここで、私の特定のケースでは、サポートする各画面解像度の 1 つと、サポートする各主要OS バージョンの 1 つをテストしようとします。

これは、次の一連のテスト デバイスに要約されます。

  • (480x320) 4.3.3 を実行する iPhone 3GS
  • (1136x640) 最新の 6.x を実行する iPod 5gen
  • (960x640) 6.0 を実行する iPhone 4S
  • (1024x768) 5.0 を実行する iPad 第 1 世代
  • (2048x1536) 最新の 6.x を実行する iPad 第 4 世代

iPad mini は iPad 第 1 世代と同じ解像度であることに注意してください。

(私の選択肢は、iOS の新しいバージョンに偏っています。なぜなら、Apple のおしゃれなオプション機能が展開されたときに、すべて統合するのが好きだからです。6.x デバイスの 1 つが代わりに 5.1 を実行していれば、おそらくよりバランスの取れた品揃えになるでしょう。)

4.x をサポートする必要がない場合は、iTunes Connect がクラッシュ レポートを収集しなくなり、シミュレーターがそれを提供しなくなるため、個人的にはサポートしないことをお勧めします。もちろん、本当に必要かどうかを判断できるのはあなただけです。必要な場合は、5.0 でのみ導入された API を使用している場合に Xcode が警告を表示しないため、そこに多くのテストを集中してください。これにより、デバイスがクラッシュします。 4.x を実行しています。

デバイス上の iOS のバージョンをダウングレードする方法が (十分な準備をして) あることに注意してください。そのため、実際にデバイスの数よりも多くのバージョンをテストしたい場合は、(多大な労力を払って) ダウングレードできます。しかし、いずれにせよ、ベータ テスターの強力なプールを育成した方がよいでしょう。

于 2012-12-21T04:14:54.423 に答える
2

さまざまなデバイスでアプリケーションを実行することは難しくないと思いますが、サポートする予定のすべてのデバイス タイプで実際にテストする必要がありますか?

これは、作成するアプリの種類によって大きく異なります。たとえば、ユニバーサル アプリは小さい画面のデバイスと大きい画面のデバイスの両方で実行されますが、それぞれで異なる方法で表示される可能性があるため、両方を試すことができます。多くのアプリは特に iPad を対象としているため、明らかに小型デバイスでのテストは必要ありません。iPod Touch と iPhone は非常に似ているため、多くの場合、どちらかでテストするだけで十分です。

要するに、すべてのデバイスのすべてのバージョンを所有する必要はなく、これまでにリリースされた iOS のすべてのバージョンでテストする必要もないでしょう。しかし、できるだけ多くの異なるデバイスとオペレーティング システムのバージョンで製品をテストしたいと考えています。そのため、自分のデバイスでアプリを試してサポートしてくれるベータ テスターのグループを育成してください。iOS 開発者プログラムでは、さまざまな状況でアプリをテストできるように、最大​​ 100 台のテスト デバイスをアカウントに正確に追加できます。

于 2012-12-21T03:58:00.113 に答える
2

考えられるすべてのデバイスでテストすることは明らかに素晴らしいことですが、iOS エコシステムはAndroid よりもはるかに緊密であるため、フィールドをいくらか絞り込むことができます。

ターゲットの iOS バージョンを制限することから始めることができます。いずれにしても、多くの古いデバイスが除外されます。すべての iOS デバイスに占める iOS6 のシェアは、リリースから 4 か月後にはおそらく 75% 程度です。iOS5+iOS6 で 90% 以上。iOS 向けの開発を始めたばかりの場合は、おそらく iOS6 をターゲットにすることができます。

つまり、最小ハードウェア プラットフォームは iPad2 / iphone3GS / iPodTouch4 です。

デバイスの全リスト

iPad:   2 3 4 mini
iPhone: 3GS 4 4S 5
iPod:   4 5

10 台のデバイス。

しかし、それらすべてをテストする必要はありません。あなたは賢明にそれを狭めることができます...

iPad:   mini + one of the retina models
iPhone: 3GS + 5

毎日のテストに。

明らかに、下位互換性を高めたい場合は、ローエンドのテスト モデルを低スペックのデバイス (iphone 3、iPad 1) に置き換えてください。

ストレージ容量の違い (たとえば 8GB と 16GB) はほとんど重要ではありません。

プロジェクトによっては、特に注意が必要なハードウェア機能がいくつかあります。明らかなのは、網膜ディスプレイと非網膜ディスプレイです。位置情報サービスのハードウェア機能は、モデル間で特に微妙に異なります。

Lowendmacには、かなり徹底的なiPhone比較表があります...

于 2012-12-21T03:50:58.717 に答える
1

一般に、iPod touch でのテストは価値がありません。

iOS の世界では、一般的に iPhone/iPod、iPhone 5/iPod 第 5 世代、iPad があります。

つまり、合計で 3 つの画面サイズになります。

最新の OS (iOS 6) 以外をターゲットにする場合は、テストが複雑になります。単純に iOS 5 と iOS 6 をターゲットにすると、テストする必要があるターゲットの数がほぼ 2 倍になります。

私はそれをシンプルに保つようにしています。iPhone 5 と iPad でテストします。どちらも iOS 6 を実行します。iOS 5 と小さな iPhone については、シミュレーターに依存しています。

于 2012-12-21T03:47:04.167 に答える
0

私は Android と iOS の両方で開発を行っているので、この質問の出所がわかります。私はさまざまな iOS デバイスのほとんどで開発できるという余裕があり、ほとんどの場合、ユーザーが使用する最も高度でないデバイスでテストしても問題ないと思います。第 3 世代の iPod でスムーズに動作する場合は、iPhone 4S、5 などでも非常にスムーズに動作します。iPhone 5 の異なる画面の高さでは、シミュレーターはレイアウトに非常に適しています。

考慮する必要があるのは、電話をかけるなど、電話だけが持つ特定の機能をアプリに使用するオプションがあるかどうかです。また、iPad やユニバーサル アプリを作成する場合は、実際の iPad があれば非常に便利ですが、シミュレーターは非常にうまく機能します。

于 2012-12-21T03:41:48.670 に答える