Ist MonoTouch jetzt auf dem iPhone gesperrt? [geschlossen]


155

In einem kürzlich veröffentlichten Beitrag von John Gruber wird Folgendes festgestellt:

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.

Wurde wie folgt überarbeitet:

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

Und macht folgende Beobachtung:

Ich lese diese neue Sprache so, dass Cross-Compiler wie der Flash-to-iPhone-Compiler in der kommenden Flash Professional CS5-Version von Adobe verboten sind. Dies verbietet auch Apps, die mit MonoTouch kompiliert wurden - einem Tool, das C # - und .NET-Apps auf dem iPhone kompiliert.

Verbietet dies tatsächlich die Verwendung von Monotouch für das IPhone?


4
Ich frage mich, wo dies Apple und bestehende Monotouch-Entwickler legal zurücklässt. Was passiert mit vorhandenen Monotouch-Apps?
PeteT

2
@ petebob796: Sie müssen diese neue Lizenz akzeptieren, wenn Sie etwas Neues in iTunes Connect einfügen möchten, aber ich bezweifle, dass sie Dinge aus dem Store abrufen, die zuvor eingereicht wurden. Sie können dies jedoch mit neuen Apps erzwingen, die nicht auf 4.0 basieren, aber noch nicht eingereicht wurden. Aber wie alles im App Store müssen wir nur abwarten!
Jason Coco

1
Anscheinend ist diese Vereinbarung unter NDA
Chris S

apple.com/pr/library/2010/09/09statement.html aaaaaaaaaathankyooooooooooo lass die Verrücktheit beginnen !!

2
Ab dem 09.09.2010 ist dies umstritten. Apple entspannt Regel 3.3.2 foxbusiness.com/markets/2010/09/09/…
Steve Mitcham

Antworten:


88

Update -

Dies hat sich kürzlich geändert . MonoTouch sollte nicht länger mit der Vereinbarung in Konflikt stehen. Alle folgenden Aussagen sind rein historisch!

Ja, aus der Lizenzvereinbarung geht hervor, dass die ursprüngliche Anwendung, wenn sie in C # geschrieben ist, gegen die Lizenz verstoßen würde:

... Anwendungen müssen ursprünglich in Objective-C, C, C ++ oder JavaScript geschrieben sein, wie von der iPhone OS WebKit-Engine ausgeführt ...

Sie hämmern es sogar noch ein bisschen weiter ein:

Anwendungen, die über eine Zwischenübersetzungs- oder Kompatibilitätsschicht oder ein Tool mit dokumentierten APIs verknüpft sind, sind verboten

MonoTouch und der Flash CS5 -> iPhone Konverter sind ziemlich cool.


7
jedoch sehen twitter.com/migueldeicaza/status/11844609073 , dass die Verwendung, wie würden sie eine Monotouch App von einem nativen man sagen?
Mauricio Scheffer

9
Apple wieder huh. Saugen Sie uns mit einem wunderbaren Gerät, einer sauberen grafischen Oberfläche, einer netten Touch-Oberfläche ein ... aber ... stoppen Sie uns, etwas dafür zu entwickeln, es sei denn, wir haben einen Mac, und stoppen Sie uns, etwas dafür zu entwickeln, es sei denn, es ist Objekt C / C / C ++. Ich meine, was würden wir alle denken, wenn Microsoft mitkommen würde und sagen würde: "Nein - ich kann nichts in Windows entwickeln, es sei denn, es ist in C - nein, Sie können das .NET-Framework nicht mehr verwenden."
Peter

33
Das macht für mich keinen Sinn. Wenn Sie gemäß dieser Vereinbarung eine App in Flash geschrieben und dann von Hand in Objective-C übersetzt haben, scheint dies gegen die Vereinbarung zu verstoßen (da sie in Objective-C nicht "ursprünglich geschrieben" wurde).
Michael Myers

3
@John: Ich denke, es ist weniger so, dass sie native Apps "verbieten" - es ist mehr so, dass sich die API ihres neuen Betriebssystems um Silverlight / XNA dreht, und das ist die unterstützte Methode, um Dinge zu tun. Ich habe noch nichts gesehen, was erzwingen könnte, dass Sie in den Lizenzvereinbarungen von Microsoft (noch) kein Java (oder eine andere Sprache) in den Silverlight-Compiler schreiben können.
Ron Warholic

