Sinnvolle Einstellung bei DeploymentTarget

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

  • Sinnvolle Einstellung bei DeploymentTarget

    Hallo zusammen,

    ich habe kürzlich mit der Programmierung von iOS Apps begonnen und bin mir bei einer Einstellung in Xcode 7 nicht sicher, was man da nun wählt. Es geht um das DropDown "Deployment Target".
    Vor dem Einreichen sollte man seine App ja möglichst ordentlich testen. Ich besitze leider nur 1 iPad, daher muss das also vornehmlich über den Simulator erfolgen. In Xcode wird mir aber z.B. gar kein iOS7 mehr im Simulator angeboten. Nur noch 8 und 9. Merkwürdigerweise kann ich aber beim Deployment Target nach wie vor runter bis 6.0 gehen. Wo ist denn da der Sinn?
    Aber selbst wenn ich mich auf die iOS Versionen 8 und 9 konzentriere, gibt es dort ja nicht nur jeweils eine Auswahl, sondern verschiedene: 8.0, 8.1, 8.2, 8.3, 8.4, 9.1, 9.2.
    Welche Version stellt man hier sinnvoller weise ein? Mal angenommen, ich möchte auch die iPads mit iOS 8 unterstützen...Stelle ich dann 8.0 ein oder eher 8.4, weil das die hoffentlich fehlerfreieste Version der 8er Reihe ist? Aber dann unterstütze ich ja auch 9.1, wo Fehler drin sein könnten, die in 9.2 behoben wurden.
    Auf der einen Seite geht es mir darum, die App später einem möglichst breitem Publikum zu präsentieren. Von daher würde ich natürlich eine möglichst niedrige iOS-Version wählen, weil vermutlich nicht alle ihre alten iPads auf 9.x aktualisieren. Die Frage ist nur, wie entscheidet man sich hier für eine sinnvolle Vorgabe? Meine App wird Funkionen nutzen, die ab iOS 7 vorhanden sind. Also scheidet iOS 6 schon mal aus. iOS 7 scheidet möglicherweise aus, weil Apple es scheinbar nicht mehr unterstützt(zumindest verstehe ich das Fehlen im Simulator als einen solchen Hinweis). Also vermutlich irgendetwas zwischen 8.0 und 9.2. Aber was? Und testet man bei der Einstellung 8.0 dann ernsthaft die App in allen Kombinationen, also von 8.0 bis 9.2? Ihr seht schon, mir fehlt hier echt die Praxis, weil ich noch nie eine App eingereicht habe. Es wäre hilfreich zu wissen, ob viele Nutzer statistisch betrachtet bereit sind, ein iOS-Update durchführen, nur um eine App installieren zu können? Aber das weiß wohl nur der Nutzer selbst...
    Ich habe eine Statistik gefunden, nach der iOS 9 auf rund 60 Prozent aller Geräte installiert sein soll. Angeblich soll iOS 8 auf 30 Prozent der Geräte laufen. Zusammen also 90 Prozent. Das klingt erstmal enorm viel, allerdings weiß ich ja nicht, wie viele davon die jeweils neueste Version drauf haben(oder z.B. eine veraltete 8.0)? Was meint Ihr dazu?

    Viele Grüße
    AppGo2016
  • Auf dem Simulator kannst du testen. Das reicht aber für stabile Releases nicht aus. Eine App, die im Simulator wunderbar läuft, kann auf einem Gerät wunderbar abstürzen. Das gilt übrigens auch für die unterschiedlichen Architekturen und Modelle. Aus Sparsamkeit oder Bequemlichkeit nur auf einem Gerät zu testen, halte ich für falsch.

    Du kannst auch nicht davon ausgehen, dass von den alten OS-Versionen immer die aktuellsten installiert sind.
    „Meine Komplikation hatte eine Komplikation.“
  • Interessant - Also 12 iPad-Modelle multipliziert mit 8 iOS-Varianten = 96 iPads. Wie viel iPads hältst Du denn so zum Testen vor?
    Wenn man dann noch das iPhone unterstützen möchte, dürfte sich das mit der Programmier-Tätigkeit eigentlich für 99% der Entwickler von selbst erledigt haben.
    Nimmt Apple zu diesem Thema irgendwie offiziell Stellung? Sollen wir den Gebrauchtwarenmarkt von hinten aufrollen? Und kann man ein Downgrade auf ältere iOS-Versionen machen?
    Was würdet Ihr denn an meiner Stelle bei DeploymentTarget einstellen?
  • AppGo2016 schrieb:

    Also 12 iPad-Modelle multipliziert mit 8 iOS-Varianten = 96 iPads.
    Na ja, da kann man doch sowas wie Äquivalenzklassen bilden:

    • Ein iPad ohne Retina-Display
    • ein iPad mit Retina-Display
    • ein iPhone 6Plus wegen des großen Bildschirms
    • ein iPhone mit der ältesten unterstützen iOS-Version
    • Die Geräte jeweils mit einer sinnvollen iOS-Version (am besten unterschiedlich)
    Da bist Du doch schon ganz gut dabei, ohne hunderte von Geräten zu benötigen. Klar ist nur: Nur Simulator ist Mist.

    ciao

    gandhi
  • Wenn Du entsprechende Geräte nicht vorhalten kannst, teste mit dem was Du hast und suche Dir dann eine kleine Gruppe von "wohlgesonnenen" Alpha-Testern, die die übrigen Modelle abdeckt. TestFlight ist Dein Freund...

    Mattes

    ... der ohne Ballast iOS 9 voraussetzt, aber auch noch ein altes iOS 7 Projekt durchschleppt. It depends.
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Ok, Äquivalenzklassen hört sich gut an. Aber reicht da wirklich Retina und Non-Retina? Sind RAM und Prozessor also eher für die Bewertung von Performance, Ruckelfreiheit und das unerwartete Beenden wegen Speichermangels von Bedeutung, nicht jedoch in Bezug auf richtige Abstürze?

    Wenn ich Deine und macmoonshines Erklärungen kombiniere, müssten dann ja 2 iPads (je älter desto besser vermutlich, 1 x mit Retina, 1 x ohne) mit allen iOS-Versionen kombiniert werden, die größer oder gleich der im DeploymentTarget eingestellten Version sind, also im Falle von iOS 8.0 bis iOS 9.3 immer noch 16 Geräte. Mit Geld allein ist es da ja mangels Downgrade-Möglichkeit nicht getan. Wo findet man denn bereitwillige Tester mit ganz bestimmten Geräten und Software-Versionen, die da Arbeit reinstecken? Testen ist ja mitnichten eine einfache oder schnell erledigte Aufgabe - zumindest wenn man es sorgfältig macht. Sofern man die Leute nicht bezahlt und für die Tests zu sich nach Hause einläd, kann man denen ja schlecht Test-Szenarien und Fragebögen für die Auswertung vorsetzen. Ist es nicht riskant, sich da auf unbekannte und möglicherweise unqualifizierte Personen zu verlassen?

    Und kann man beim Einreichen der App überhaupt bestimmte Modelle ausschließen, also z.B, ein iPad Pro? Ich habe im Internet nur Tutorials gefunden, wo man über die PList Ausstattungs-Merkmale wie z.B. eine Kamera voraussetzen kann, nicht jedoch bestimmte Modelle ausschließen.

    Mattes, Du hast ja als einziger mal eine (fast) konkrete Ansage gemacht :thumbsup: , was Du an der Stelle bei Deinen Apps einstellst. Dafür bin ich echt dankbar! Mir ist aber immer noch unklar, ob Du bei den Anwendungen ohne Ballast grundsätzlich 9.1 einstellst, oder immer die neueste 9er Version, selbst wenn Du Updates für existierende Projekte veröffentlichst? Wobei dann nur die Nutzer das Update installieren können, die dann auch auf die aktuelle Version wechseln? Und wenn die iOS 10er Version kommt, wird dann auch bei den alten Projekten das DeployTarget aktualisiert? Mir ist schon klar, dass es da Ausnahmen gibt, aber dieses "It depends" ist für mich von sehr großem Interesse. iOS ist schließlich ständig im Fluss, von daher wäre es doch vermutlich nicht nur für mich interessant, wie genau man mit diesem Fortschreiten der iOS-Versionen auf der einen Seite, und dem Veralten der Geräte auf der anderen Seite vernünftig umgeht...
  • AppGo2016 schrieb:

    Aber reicht da wirklich Retina und Non-Retina? Sind RAM und Prozessor also eher für die Bewertung von Performance, Ruckelfreiheit und das unerwartete Beenden wegen Speichermangels von Bedeutung, nicht jedoch in Bezug auf richtige Abstürze?
    Das kann Dir doch niemand beantworten, weil niemand deine Anwendungsfälle kennt. Da musst Du halt mal drüber hirnen. Ein paar Anregungen:

    • Willst Du eine reine iPhone-App -> iPads können wegfallen und umgekehrt.
    • Willst Du das iPhone 6+ mit einer iPad-Ähnlichen GUI versehen? Nein, also kann das wegfallen
    • Willst Du das iPhone 5 (32Bit-Prozessor) unterstützen? Nein, der 32 Bit-Build kann wegfallen
    • Ist für Dich Grafikleistung ein Thema? Ja -> also mal die Grafikpower der Geräte angucken und danach selektieren.
    • Gedanke zum Thema Retina: Nur das iPad 2 hat noch ein nomal aufgelöstes Display. Da kann man drüber nachdenken Icons und Grafiken nur noch als Retina anzubieten. Schaut halt auf dem iPad2 manchmal schrumpelig aus -> schon wieder ein Testgerät weniger.
    • usw.


    Zum Thema iOS: Bei neuen Projekten macht er gar keinen Sinn mehr auch nur ansatzweise über iOS6 oder älter nachzudenken. Der Aufwand eine Anwendung für iOS>=7 und iOS<=6 zu entwickeln ist u.U. enorm. Meiner Meinung nach kann man bei einer neuen Anwendung auch auf die iOS7-Benutzer (<10%) verzichten. Ich würde also als Deployment-Target über iOS 8 oder 9 nachdenken, vermutlich eher 8, weil ich eher geneigt bin alte OSe noch zu unterstützen als nur das aktuelle anzubieten.

    Generell kann man sagen, dass auf dem mobilen Device der Benutzer eher dazu neigt das aktuelle OS einzusetzen, wohingegen OS X-Benutzer da mehr Beharrungsvermögen aufweisen.

    Wenn eine neue OS-Version rauskommt (egal ob iOS oder OS X) versuche ich die Features des neuen OS zu unterstützen (wenn sinnvoll) und gleichzeitig die Kompatibilität zu alten OSen zu erhalten. Irgendwann wird das für bestimmte OS-Versionen immer schwerer und die fallen dann halt hinten raus. Das ist für mich jetzt der Fall bei iOS<8 und auf dem Mac bei der PPC-Unterstützung bzw. 10.5 und immer mehr auch bei 10.6 bzw. 10.7

    schönen Gruß

    gandhi
  • AppGo2016 schrieb:

    Mattes, Du hast ja als einziger mal eine (fast) konkrete Ansage gemacht , was Du an der Stelle bei Deinen Apps einstellst. Dafür bin ich echt dankbar!
    Wenn du eine Antwort à la stell x.y ein, und alles wird gut erwartest, dann ist das Unsinn. Die Frage ist doch, was du investieren willst. Ich würde immer eher zu den Nuller-Nummern tendieren, weil das für die potentiellen Kunden einfacher ist (Ach so, braucht mindestens iOS 8). In einigen Zwischenversionen sind aber teilweise auch neue Funktionen im API hinzugekommen, so dass auch der Einstieg bei einer Zwischenversion sinnvoll sein kann.

    Mehr Versionen bedeuten aber immer auch mehr Arbeit. ;)
    „Meine Komplikation hatte eine Komplikation.“
  • Ich entscheide mich zu Beginn eines Projektes für eine unterstützte iOS-Version (möglichst eine .0) und bleibe dabei: Neue Festures von nachfolgenden iOS-Versionen werden nur unterstützt, wenn es sinnvolle Alternativen mit Abwärtskompatibilität gibt.

    Natürlich geht dass nicht immer, und irgendwann wird der Leidensdruck so groß, dass die unterstützten iOS-Versionen angehoben werden müssen ... aber nur selten, behutsam und nach reichlicher Überlegung.

    Ich würde jetzt - wenn es die Anwendung / Zielgruppe zulässt - mit iOS 9.0 starten. Entscheiden musst Du das aber selber 8)

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.