実際のiPhoneデバイスでiPhoneアプリをテストする必要がある理由


23

iPhone用に1つのアプリケーションを開発しましたが、今ではApp Storeでそれを求めています。私のiOSオタクの友人の多くは、実際のデバイス、つまりiPhoneでテストするように言った。

だから私は実際のiPhoneデバイスで私のiPhoneアプリをテストする必要があるのだろうか?彼らは(Apple)が私のデバイスとほぼ同じ「シミュレータ」を与えているのですか?


3
問題は「私のデバイスとほぼ同じ」にあります。同じに近いだけでは十分ではありません。小さな違いは、アプリケーションのすばらしいことに影響を与える可能性があります。ハードウェアで実際にテストする必要があるだけでなく、ハードウェアとソフトウェアの異なるバージョン(iOSバージョン)でのテストを検討する必要があります。
コーラルドー

回答:


51

少なくとも実際のデバイスでアプリケーションをテストして、少なくとも次の動作を確認する必要があります。

  • 実デバイスのハードウェア
  • 実際のインターネット接続(セルネットワークとWiFiの使用を含む)
  • マウスではなく指
  • バックグラウンドで実行されている他のアプリのパフォーマンス
  • CPU、ディスク容量、メモリなどのiPhoneの制限(シミュレーターはエミュレーターではありません)。
  • 実際の状況:電車の中でアプリを使用するのは簡単ですか?明るい日光や雨の中はどうですか?

iOS開発者は、このリストを続けてください。


それはすばらしい.. :)。私が考えなければならない非常に単純なこと... :) Thnaks
NSS

2
実際、彼は対象となるすべてのデバイス(iphone3 / 3g / 4 / 4s / 5)およびすべてのiosバージョン3/4/5/6でテストする必要があります。または、そのデバイス/バージョンを明示的に除外する必要があります。
ott--

エミュレーターリンクではなくシミュレーターに感謝します。両方に違いがあるとは知りませんでした。
クリシュナバドラ

オープンデバイスのテストラボが生まれています。mobile.smashingmagazine.com/ 2012/09/24 /…などをお読みください。近所にあるかもしれません。Googleの「モバイル試験ラボ」「オープンデバイスラボ」
ヤンDoggen

20

エミュレータでテストするときに決してわからないことの1つは、実際のデバイスを手に持って、画面上で指をスライドさせているユーザーにとって実際にどのように感じるかです。その結果、ラップトップのタッチパッドでシミュレートする際にスムーズに見えるユーザーアクションは、実際のデバイスの使用にとっては非常に面倒になる場合があります。アプリケーションが正常であることを確認するには、実際のデバイスでテストします。

実際のデバイスでテストする価値があるもう1つのことは、バッテリーの消費です。シミュレーターの開発者がツールでそれを再現する方法に頼るよりも、実際のデバイスでテストする方が本当に安全です。

シミュレーターで十分に近いものではない他のものがあるかもしれません。たとえば、音量とバランス-ラップトップでの音の聞こえ方は、実際の携帯電話での聞こえ方とは異なる場合があります。振動は、シミュレータではほとんどうまくいかないもう1つの例です。ジャイロセンサーの実際の電話での動作方法。GPS /位置関連のもの。などなど...


シミュレーターと実際のデバイスのテストは非常に重要な問題です。私の過去のプロジェクトの1つで、商業的成功の重要な部分は、これらの種類のテストのバランスを慎重にとることでした

実際の作業は、理由を尋ねる開始されます。特定のケースや状況で、デバイス上でのテストとシミュレーターのテストを選択する理由を選択します。

デバイスのテストを無視すると、製品がエンドユーザーの手に直接触れる危険性が非常に高くなり、開発に費やしたすべての努力が完全に破壊されます。ただし、シミュレーターのテストははるかに安価で、自動化がはるかに簡単です。盲目的にオンデバイスのみのテストに固執すると、それらのリリースは競合他社のものよりも大幅に遅くなり、より高価になる可能性があります。


3
ユーザーエクスペリエンスの部分を強調するために+1。アプリストアでアプリケーションを共有することを考えるとき、それは非常に重要な部分です。
コーラルドー

1
ホワイトボードについて、デバイスとシミュレーターのテストのはるかに大きな費用について、すばらしいコメントがありました。あなたの答えにそれを含めるのは素晴らしいことだと思います。それなしでも+1。
-psr