3
Bis all dies geschah, sollte unser Produkt in der Entwicklung nur iPhone / iPad (wer kümmert sich um Android usw.) und MonoTouch sein. Wir haben es uns jetzt noch einmal überlegt und werden nun nach Bedarf Obj-C sein, aber wir werden auch sicher sein, dass am ersten Tag auch Android- und WinPhone-Unterstützung verfügbar ist. Ein Unternehmen kann sich die Unsicherheit des Verhaltens nicht leisten, und deshalb hat Apple das Gegenteil von dem getan, was es wollte - Entwickler dazu gebracht, nach plattformübergreifenden Lösungen statt nur nach Apple zu suchen. Gut gemacht.
mj2008

49

Aktualisieren:

Apple hat (fast) alle technischen Anforderungen für Sprachen und Bibliotheken für iOS fallen gelassen, sodass MonoTouch ohne Zweifel eine praktikable Lösung ist. Siehe Apples Ankündigung .


Die meisten Leute hier wollen einfach Apples Dokument beim Wort nehmen und "Ja, es ist verboten" sagen. Nun, hier ist mein Standpunkt: Zu diesem Zeitpunkt hat niemand wirklich eine Ahnung, ob MonoTouch verboten wird oder nicht, und ich werde erklären, warum:

Die Apple-Vereinbarung Version 3 (nicht die neueste, die vorherige) besagt eindeutig, dass es illegal ist, andere Frameworks zur Entwicklung anderer als der von Apple bereitgestellten Anwendungen zu verwenden:

3.3.2 Eine Anwendung darf selbst keinen anderen ausführbaren Code auf irgendeine Weise installieren oder starten, einschließlich, jedoch nicht beschränkt auf die Verwendung einer Plug-In-Architektur, das Aufrufen anderer Frameworks, anderer APIs oder auf andere Weise. In einer Anwendung darf kein interpretierter Code heruntergeladen oder verwendet werden, außer Code, der von Apples dokumentierten APIs und integrierten Interpretern interpretiert und ausgeführt wird. http://adcdownload.apple.com/iphone/iphone_sdk_3.2__final/iphone_sdk_agreement.pdf

Auch wenn dies der Fall ist (und dies seit 2.x tatsächlich der Fall war), hat Apple kein Problem damit, Anwendungen zu akzeptieren, die genau das tun. Beispielsweise verwenden ALLE EA-Spiele Lua-Skripte, und viele, viele Leute verwenden externe Bibliotheken, die dies tun sind nicht nativ für das iPhone. Selbst wenn das iPhone über diese nativen APIs verfügt, hatte Apple nie Probleme, Anwendungen mit unterschiedlichen Versionen wie SQLite zu akzeptieren.

Mein Punkt ist, dass es einfach zu früh ist, "JA, sie werden verboten" zu sagen. Das einzig Klare an diesem Punkt ist, dass Apple dies tatsächlich verwenden könnte, um Apps zu verbieten. So wie sie heute Apps akzeptieren, die gegen einige ihrer Regeln verstoßen, werden sie dies wahrscheinlich auch weiterhin tun.

Es gibt auch die Tatsache, dass Hunderte (oder wahrscheinlich einige Tausend?) Apps im Store derzeit Mono ausführen und Apple Updates für diese Apps akzeptieren muss. Wichtige Apps mit Millionen von Verkäufen wurden mit Mono (und Lua) erstellt, und ich bezweifle, dass sie jeden einzelnen Benutzer erstatten würden.

Schließlich werden Unternehmensanwendungen ohne Apples Genehmigung auf iPhones bereitgestellt, und das ist ein großer Markt, auf dem MonoTouch tätig ist (ich selbst entwickle Unternehmensanwendungen). Derzeit kann Apple MonoTouch für diese Anwendungen nicht verbieten, und dies wird wahrscheinlich ausreichen, um MonoTouch für lange Zeit am Leben zu erhalten.


Ich stimme Ihnen im Allgemeinen zu, mit Ausnahme des letzten Teils. Apple kann leicht sagen, dass zukünftige Updates vorhandener Apps auf natives Objective-C portiert werden müssen.
Kendall Helmstetter Gelner

