Unterschied Simulator / Device ?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Aufgrund der Corona-Krise: Die Veröffentlichung von Stellenangeboten und -gesuchen ist bis 31.3.2023 kostenfrei. Das beinhaltet auch Angebote und Gesuche von und für Freischaffende und Selbstständige.

  • Unterschied Simulator / Device ?

    Hallo zusammen,

    Ich würde gerne wissen ob es einen Unterschied in der Verarbeitung des Swift / SwiftUI codes im Simulator und auf einem Physischem Gerät gibt ?


    Ein Beispiel :

    Dieser Teil wird durch eine if Anweisung ausgeführt.

    Quellcode

    1. NavigationLink(destination: Test(navTitle: $navTitle, counter: $counter, item: MenuItem.example).navigationBarBackButtonHidden(true)){
    2. Text("Weiter ->").padding().foregroundColor(.accentColor)
    3. .overlay(RoundedRectangle(cornerRadius: 25)
    4. .stroke(Color.gray, lineWidth: 1)
    5. .shadow(radius: 3))
    6. }.zIndex(3.0)
    7. .simultaneousGesture(TapGesture().onEnded{ _ in
    Im Simulator funktioniert alles super, die View wird jedes mal neu aufgerufen wenn ich auf den Text weiter drücke, und ein Array wird immer um ein Wert erweitert.

    Jetzt das komische, wenn ich das auf dem Handy ausführe, kann ich 2 - 3 mal drücken ( immer unterschiedlich ) und der Teil wird einfach noch einmal mehr ausgeführt und das Array ist leer, obwohl ich nicht auf weiter drücke. ?(

    Ich weiß nicht genau, aber mir kommt es so vor wenn ich zu schnell drücke das die View sich verschluckt ( Der Code wird noch abgearbeitet ) :?:

    Wenn ihr mehr Infos braucht einfach bescheid geben, ich hoffe ich konnte es Verständlich erklären.
  • Ich kann die Frage nicht speziell auf die Verarbeitung des Codes geben, mir ist aber aufgefallen, dass viele Sachen bei mir auf dem Endgerät einfach bedeutend flüssiger laufen, als auf dem Simulator. Und wenn ich jetzt Code laufen lasse und im simulator mal gut und gerne 20/30 Sekunden warten muss bis ein kleiner neuer Build erstellt wurde, dauert das ganze auf dem Hardware device nur ein paar Sekunden.
    Hinzu kommt, dass viele hardwarespezifischen Sachen (verständlicherweise) sowieso nur auf einem physischen Endgerät funktionieren (GPS, Bewegungssensoren,...).

    Außerdem habe ich beim Shippen eines App-Features vor einigen Monaten das Problem gehabt, dass es auf dem Simulator super lief, auf dem Endgerät dann aber nicht soo super.. Also auch komische Unterschiede gefunden habe, ähnlich wie du.
    Und das waren dann die Gründe warum ich aufgehört habe auf dem Simulator zu testen und nur noch auf dem / einen physischen Device teste :D

    Ps.
    Habe gerade parallel mal geschaut ob es einen Artikel mit der gegenüberstellung gibt, was im iOS Simulator läuft und was auf dem physischen Gerät nicht und dabei bin ich auf Browserstack gekommen.
    Hier gehts zur Gegenüberstellung test-on-ios-simulator
    ''Ich stelle immer Getränke auf meinen PC, da ist noch nie etwas passiert..''
    - 'Aber.. dieses mal ist es dir doch in den Lüfter gelaufen?!'
    ''Ja, aber sonst nicht''
    8| :thumbsup:
  • ashtari schrieb:


    Und das waren dann die Gründe warum ich aufgehört habe auf dem Simulator zu testen und nur noch auf dem / einen physischen Device teste :D
    Dem kann ich mich nur anschliessen: In der Vergangenheit habe ich diverse Effekte gehabt, die auf Unterschiede zwischen physikalischem Gerät und Simulator zurückzuführen - und teilweise nicht offensichtlich - waren:
    1. Bool'sche Vergleiche, die unter Nutzung von Konversionen "ungleich Null entspricht TRUE" annehmen, werden je nach Architektur unterschiedlich ausgewertet ... und auf einem Intel-Mac läuft der Simulator auf einer anderen Architektur (siehe auch hier).
    2. Das Filesystem ist auf einem Mac (standardmäßig) nicht case-sensitive. Du kannst also nicht eine Datei test.txt und Test.txt im gleichen Verzeichnis haben - somit auch nicht im Simulator. Auf einem Device funktioniert das.
    3. Der Pfad zum Documents-Ordner erhält auf Devices ein Prefix "private" ... letztlich begründet durch Symlinks und über eine Standardisierung des Pfades lösbar. Hat mich - vor Jahren - aber in's Straucheln gebracht.
    Es gibt garantiert noch viele weitere Fälle, die nicht alleine durch physische Gegebenheiten oder API-Einschränkungen begründet sind. Kurz: Der Simulator ist eben ein Simulator und eignet sich vielleicht für oberflächliche Tests wie die Darstellung auf unterschiedlichen Formfaktoren. Für mehr würde ich ihn nicht verwenden.

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.