あなたが提案したような答えを更新しました-あなたはそれを気に入っていること@psr嬉しい
ブヨ

7

経験から、そしてベスト投票の回答から離陸:

  • Windows Phone 7向けにデシメーションX2を開発したとき、マウスではなく指が最大の違いでした。マイクロソフトから電話でローンチタイトルを入手するよう招待されたため、最後の文が意味をなさない場合、リリース前に無料のWP7を受け取る可能性がありました。ユーザーが自分の指でやりたいことは、実際の電話では非常に困難でしたが、マウスでは簡単でした。そして、それはスクリーンエッジのケースに関係していました。残念ながら、このゲームでは、常に画面の端に指を置く必要がありました。一部の携帯電話は、画面が沈んでいるだけでなく、厚手のケースのために操作が困難でした。これを修正するパッチを実際に公開しました。これは、すべての初めてのユーザーが悪い、潜在的に使用できないと表示されたことを意味します ゲームのバージョン。:(

  • ハードウェア速度の違いが次に大きな違いでした。Xbox 360バージョンのゲームを不正確な方法で推測し、それに応じてフレームレートの半分(60fpsから30fps)と3分の1 GHz(3.0GHzから1.0GHz)にダウングレードするという文字通り推測する必要がありました。違う。もちろん、プロセッサは異なっていましたが、私たちはこれを知っていました。ハードウェアがなければ、当て推量が足りませんでした。WP7がなかったので、それは私たちの選択ではありませんでしたが、私はあなたと今共有している教訓を学びました。一部の携帯電話では、ゲームの最も集中的な部分でフレームを落としました。:(スローダウンがこのような激しい部分に適切であると仮定したため、誰も気にしなかったようです。それは大したことではありませんでしたが、ポイントは:これが大したことだった場合、「アプリ」は私たちの不完全な当て推量から壊れていただろう。

実際のハードウェアでテストします。また、さまざまな電話ハードウェア用にコーディングする場合、パフォーマンスが問題になる場合は、低価格のものでテストしてください。


6

iPhoneシミュレーターは、iPhone自体にはないいくつかのAPIを実装します(主に思い浮かぶのは、DOM XML APIで、iPhoneは私の知る限りSAXのみをサポートしていますが、これは今でも変更されている可能性があります)。

また、アプリを「感じる」ことができます。ボタンのサイズは適切ですか?右のボタンは親指の下に落ちますか?iPhoneはアプリを実行しますか?シミュレータはエミュレータではなく、そのアプリのデスクトップMacにCocoa Touchを追加するだけで機能します。メモリ不足の警告などをシミュレートする必要があります。


5

ポケットにシミュレーターを置いて歩き回るユーザーがあまり多くないからです。

編集:シミュレーター(またはエミュレーター)でアプリをテストするときは常に、実物を100%正確に表現できない偽のデバイスを使用しています。エミュレータはシミュレータよりも正確かもしれませんが、まだ違いがあります。唯一の100%正確なエミュレーターは、デバイス自体です。

シミュレータでコードを設計、テスト、最適化すると、シミュレータで最適に動作するように微調整されたアプリケーションが作成されます。ただし、ユーザーにはシミュレーターはありません。間違ったデバイスをターゲットにしている。非常によく似たもの。ただし、ユーザーが使用するデバイスとまったく同じではありません。

これはいくつかの種類の問題につながる可能性があります。バグのような重大な問題、クラッシュは間違いなく最優先事項です。しかし、他にもあります。人間工学など。シミュレーターを手に持ってみてください。ちょうど試して。UI要素は異なる画面でレンダリングされ、おそらく異なるレンダリングと異なるサイズで表示されます(美しいRetinaディスプレイによって悪化する問題。たとえば、Retina Macbookを使用しても完全には解決されません)。これらの絶妙なグレーの色合いは、太陽の下でデバイス上で同等に区別できますか?

速度の微妙な違い、およびセンサーエミュレーションの違い(またはその欠如)は、エクスペリエンスを劇的に変えることがあります。

アプリケーションがインターネット接続に依存している場合、LTE、3G、EDGE、GPRSを切り替えたり、異なるシナリオをテストしたり、異なるキャリアをテストしたりする方法はありません。

ジェイルブレイクされたデバイスをサポートしますか?おそらくそうではないかもしれませんが、もしそうなら、おそらくあなたはそれを使ってアプリをテストすることをいとわないでしょう。または、そうでない場合、ジェイルブレイクされた環境を検出していると確信していますか?

シミュレーターで開発しているiPadゲームは、ユーザーが体重を保持し、指を使ってプレイしている場合でも同様に使用できますか?意図しない複数のタッチは、安全なシングルタッチ(または対称ダブルタッチ)シミュレーター環境では予測できなかったアプリを破壊する可能性がありますか?

実際に一度も地上を離れたことがないパイロットが指揮する飛行機に乗り心地はいいですか?

要するに、出荷する前に、ユーザーが使用するのと同じデバイスを使用してください。いずれもシミュレータを使用しません。


4
シンプルで妥当な感情ですが、1つの文を超えた詳細は、コミュニティ全体にとって回答の価値を高めます。
ジミー・ホッファ

3

実用的な理由:

1)「メール送信」機能がありません。

2)デバイスを上下逆さまにすることはできません。