Nun, selbst wenn Apps auf Obj-C portiert werden, wurden sie ursprünglich in einer anderen Sprache geschrieben, also wären sie technisch gesehen immer noch illegal, denke ich. Deshalb machen diese Regeln keinen Sinn. Sie werden es wahrscheinlich in einer folgenden Revision kurz vor der endgültigen Veröffentlichung von 4.0 klären.
Eduardo Scoz

3
Die vorherige Sprache hat Frameworks überhaupt nicht verboten. Es wurde klar gesagt, dass das, was es verbot, das Starten von ausführbarem Code war, und listete Frameworks als ein Beispiel für eine mögliche Vorgehensweise auf. Die von Ihnen veröffentlichte Sprache wirkt sich nicht auf Monotype-Apps, Flash-Apps oder andere vorkompilierte Binärdateien aus, die zur Laufzeit nicht zu interpretieren versuchen.
Fenomas

27

Aktualisieren:

Neue Änderungen an den Abschnitten 3.3.1, 3.3.2 und 3.3.9 haben MonoTouch (und alle anderen Cross-Compiler / Sprachen / usw.) auf dem iPhone vollkommen akzeptabel gemacht. Siehe Apples Ankündigung


Miguel scheint das nicht zu glauben. Siehe den Tweet und Miguels Antwort . Lassen Sie uns hier nicht überreagieren und sagen, dass Monotouch tot ist, oder die Entwicklung mit Monotouch einstellen, bis alle Beteiligten einige Klarstellungen vorgenommen haben.

Das heißt, ich würde definitiv anfangen, Apple für solch drakonische Entwicklungsrichtlinien zu begeistern. Solche Dinge und der nebulöse Prozess, der die Genehmigungsrichtlinie für iPhone / iPad / Touch-Apps darstellt, sollten den Entwicklern Angst einjagen. Wie geht es weiter? Die Lizenz besagt, dass die einzige Anzeigenplattform, die Sie verwenden dürfen, iAd ist. Erlauben Sie nicht die Verbreitung von kostenlosen Apps ohne iAd? Den Anteil von Apple am Umsatz der App-Verkäufe langsam steigern? Als Entwickler in einem gesperrten Ökosystem sind wir eine Art Frosch in einem Topf mit heißem Wasser, und Apple dreht langsam die Hitze auf. Jetzt ist es an der Zeit, andere mobile Plattformen zu erkunden, denn wenn sie besser werden, ist die Hauptsache, die die Menschen an der Apple-Plattform festhält, der Mangel an Anwendungen auf anderen Plattformen.


4
+1 (speziell für "Erkundung anderer Plattformen")
Tim

2
+1 obwohl ich mehr von diesen Links erwartet habe. "Nein" ist nicht sehr aussagekräftig, oder? Mikroblogging ist eine Geißel.
Dan Rosenstark

Gehen Sie erkunden, ich bleibe bei Apple. Ich habe 2 Macs und eine Entwicklerlizenz, die ich dieses Jahr gerne erneuern werde, damit ich mich weiterentwickeln kann. Liebe es oder lass es, aber hör auf darüber zu weinen. Und kaufen Sie einfach schon einen Mac ...
kirk.burleson

10

Ich habe monatelang abends an Ideen für eine Killer-iPhone-App in Objective C gearbeitet. Mein Tagesjob ist C #. Ich habe MonoTouch C # heruntergeladen, als es eine praktikable Alternative wurde, und habe gerade 3 Monate damit verbracht, meinen Code in iPhone-spezifisches MonoTouch C # umzuwandeln. Was mich durch den Wechsel von C # / Objective C verrückt gemacht hat.

Was mache ich jetzt alles wegwerfen und von vorne anfangen oder aufgeben!?!

Die Mono-Jungs tun mir wirklich leid. Das ist einfach falsch. Es ist eine Sache, Adobe zu stoppen, das sein Produkt nicht auf den Markt gebracht hat und keine Kunden hat, und MonoTouch zu stoppen, das Produkt im AppStore genehmigt hat.

Warum sollte jemand ein Geschäft aufbauen und in Apple investieren wollen, wenn er alles sofort wegnimmt, ohne verantwortlich oder fragwürdig zu sein?

