Ich habe eine Anwendung für das iPhone entwickelt und möchte sie jetzt im App Store haben. So viele meiner iOS-Geek-Freunde sagten mir, ich solle es auf einem tatsächlichen Gerät testen, z. B. auf dem iPhone.
Ich frage mich also, warum es notwendig ist, meine iPhone-App auf einem tatsächlichen iPhone-Gerät zu testen, obwohl sie (Apple) einen "Simulator" angegeben haben, der in etwa dem meines Geräts entspricht.
Antworten:
Sie müssen die Anwendung auf einem realen Gerät testen, um zu sehen, wie sie sich verhält:
iOS-Entwickler, bitte setzen Sie diese Liste fort.
quelle
Wenn Sie mit dem Emulator testen, werden Sie nie erfahren, wie es sich anfühlt, wenn ein Benutzer ein echtes Gerät in der Hand hält und mit den Fingern über den Bildschirm gleitet. Infolgedessen können sich Benutzeraktionen, die beim Simulieren mit einem Touchpad auf Ihrem Laptop als reibungslos erwiesen haben, für eine echte Gerätenutzung als recht umständlich herausstellen. Um sicherzustellen, dass Ihre Anwendung in Ordnung ist, testen Sie sie mit einem realen Gerät.
Eine andere Sache, die es wert ist, mit einem echten Gerät getestet zu werden, ist der Batterieverbrauch. Es ist wirklich sicherer, nur mit einem echten Gerät zu testen, als sich darauf zu verlassen, wie gut Simulatorentwickler es geschafft haben, es in ihrem Tool zu reproduzieren.
Es kann andere Dinge geben, die im Simulator einfach nicht nah genug sind. Audio-Lautstärke und Balance zum Beispiel - die Art und Weise, wie sie auf Ihrem Laptop klingt, kann sich von der auf einem echten Telefon unterscheiden. Vibration ist ein weiteres Beispiel, das mit dem Simulator kaum zu erreichen ist. So funktionieren Gyro-Sensoren am realen Telefon. GPS / ortsbezogene Sachen. Usw. usw.
Das Testen von Simulatoren im Vergleich zu realen Geräten ist ein ziemlich wichtiges Thema. In einem meiner vergangenen Projekte war ein wichtiger Teil des kommerziellen Erfolgs eine sorgfältige Abwägung zwischen diesen Arten von Tests, die im Wesentlichen darauf hinausläuft, ständig neue Fragen zu stellen, wie z. B. warum auf dem Gerät?
Echte Arbeit beginnt, wenn man nach dem Grund fragt und in bestimmten Fällen und Situationen die Gründe für die Wahl zwischen Tests am Gerät und im Simulator festlegt.
Durch das Ignorieren von Gerätetests ist Ihr Produkt einem (ziemlich hohen) Risiko ausgesetzt, in die Hände des Endbenutzers zu geraten, wodurch alle Anstrengungen, die Sie in die Entwicklung gesteckt haben, vollständig zunichte gemacht werden. Simulatortests sind jedoch VIEL billiger und für die Automatisierung viel einfacher. Wenn man sich blindlings nur an Tests auf dem Gerät hält, werden ihre Releases möglicherweise wesentlich später und teurer als die der Wettbewerber.
quelle
Aus Erfahrung und einem Auszug aus der am besten bewerteten Antwort:
Ihre Finger anstelle der Maus waren der größte Unterschied, als wir Decimation X2 für Windows Phone 7 entwickelten. Es wurde auf einem Emulator codiert, da wir kein WP7 hatten und es war, bevor das WP7 veröffentlicht wurde. Wir hätten möglicherweise vor der Veröffentlichung ein kostenloses WP7 erhalten können, falls der letzte Satz für Sie keinen Sinn ergeben hätte, da wir von Microsoft aufgefordert wurden, einen Starttitel auf ihrem Handy zu haben. Es stellte sich heraus, dass das, was der Benutzer mit seinen Fingern tun sollte, auf dem realen Telefon sehr schwierig war, aber mit einer Maus einfach. Und es hatte mit Bildschirmrandfällen zu tun. Leider mussten bei unserem Spiel immer die Finger am Bildschirmrand sein, was bei einigen Handys aufgrund des abgesenkten Bildschirms und der dicken Hüllen schwierig war. Wir haben tatsächlich einen Patch veröffentlicht, um dies zu beheben. Dies bedeutet, dass allen Erstbenutzern eine schlechte und möglicherweise unbrauchbare Version unseres Spiels. :(
Unterschiedliche Hardware-Geschwindigkeit war der nächstgrößere Unterschied. Wir mussten buchstäblich durch die ungenaue Methode raten, unsere Xbox 360-Version des Spiels zu nehmen und sie entsprechend auf die Hälfte der Bildrate (60 fps bis 30 fps) und ein Drittel der GHz (3,0 GHz bis 1,0 GHz) herunterzustufen, und wir vermuteten falsch. Die Prozessoren waren natürlich unterschiedlich, und das wussten wir. Ohne die Hardware mussten wir nur lahm raten. Es war nicht unsere Wahl, da wir kein WP7 hatten, aber wir haben die Lektion gelernt, die ich jetzt mit Ihnen teile. Auf einigen Handys fielen während der intensivsten Teile des Spiels Frames aus. :( Es schien niemanden zu kümmern, da sie annahmen, dass die Verlangsamung für solch intensive Teile angemessen war. Es war also keine große Sache, aber der Punkt ist: Wäre dies eine große Sache gewesen, wäre die "App" aus unserer lahmen Vermutung herausgebrochen worden.
Test auf echter Hardware. Und wenn Sie für verschiedene Telefonhardware codieren, testen Sie auf der unteren Ebene, ob die Leistung ein Problem darstellt.
quelle
Der iPhone-Simulator implementiert einige APIs, die das iPhone selbst nicht unterstützt (Die wichtigste, die mir in den Sinn kommt, ist die DOM-XML-API, bei der das iPhone meines Wissens nur SAX unterstützt. Möglicherweise hat sich dies jedoch geändert.)
Sie können damit auch die App „fühlen“. Haben Ihre Schaltflächen die richtige Größe? Fallen die richtigen Knöpfe unter den Daumen? Ist das iPhone bereit, die App auszuführen? Der Simulator ist kein Emulator und fügt Ihrem Desktop-Mac für diese App lediglich Cocoa Touch hinzu. Sie müssen Warnungen zu wenig Arbeitsspeicher und dergleichen simulieren.
quelle
Weil Sie nicht viele Benutzer haben werden, die mit einem Simulator in der Tasche herumlaufen.
BEARBEITEN: Wann immer Sie Ihre App auf einem Simulator (oder Emulator) testen, verwenden Sie ein gefälschtes Gerät, das per Definition keine 100% genaue Darstellung der Realität sein kann. Ein Emulator ist zwar genauer als ein Simulator, es gibt jedoch immer noch Unterschiede. Der einzige 100% genaue Emulator ist das Gerät selbst.
Das Entwerfen, Testen und Optimieren von Code auf einem Simulator führt zu einer Anwendung, die für die optimale Arbeit auf einem Simulator optimiert wurde. Ihre Benutzer haben jedoch keine Simulatoren. Sie zielen auf das falsche Gerät. Ein sehr ähnliches; aber nicht das gleiche Gerät, das Ihre Benutzer verwenden werden.
Dies kann zu verschiedenen Problemen führen. Schwerwiegende Probleme wie Bugs und Abstürze haben für Sie mit Sicherheit höchste Priorität. Aber es gibt noch andere; wie Ergonomie. Versuchen Sie, den Simulator in der Hand zu halten. Probier's einfach. Benutzeroberflächenelemente werden auf einem anderen Bildschirm mit möglicherweise unterschiedlicher Farbwiedergabe und sicherlich unterschiedlichen Abmessungen gerendert (ein Problem, das durch die schönen Retina-Displays noch verschärft wird und nicht vollständig gelöst wird, wenn beispielsweise auch ein Retina-Macbook verwendet wird). Sind diese exquisiten Grautöne auf einem Gerät in der Sonne gleichermaßen unterscheidbar?
Kleine Geschwindigkeitsunterschiede und unterschiedliche Sensoremulationen (oder deren Fehlen) können das Erlebnis manchmal dramatisch verändern.
Wenn Ihre Anwendung auf Internetkonnektivität angewiesen ist, können Sie nicht zwischen LTE, 3G, EDGE oder GPRS wechseln, um verschiedene Szenarien oder sogar verschiedene Netzbetreiber zu testen.
Werden Sie Geräte mit Jailbreak unterstützen? Vielleicht sind Sie es nicht, aber wenn ja, sind Sie wahrscheinlich bereit, Ihre App mit einer zu testen. Oder sind Sie sicher, dass Sie eine Umgebung mit Jailbreak erkennen, wenn Sie dies nicht tun?
Ist das iPad-Spiel, das Sie auf dem Simulator entwickeln, gleichermaßen verwendbar, wenn ein Benutzer sein Gewicht hält und seine Finger zum Spielen verwendet? Können unbeabsichtigte Mehrfachberührungen Ihre App beschädigen, was Sie in der sicheren Umgebung des Single-Touch-Simulators (oder des symmetrischen Double-Touch-Simulators) nicht erwartet haben?
Würden Sie sich wohl fühlen, in ein Flugzeug zu steigen, das von einem Piloten befohlen wurde, der den Boden noch nie verlassen hat?
Das Fazit lautet: Bitte verwenden Sie vor dem Versand dasselbe Gerät, das Ihre Benutzer verwenden werden. Keiner von ihnen wird einen Simulator benutzen.
quelle
praktischer Grund:
1) Sie haben nicht die Funktion "Mail senden".
2) Sie können das Gerät nicht auf den Kopf stellen.
und natürlich schon Grund gesagt:
3) geringe Bandbreite
4) sehr kleine Rechenleistung im Vergleich zum Simulator
5) Open-GL-Aufrufe sind im Simulator etwas anders implementiert
6) Speicherplatz / RAM ..
quelle
Obwohl erwähnt wurde, dass die Leistung der Hardware im Allgemeinen schlechter ist, muss beachtet werden, dass dies bei OpenGL ES nicht der Fall ist. Der Simulator implementiert es in Software, so dass es nicht ungewöhnlich ist, eine enorme Leistungssteigerung zu bemerken , während er auf dem Gerät selbst läuft.
Darüber hinaus gibt es einige geringfügige Unterschiede zwischen der Software- und der Hardware-Implementierung von Open GL ES, z. B. können Hinweise zur Shader-Genauigkeit unterschiedliche Ausgaben haben.
quelle
Wenn wir Dinge für iOS (oder Android oder Windows Phone) implementieren, entwickeln wir nicht für den Desktop, sondern für das Gerät. Bei einigen Anwendungen mit hohem Rechenaufwand kann dies zu einem normalen Verhalten des Simulators führen, jedoch zu Problemen mit dem tatsächlichen Gerät.
So können Situationen wie diese in späteren Phasen auftreten, wenn wir nicht von Anfang an auf dem Gerät testen:
quelle
Es gibt einige Funktionen wie PushNotification , Verwendung der Kamera usw., die wir nur auf einem Gerät testen können. Dies sind Funktionen, die nicht auf einem Simulator getestet werden können.
Wenn Sie Ihre App auf einem tatsächlichen Gerät testen, bevor Sie sie an den App Store senden, verringert sich die Wahrscheinlichkeit, dass die App abgelehnt wird. Manchmal funktioniert eine App im Simulator einwandfrei, stürzt jedoch auf einem tatsächlichen Gerät ab. Dies ist der Hauptgrund für die Ablehnung von Apps.
quelle
Es kann echte Leistungsunterschiede zwischen dem tatsächlichen Gerät und dem Emulator geben. Wir fanden heraus, dass nur das Testen mit dem Emulator in vielen Fällen zu einer sehr langsamen App führte, was wir nicht erwartet hatten.
quelle
Die Benutzererfahrung variiert von Gerät zu Gerät aufgrund des unterschiedlichen Betriebssystems und
Hardware-Spezifikationen. Daher ist es notwendig, eine iPhone-App auf dem aktuellen Stand zu testen
Geräte - Mobilgeräte mit verschiedenen iOS-Versionen auf dem Markt.
Obwohl ein Simulator hilfreich ist, um Probleme des Endbenutzers zu identifizieren,
Das Testen der App auf dem Originalgerät hilft bei der Identifizierung und Adressierung von Major
Anliegen des Nutzers.
quelle