そしてもちろん、すでに理由を言った:

3)低帯域幅

4)シミュレーターと比較して非常に小さな計算能力

5)Open GL呼び出しは、シミュレーターで少し異なります

6)ディスク容量/ RAM ..


最新のシミュレーターとエミュレーターを使用すると、デバイスを回転させることができます。BrowserStackが提供するNokia Lumiaエミュレーターなどのクラウドベースのものも。
ダンダスカレスク

いくつかの回転は..試す..バギーか実装されていない:)とAppleはで述べて:developer.apple.com/library/content/documentation/IDEs/...
ingconti

3

ハードウェアのパフォーマンスは一般に悪いと言われていますが、これはOpenGL ESには当てはまらないことに注意する必要があります。シミュレーターはソフトウェアでそれを実装するため、大きなパフォーマンスに気付くのは珍しいことではありません、デバイス上で実行中にが大幅に向上

さらに、Open GL ESのソフトウェア実装とハードウェア実装にはいくつかの小さな違いがあります。たとえば、シェーダーの精度のヒントには異なる出力がある場合があります。


2

iOS(またはAndroid、またはWindows Phone)向けに実装する場合、デスクトップ用ではなくデバイス用に開発します。一部の計算/リソースが重いアプリケーションでは、これはシミュレーターの通常の動作を意味する場合がありますが、実際のデバイスでは問題が発生します。

したがって、最初からデバイスでテストしないと、このような状況は後の段階で発生する可能性があります。

  • メモリ警告/クラッシュ
  • 1桁のOpenGLフレームレート

2

カメラを使用したPushNotificationなどの機能がいくつかあります、我々は唯一のデバイス上でテストすることができるなど、; これらは、シミュレーターでテストできない機能です。

また、App Storeに提出する前に実際のデバイスでアプリをテストすると、アプリが拒否される可能性が低くなります。シミュレーターでアプリが正常に動作することもありますが、実際のデバイスでクラッシュするため、アプリが拒否される主な理由です。


2

実際のデバイスとエミュレーターの間には実際のパフォーマンスの違いがあります。多くの場合、エミュレータを使用したテストのみでアプリが非常に低速になることがわかりましたが、これは予期していませんでした。


3
皮肉なことに、私のアプリの1つは、ラップトップのエミュレータよりも実際のデバイスでのパフォーマンスが優れています。
マイケルイッツォー

1
@nathan:EMULATORではなくSIMULATORを使用すると思います!Android SDKにはエミュレーターがあり、iOS SDKにはシミュレーターがあります。エミュレーターとシミュレーターには違いがあります。じゃない?ワードエミュレータをシミュレータに置き換えてur ansを読みます。n tnx 2 ans :)
NSS

-1

OSが異なるため、ユーザーエクスペリエンスはデバイスごとに異なります。

ハードウェア仕様。したがって、実際のiPhoneアプリをテストする必要があります

デバイス–市場でiOSのさまざまなバージョンを実行しているモバイルデバイス。

シミュレータはエンドユーザーが直面する問題を特定するのに役立ちますが、

元のデバイスでアプリをテストすると、メジャーを識別して対処するのに役立ちます

ユーザーの懸念。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.