Es ist klar, dass Entwickler und Kunden von Apple, die sich um sie und ihre Produkte kümmern, eine Einbahnstraße sind.


Monotouch hat kein genehmigtes Produkt im App Store - es gibt viele Anwendungen im App Store, die mit Mono geschrieben wurden. Es gibt einen großen Unterschied darin, dass viele Anwendungen in Betracht gezogen werden müssen, anstatt nur eine.
Kendall Helmstetter Gelner

@ Kendall Helmstetter Gelner: Du liegst falsch. Es gibt MonoTouch-Apps im App Store.
Tim Scott

4
@ Tim Scott, er sagt ... oh vergiss es.
Dan Rosenstark

1
Sie müssen jedoch berücksichtigen, wie viel Entwicklungszeit Adobe in den iPhone-Compiler investiert hätte. Apple ließ sie diesen Weg weitergehen und wusste, dass er länger als ein Jahr dauern würde, und nahm ihn in letzter Minute weg. Sie kosten Millionen an Entwicklungszeit und verlieren Umsatz.
PeteT

@ Tim: Und wie viele dieser Apps wurden von den Monotouch-Leuten entwickelt? Lesen Sie noch einmal, was ich gesagt habe. @yar: Danke, dass du versucht hast es zu erklären.
Kendall Helmstetter Gelner

9

Ich hoffe, Apple wird für diese lächerliche Politik verärgert. Arroganz ist nicht attraktiv und im Allgemeinen schlecht für das Geschäft. Dies ist einer der Gründe, warum ich noch nicht mit der iPhone-Entwicklung begonnen habe.

Die meisten Hardware- und Betriebssystemanbieter freuen sich über zusätzliche Tools und Zielgruppen, um auf ihre Plattform zu schreiben. Apple vertritt die Auffassung, dass seine (Braindead-) Tools das einzige Spiel in der Stadt sind.

Die "Big Brother" -Anzeige von 1984 wird immer relevanter ...

BEARBEITEN

Die Art und Weise, wie es geschrieben ist, scheint auch zu implizieren, dass der Code nicht akzeptabel ist, wenn ich ein .net an den objektiven C / Apple-Übersetzer schreibe, da der ursprüngliche Code nicht objektiv war. C. Das ist lächerlich (und nicht durchsetzbar).


2
Was ist der arrogante Teil? Denken Sie, dass sie dies tun, weil sie denken, dass ihr Code sauberer ist, oder so?
Papa

3
Wollen Sie damit sagen, dass es nicht arrogant ist?
Tim

4
@bpapa Arroganz beschränkt sich nicht nur auf technische Probleme, sondern deckt auch geschäftliche Ansichten ab. Sie sind insofern arrogant, als sie denken, dass sie damit durchkommen können und dass es akzeptables Verhalten ist. Nur weil es eine "Geschäftsstrategie" sein kann, heißt das nicht, dass Sie davon befreit sind, als dumm und arrogant bezeichnet zu werden.
Tim

3
Tatsächlich werden sie "damit durchkommen", weil die iPhone OS-Geräte weiterhin große Erfolge sein werden und Entwickler sich weiter dafür entwickeln werden und neue Entwickler sich der Gruppe anschließen werden. Ich habe vor ein paar Jahren eine Entscheidung getroffen, ich konnte sitzen und darüber jammern, wie ich keine Java-Entwicklung auf dem iPhone durchführen kann, oder ich könnte Cocoa Touch lernen und iPhone-Apps erstellen. Bereue meine Entscheidung nicht.
Papa

5
@ Ben Ähm, nein - es ist relevant, weil Apple ein großer Bruder ist ... Es heißt Ironie.
Tim

7

Unity basiert auch auf Mono und da dies ein beträchtliches kommerzielles Produkt ist, stelle ich mir vor, dass dies ein Thema ist, von dem wir noch nicht gehört haben.

Das Verbot aller Apps, die nicht in Obj-C / C ++ geschrieben sind, würde theoretisch auch alle Unity-Spiele verbieten, von denen es bereits eine große Anzahl im App Store gibt.

Diese Frage wurde auch auf der Unity Answers-Website gestellt. Die offizielle Antwort lautet:

"Wir haben gerade von dem iPhone OS4.0 und den neuen Nutzungsbedingungen gehört. Obwohl wir der Ansicht sind, dass wir diese vollständig einhalten, tun wir derzeit alles, um dies von Apple überprüfen zu lassen. Sobald wir genau wissen, Wir werden diese Informationen natürlich mit allen teilen. Bitte bleiben Sie dran, während wir das klären. "

Seien Sie interessant zu sehen, was Apple ihnen sagt.

Die Sache ist, sicher zu sagen , dass eine App werden muss , geschrieben in einer bestimmten Sprache ist ein wenig irreführend, da , sobald die App zusammengestellt unten ist, ist es immer ein native binäre unabhängig davon , wie es gebaut worden. Ich vermute, dass sie nur nach einer Art Signatur in der Binärdatei suchen können, um festzustellen, mit welchem ​​Tool sie erstellt wurde. Ein fehlerhafter Ansatz.

EDIT: Es gibt einen interessanten Überblick über die Situation in diesem Blog: Monotouch jetzt tot im Wasser, was bedeutet Äpfel neue iPhone-Entwicklervereinbarung


7

In der neuen Lizenzvereinbarung wird dies ausdrücklich klargestellt. Also JA, es wird verboten.

Hinweis: Wenn Sie wirklich für das iPhone entwickeln möchten, versuchen Sie es mit XCode. Wenn Sie bereits mit Java oder C # oder besser mit C ++ vertraut sind, wird das Erlernen von Objective-C nicht so schwierig sein.

iPhone / iPad ist Apples neues erfolgreiches Geschäft, und sie werden alles tun, um dieses Geschäft am Wachsen zu halten. Vielleicht werden sie Monotouch-Apps jetzt nicht verbieten, aber wer weiß, dass es den nächsten Schritt gibt? Wenn Sie sich also wirklich für iPhone-Entwickler interessieren, anstatt Albträume zu haben, wird Ihre Arbeit möglicherweise einfach abgelehnt. Wechseln Sie einfach zu XCode. Zumindest wird dadurch der Prozentsatz der App-Ablehnung gesenkt. Daher mein Rat.


18
Es ist nicht so schwer. Jeder, der Monotouch verwendet, kennt bereits Ziel C. Es ist schrecklich, dass sich Ziel C im Vergleich zu modernen Sprachen entwickelt.
James Moore

3
@ Jamesmoorecode: +1 das ist schrecklich
abatishchev

1
Ja, ich habe die Zeit damit verbracht, Obj-c und alle Cocoa Touch-APIs zu lernen, daher ist es für mich kein Problem, eine native App so zu schreiben, wie Apple es möchte. Es ist nur so, warum sollte ich das tun wollen, wenn ich MonoTouch verwenden könnte, um es viel schneller zu machen und die 'Geschäftslogik' (aber nicht die Benutzeroberfläche) mit WP7 und Silverlight für den Browser und die Desktop-Apps zu teilen?
U62

4
Es gibt einen Grund, warum so viele Apps im Appstore regelmäßig abstürzen: Objective-C. Sogar hochkarätige wie digg.com
Chris S

2
Ich habe heute Morgen im Zug gelernt, wie man im Zug arbeitet - es ist nicht schwer - aber es stinkt - es ist eine wortreiche, archaische Sprache - ich schreibe lieber iPhone-Apps in T-SQL-ASCII-Grafik.

6

Ich denke, etwas, das stark berücksichtigt werden muss, ist Apples Motivation.

Ich stimme anderen online veröffentlichten Ansichten zu, dass Apple versucht, die Kommerzialisierung von Anwendungen zu verhindern - das heißt, dass immer mehr Anwendungen mit Frameworks geschrieben werden, die Anwendungen generieren, die auf mehreren Geräten ausgeführt werden können.

Aber das ist Monotouch nicht. Bei Monotouch geht es darum, die Apple-Frameworks zum Schreiben von Anwendungen zu verwenden - jedoch über Mono, nicht über Objective-C. Von diesem Standpunkt aus sollte Monotouch Apple also nicht wirklich stören.

Ich bin immer noch der Meinung, dass Entwickler besser in der Muttersprache der von ihnen verwendeten Plattform schreiben sollten, da die Dinge im Allgemeinen reibungsloser sind, wenn Sie kein System einführen, bei dem die Abstimmungsimpedanz nicht übereinstimmt - die Cocoa-Frameworks wurden alle für die Verwendung entwickelt Objective-C, und sie sind am sinnvollsten, wenn Sie an die Philosophie von Objective-C gewöhnt sind. Ich hoffe jedoch, dass Apple die Verwendung von MonoTouch zulässt.


1
Wer auch immer meine rationale Analyse herabgestuft hat, wird zur Hölle der Entwickler gehen, nur um Sie wissen zu lassen (deren Definition darin besteht, mobile Apps zu schreiben, die für alle Ewigkeit nur auf Windows Mobile 6.5 abzielen). Ich meine, mit mir streiten, aber warum die Ablehnung aus einem Grund, warum es durchaus nicht verboten werden könnte? Warum nicht versuchen zu verstehen, was Apple tut, anstatt sich nur der Heugabel- und Fackelbrigade anzuschließen, wenn die erste Fackel angezündet wird?
Kendall Helmstetter Gelner

Einverstanden Kendal, +1 für das Gleichgewicht.
Si618

+1 Ein vernünftiges Argument
Bill

1
+1 für den Außenseiter und seine unterschiedliche Ansicht. Jedes Mal, wenn ich gegen die Massen der Gruppe bin, denke ich, dass ich bis zum Löschen des Beitrags abgestimmt werde.
Kirk.burleson

5

Alles, was Apple sagt, ist, dass Sie jetzt alle die Sprachen der 1980er Jahre verwenden müssen, um Ihre Konkurrenz zu entwickeln, die die neuesten mobilen Anwendungen schlägt.

Macht perfekt Sinn. Klingt für mich nach einer Gewinnstrategie.

Es verhindert auch, dass Sie Bibliotheken von Drittanbietern verwenden, von denen Sie nicht garantieren können, dass sie in Straight C, C ++ oder Objective C entwickelt wurden.

Im Grunde bedeutet dies, dass Sie keine Spiele-APIs wie Unity kaufen können.


2
Ein Brunnen, wenn man bedenkt, dass smalltalk-80 ungefähr ein Dutzend Jahre vor c # liegt ...
Stephan Eggermont

Wie Sie zweifellos wissen, war Ziel C im Grunde C mit einigen SmallTalk-Erweiterungen.
Anthony Lambert

4

Ich füge nur meine 2 Cent hinzu. Es scheint, dass nach dem Lesen dieses Teils: (z. B. Anwendungen, die über eine Zwischenübersetzungs- oder Kompatibilitätsschicht oder ein Tool mit dokumentierten APIs verknüpft sind, verboten sind) nichts zu besprechen ist. Sie haben sie eindeutig ausgedrückt. Sie verbieten nicht nur MonoTouch und Unity3d, sondern anscheinend auch das Titanium Framework . Nachdem ich diesen Artikel gelesen hatte , war ich wirklich verwirrt. Ich bin mit US-Gesetzen nicht vertraut, aber ist es legal? Ich meine, brechen sie nicht einige Antimonopolgesetze?

Abgesehen davon kann ich ihre Motivation nicht verstehen. Sie werden nicht nur teilweise das Interesse der Entwickler verlieren, sondern auch den Respekt der Entwickler, denke ich.


4

Bis heute wurde Abschnitt 3.3.1 der Apple iOS Developer Program License auf den alten Text zurückgesetzt:

3.3.1 Anwendungen dürfen dokumentierte APIs nur in der von Apple vorgeschriebenen Weise verwenden und dürfen keine privaten APIs verwenden oder aufrufen.

Apple hat eine offizielle Erklärung zu den Lizenzänderungen veröffentlicht.

Dies würde darauf hinweisen, dass die Verwendung von MonoTouch jetzt zulässig ist.


+1 für die Aufnahme des tatsächlichen Inhalts und nicht nur eines Links oder einer Aussage.
Davidtbernal

3

Ein Ziel des Mono-Teams ist es, Silverlight mittels MonoTouch / Moonlight für die plattformübergreifende Entwicklung auf das iPhone zu portieren. Das ist ein bisschen wie das Portieren von Flash auf das iPhone. Es ist auch Monodroid unterwegs, um uns bei der Portierung von Anwendungen zu helfen, und Apple läuft jedes Mal amonk, wenn jemand "Android" sagt :-) IMHO, wenn Apple mit der neuen Vereinbarung auf Adobe abzielt, zielt es auch auf Novel ab. Wir spekulieren wahrscheinlich und es gibt eine NDA, aber viele von uns haben viel Zeit in diese Plattform investiert, deshalb müssen wir die Situation klarstellen. Wir können es kaum erwarten, diesen Sommer zu diskutieren. Zum Beispiel wurde ich von einem Freund gebeten, seinem Unternehmen beim Prototyp einer MonoTouch-Anwendung für einen Kunden zu helfen. Betrifft die neue Vereinbarung nur die App Store-Distribution? Was ist mit der internen Verteilung?


Warum redet Apple nicht gut mit den Mono-Leuten und bringt sie dazu, stattdessen die Unterstützung für Droid
einzustellen

1
@tony warum sollten sie die Unterstützung für eine viel offenere Plattform
einstellen

2

Diese Google Docs-Tabelle enthält eine lange Liste von Apps, die von der neuen Vereinbarung betroffen sind. Einige bemerkenswerte, die für ihre Kategorie die Nummer 1 im Appstore waren:

  • Monopol
  • Limonade Tycoon
  • Skee Ball
  • Die Siedler
  • Zombieville

Eine der lustigen Einschlüsse ist Toy Story.


1
Die neue Vereinbarung gilt für alle Versionen des Betriebssystems, nicht nur für 4.0.
Philippe Leybaert

Guter Punkt, ich habe vergessen, dass Sie eine neue Vereinbarung auf der Website unterzeichnen müssen
Chris S

2

Viele Apps wurden in den letzten Tagen mit Hilfe von Monotouch und Unity akzeptiert, während ich sie seit der Ankündigung und Änderung der Vereinbarung ebenso wie obj-c verwende, also GO FIGURE, ... the good ol'WTF fällt mir ein. Es scheint ein bipolares Sparschwein zu sein.

AUCH das letzte Unity-Spiel GiantMOTO, das unter HOT NEW GAMES - YESTERDAY steht, hat auf seinem Begrüßungsbildschirm onLoad in großen Buchstaben, POWERED BY UNITY. Alle Vermutungen, Annahmen usw. sind also wirklich draußen. Es könnte alles sagen, dass in der neuen Version es sicherlich NICHT erzwungen wird. Und montouch ist die einzige Entwicklungsplattform, die die iPhone-API VOLLSTÄNDIG verfügbar macht und mithilfe von XCode VOLLSTÄNDIG in obj-c integriert.


1

Laut Lizenzvereinbarung sind MonoTouch-Apps im AppStore eindeutig nicht zulässig.

Die interessantere Frage ist jedoch, gegen welches Framework / welche Apps sie es durchsetzen werden. Sie müssen auch automatisierte Tests schreiben, um zu überprüfen, ob die Apps nativ geschrieben wurden oder nicht, da die Personen, die die Apps genehmigen, nicht die Zeit / Fähigkeiten haben, dies für jede einzelne App zu tun. Diese Apps bringen dort keinen Aufkleber "Using MonoTouch / Flash" an.


1
Ich würde vermuten, dass es ein automatisierter Prozess sein wird. Ich würde Monotouch erraten und der Flash-Compiler wird gängige Codemuster aus der Konvertierung hinterlassen, die statistisch aus kompiliertem Code ausgewählt werden können.
PeteT

3
Ja, wenn Apple einen automatisierten Prozess verwendet, werden sie mit Sicherheit das Conversion-Muster finden. Aber diese Politik von gelten ist absurd. Ich meine, Obj-C saugt seine wirklich irgendwie obskure Sprache. Mir gefällt sehr gut, was MonoTouch anbietet.
Shoaib Shaikh

@Shoaib Ich bin mir sicher einig, dass es absurd ist und viele Entwickler auf Android und Windows Phone umstellen wird, was in gewisser Weise gut für den Wettbewerb ist.
PeteT

1

Die kurze Antwort auf all diesen Blob in der Vereinbarung lautet JA .

Apple schießt sich im Grunde genommen in den Fuß, indem es Programme auf wenige Sprachen beschränkt:

  • C - das heutzutage aufgrund seiner geringen Qualität nicht wirklich für die Anwendungsentwicklung geeignet ist. Es ist heute meistens eine Systemprogrammiersprache.
  • C ++ - was es schwieriger macht, auf Ihr Telefon zu schießen, aber wenn es passiert, ist es mit einer Panzerfaust. Abgesehen von Qt gibt es in C ++ keine vollständigen Anwendungsframeworks (und Qt unterstützt das iPhone noch nicht).
  • Objective-C - das von Apple erfunden wurde und natürlich unterstützt wird.
  • JavaScript läuft in WebKit - im Grunde eine Webanwendung.

Sie beschränken absichtlich die Tools, die Sie für die Entwicklung für das iPhone verwenden können, was sie mit ziemlicher Sicherheit in ernsthafte Schwierigkeiten bringen wird. Ich bin mir sicher, dass ein großer Teil der Community die iPhone-Entwicklung einfach beenden und auf eine andere Plattform wie Windows Mobile, Symbian, Android oder Maemo migrieren wird, die völlig offen ist. Sie können Ihre Anwendung in LOLCODE schreiben.

Abgesehen davon, dass iPhone möglicherweise für Entwickler zu Junk wird, gibt es Adobe auch einen schönen Kuss: Apple blockiert Flash absichtlich vom iPad, und jetzt blockieren sie es auch vom iPhone. Die Nummer ist die größte CS5-Funktion von Adobe Flash: die Bereitstellung von Flash-Anwendungen auf dem iPhone.

tl; dr: Apple schießt sich mit dieser Bewegung im Grunde genommen in den Fuß.


Apple hat sich in erster Linie in den Fuß geschossen und alle sagten: "Apple ist aufgrund der geschlossenen Architektur zum Scheitern verurteilt." Es stellt sich heraus, dass es oft eine gute Strategie ist, sich in den Fuß zu schießen - wie Ihnen jeder Mitarbeiter sagt, der Berater wird.
Dan Rosenstark

Ja, halten Sie den Atem an, damit dieser große Teil der Community die iPhone-Entwicklung beendet!
Kirk.burleson

Objective-C wurde nicht wirklich von Apple erfunden, sondern nur wie LLVM und die gleichen Teile von BSD übernommen :)
Emil Marashliev

1

Es ist jetzt Monate nach dem Flash-Debakel und es ist ziemlich offensichtlich, dass es Monotouch und Unity gut geht.

Gemäß "Anwendungen, die über eine Zwischenübersetzungs- oder Kompatibilitätsschicht oder ein Tool mit dokumentierten APIs verknüpft sind, sind verboten".

Monotouch kompiliert Code bis zu einer nativen Binärdatei, es gibt keine "Ebene". Sie beziehen sich auf etwas wie eine .NET-Laufzeit, Java JVM oder Flash-Laufzeit.


Es heißt über dokumentierte APIs. Also, ich denke, dass es keine Rolle spielt, ob Sie in die native Bibliothek kompilieren oder nicht
vodkhang

Der Punkt ist, der Wunsch, dass Sie einen Mac kaufen müssen, um für das iPhone zu entwickeln. Dies gilt nicht nur für Java und Flash, sondern auch für Mono, da Sie mit Mono auf einem Windows / Linux-Computer entwickeln können. Aber im Gegensatz zu Java oder Flash wird Mono wahrscheinlich nicht viel verwendet, daher ist es ihnen noch egal.
Stefan Steiger

1

Mono-Anwendungen werden normalerweise zu Bytecode kompiliert, für den eine JIT-Kompilierung (just in time) erforderlich ist, sodass ein .NET-Framework oder ein Mono-Framework erforderlich ist. Bei iOS und Android wird die Mono-Anwendung jedoch zu nativem Code kompiliert. Daher gibt es in den Augen von Apple keine dritte Schicht , Apple wird Mono niemals verbieten. So können Sie mit MonoTouch entwickeln und Ihre Apps verteilen. Um Sie weiter zu versichern, gibt es im AppStore verschiedene Mono-Anwendungen (einschließlich Spiele und Anwendungen), die es schon lange gibt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.