Un article récent de John Gruber note que le jargon juridique suivant:
3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.
A été révisé comme suit:
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).
Et fait l'observation suivante:
Ma lecture de ce nouveau langage est que les compilateurs croisés, tels que le compilateur Flash vers iPhone dans la prochaine version d'Adobe Flash Professional CS5, sont interdits. Cela interdit également les applications compilées à l'aide de MonoTouch - un outil qui compile les applications C # et .NET sur l'iPhone.
Est-ce que cela interdit en fait l'utilisation de Monotouch pour l'iPhone?
la source
Réponses:
Mettre à jour -
Oui, il semble assez clair d'après leur contrat de licence maintenant que si l'application d'origine est écrite en C #, elle violerait la licence:
Ils le martèlent même un peu plus loin:
Une sorte de déception, MonoTouch et le convertisseur Flash CS5 -> iPhone sont très cool.
la source
Mettre à jour:
Apple a abandonné (presque) toutes les exigences techniques pour les langages et bibliothèques pour iOS, donc MonoTouch est sans aucun doute une solution viable. Voir l'annonce d'Apple .
La plupart des gens ici veulent simplement prendre le document d'Apple par le mot et dire "oui, c'est interdit". Eh bien, voici mon point de vue: à ce stade, personne ne sait vraiment si MonoTouch va être interdit ou non, et je vais vous expliquer pourquoi:
L'accord Apple version 3 (pas le dernier, le précédent) stipule clairement qu'il est illégal d'utiliser d'autres frameworks pour développer des applications autres que celles fournies par Apple:
Même si c'est le cas (et c'était en fait le cas depuis la 2.x, Apple n'a aucun problème à accepter les applications qui font exactement cela. Par exemple, TOUS les jeux EA utilisent des scripts Lua, et beaucoup de gens utilisent des bibliothèques externes qui ne sont pas natifs de l'iPhone.Même lorsque l'iPhone a ces API natives, Apple n'a jamais eu de problème à accepter des applications avec différentes versions de celui-ci, comme SQLite.
Ce que je veux dire, c'est que dire "OUI, ils seront bannis" maintenant, c'est simplement WAAY trop tôt. La seule chose claire à ce stade est qu'Apple pourrait en fait l'utiliser pour interdire les applications. Tout comme ils acceptent aujourd'hui les applications qui sont contraires à certaines de leurs règles, ils continueront probablement à le faire.
Il y a aussi le fait qu'il y a des centaines (ou probablement quelques milliers?) D'applications dans le magasin exécutant actuellement Mono, et Apple devra accepter les mises à jour pour ces applications. Les principales applications avec des millions de ventes ont été créées en utilisant Mono (et Lua), et je doute qu'elles rembourseraient chaque utilisateur.
Enfin, les applications d'entreprise sont déployées sur les iPhones sans l'approbation d'Apple, et c'est un gros marché sur lequel MonoTouch est (je développe moi-même des applications d'entreprise). Il n'y a aucun moyen à ce stade qu'Apple puisse interdire MonoTouch pour ces applications, et cela sera probablement suffisant pour maintenir MonoTouch en vie pendant longtemps.
la source
Mettre à jour:
Les nouveaux changements apportés aux sections 3.3.1, 3.3.2 et 3.3.9 ont rendu MonoTouch (et tous les autres compilateurs / langages / etc. croisés) parfaitement acceptables sur l'iPhone. Voir l' annonce d'Apple
Miguel ne semble pas le penser. Voir le tweet et la réponse de Miguel . Ne réagissons pas de manière excessive ici et disons que Monotouch est mort, ou arrêtons de se développer avec Monotouch jusqu'à ce que certaines clarifications aient été apportées par toutes les parties impliquées.
Cela dit, je commencerais certainement à mettre la pression sur Apple pour des politiques de développement aussi draconiennes. Des choses comme celle-ci, et le processus nébuleux qu'est la politique d'approbation des applications iphone / ipad / touch devraient semer la peur dans le cœur des développeurs. Quelle est la prochaine étape, leur licence indiquant que la seule plate-forme publicitaire que vous êtes autorisé à utiliser est iAd? Ne pas autoriser la distribution d'applications gratuites sans iAd? Augmenter lentement la part d'Apple dans les revenus des ventes d'applications? En tant que développeurs dans un écosystème verrouillé, nous sommes une sorte de grenouilles dans une casserole d'eau chaude, et Apple augmente lentement la chaleur. Il est maintenant temps d'explorer d'autres plates-formes mobiles, car à mesure qu'elles s'améliorent, la principale chose qui retient les gens sur la plate-forme Apple est le manque d'applications sur d'autres plates-formes.
la source
J'ai passé des mois de soirées à travailler sur des idées pour une application iPhone de tueur dans Objective C. Mon travail de jour est C #. J'ai téléchargé MonoTouch C # quand il est devenu une alternative viable et je viens de passer 3 mois à convertir mon code en MonoTouch C # spécifique à l'iPhone. Ce qui m'a empêché de devenir fou en passant de C # / Objective C.
Que dois-je faire maintenant tout jeter et recommencer ou abandonner!?!
Je suis vraiment désolé pour les gars de Mono. C'est tout simplement faux. C'est une chose d'arrêter Adobe qui n'a pas lancé son produit et qui n'a pas de clients et d'arrêter MonoTouch qui le fait et a également approuvé le produit dans l'AppStore.
Pourquoi quelqu'un voudrait-il créer une entreprise et investir dans Apple alors qu'il enlèvera tout à un instant sans être responsable ou discutable?
Il est clair que les développeurs et les clients d'Apple qui s'occupent d'eux et de leurs produits est une voie à sens unique.
la source
J'espère qu'Apple sera victime de cette politique ridicule. L'arrogance n'est pas attrayante et généralement mauvaise pour les affaires. C'est l'une des raisons pour lesquelles je n'ai pas commencé le développement de l'iPhone.
La plupart des fournisseurs de matériel et de système d'exploitation sont heureux de disposer d'outils et d'un public supplémentaires pour écrire sur leur plate-forme. Apple considère que ses outils (braindead) sont le seul jeu en ville.
La pub "Big Brother" de 1984 est de plus en plus pertinente ...
ÉDITER
La façon dont il est écrit semble également impliquer que si j'ai écrit un .net à un traducteur objectif C / apple, le code n'est pas acceptable car le code original n'était pas objectif c. C'est ridicule (et inapplicable.)
la source
Unity est également basé sur Mono et cela étant un produit commercial de grande taille, j'imagine que c'est un problème dont nous n'avons pas encore entendu parler.
Interdire toutes les applications qui ne sont pas écrites en Obj-C / C ++ interdirait en théorie également tous les jeux Unity, dont un grand nombre existe déjà dans l'App Store.
Cette question a également été posée sur le site Unity Answers, et leur réponse officielle est:
Soyez intéressant de voir ce que Apple leur dit.
Le fait est que dire qu'une application doit être écrite dans une certaine langue est un peu un abus de langage, car une fois l'application compilée, c'est toujours un binaire natif, quelle que soit la façon dont il a été construit. Je suppose que tout ce qu'ils peuvent rechercher, c'est une sorte de signature dans le binaire pour détecter avec quel outil il a été construit. Une approche imparfaite.
EDIT: Il y a un aperçu intéressant de la situation sur ce blog: monotouch maintenant mort dans l'eau qu'est-ce que signifie Apple New iPhone Developer Agreement
la source
Le nouveau contrat de licence est explicitement clair à ce sujet. Alors OUI, ce sera interdit.
Conseil, si vous voulez vraiment développer pour iPhone, essayez XCode. Si vous êtes déjà familier avec Java ou C # ou encore mieux C ++, alors apprendre Objective-C ne sera pas si difficile.
L'iPhone / iPad est la nouvelle entreprise à succès d'Apple, et ils feront tout pour que cette entreprise continue de croître, peut-être qu'ils n'interdiront pas les applications Monotouch maintenant, mais qui sait la prochaine étape? Donc, si vous êtes vraiment intéressé par le développement iPhone, au lieu de faire des cauchemars, votre travail pourrait être simplement rejeté. Passez simplement à XCode, au moins cela réduira le pourcentage de rejet de votre application. D'où mon conseil.
la source
Je pense que la motivation d'Apple est un élément à considérer.
Je suis d'accord avec d'autres sentiments publiés en ligne selon lesquels Apple essaie d'empêcher la banalisation des applications - c'est-à-dire d'avoir de plus en plus d'applications écrites à l'aide de cadres qui génèrent des applications pouvant fonctionner sur plusieurs appareils.
Mais ce n'est pas ce qu'est Monotouch. Monotouch consiste à utiliser les frameworks Apple pour écrire des applications - mais via Mono, pas Objective-C. Donc, de ce point de vue, ce que fait Monotouch n'est pas quelque chose qui devrait vraiment déranger Apple.
Je maintiens toujours que les développeurs sont mieux d'écrire dans la langue native de la plate-forme qu'ils utilisent, car les choses sont généralement plus fluides lorsque vous n'introduisez pas de système qui peut avoir une discordance d'impédance d'abstraction - les frameworks Cocoa ont tous été conçus pour être utilisés à partir de Objective-C, et ils ont le plus de sens lorsque vous êtes habitué à la philosophie d'Objective-C. Mais j'espère qu'Apple se prononcera du côté de permettre l'utilisation de MonoTouch.
la source
Tout ce qu'Apple dit, c'est que vous devez tous utiliser maintenant les langages des années 1980 pour développer votre concurrence en battant les applications mobiles de pointe ...
Cela a du sens. Cela me semble une stratégie gagnante.
Cela vous empêche également d'utiliser des bibliothèques tierces que vous ne pouvez pas garantir et qui ont été développées en C, C ++ ou Objective C.
Donc, fondamentalement, cela signifie que vous ne pouvez pas acheter dans les API de jeux telles que Unity.
la source
Juste en ajoutant mes 2 cents. Il semble qu'après avoir lu cette partie: (par exemple, les applications qui lient aux API documentées via une traduction intermédiaire ou une couche ou un outil de compatibilité sont interdites) il n'y a rien à discuter. Ils les ont exprimés sans ambiguïté. Non seulement ils interdisent MonoTouch et Unity3d, mais il semble qu'ils interdisent également Titanium Framework . Cependant, après avoir lu cet article, je me suis retrouvé vraiment confus. Je ne connais pas les lois américaines, mais est-ce légal? Je veux dire, ne violent-ils pas certaines lois anti-monopole?
A part tout cela, je ne comprends pas leur motivation. Non seulement ils perdront en partie l'intérêt des développeurs, mais ils perdront également le respect des développeurs, je pense.
la source
À partir d'aujourd'hui, la section 3.3.1 de la licence du programme Apple iOS Developer a maintenant été rétablie à l'ancien texte:
Apple a publié une déclaration officielle sur les changements de licence.
Cela indiquerait qu'il est désormais permis d'utiliser MonoTouch.
la source
L'un des objectifs de l'équipe Mono est de porter Silverlight sur l'iPhone au moyen de MonoTouch / Moonlight pour le développement multiplateforme. C'est un peu comme porter Flash sur l'iPhone. Il y a aussi Monodroid sur le chemin pour nous aider à porter des applications et, vous savez, Apple lance amonk chaque fois que quelqu'un dit "Android" :-) IMHO, si Apple cible Adobe avec le nouvel accord, ils ciblent également Novel. Nous spéculons probablement et il y a une NDA, mais beaucoup d'entre nous ont investi beaucoup de temps sur cette plate-forme, nous devons donc clarifier la situation. Nous ne pouvons pas attendre l'été prochain pour discuter de cette question. Par exemple, un ami m'a demandé d'aider son entreprise à prototyper une application MonoTouch pour un client. Le nouvel accord affecte-t-il uniquement la distribution de l'App Store? Qu'en est-il de la distribution en interne?
la source
Cette feuille de calcul Google Docs contient une longue liste d'applications qui seront concernées par le nouvel accord. Certains notables qui ont été n ° 1 dans l'Appstore pour leur catégorie:
L'une des inclusions amusantes est Toy Story.
la source
o De nombreuses applications ont été acceptées ces derniers jours, écrites à l'aide de monotouch et d'unité, alors que je l'utilise également ainsi que obj-c, depuis l'annonce et la modification de l'accord, alors GO FIGURE, ... le bon ol'WTF me vient à l'esprit. C'est une tirelire bipolaire semble-t-il.
AUSSI, le dernier Unity Game GiantMOTO, qui est sous HOT NEW GAMES - YESTERDAY, a sur son écran de démarrage surLoad en grosses lettres, POWERED BY UNITY. Donc, toutes les conjectures, hypothèses, etc. sont vraiment hors de portée. Cela pourrait dire tout cela dans la nouvelle version, ce n'est certainement PAS appliqué. Et montouch est la seule plate-forme de développement qui expose PLEINEMENT l'API iPhone et intègre COMPLÈTEMENT dans obj-c en utilisant XCode.
la source
D'après ce que dit le contrat de licence, les applications MonoTouch ne seront clairement pas autorisées dans l'AppStore.
La question la plus intéressante est cependant, contre quel framework / applications vont-ils l'appliquer? Ils devront également écrire des tests automatisés pour vérifier si les applications ont été écrites en natif ou non, car les personnes qui approuvent les applications n'auront pas le temps / les compétences pour le faire pour chaque application. Ces applications n'y apposeront pas d'autocollant «Utilisation de MonoTouch / Flash».
la source
La réponse courte à tout ce blob dans l'accord est OUI .
Apple se tire une balle dans le pied en limitant les programmes à quelques langues:
Ils limitent délibérément les outils que vous pouvez utiliser pour développer pour iPhone, ce qui leur causera presque certainement de graves problèmes. Je suis sûr qu'une bonne partie de la communauté va simplement quitter le développement iPhone et migrer vers une plate-forme différente comme Windows Mobile, Symbian, Android ou Maemo, qui sont totalement ouvertes - vous êtes libre d'écrire votre application en LOLCODE.
En plus de rendre l'iPhone indésirable pour les développeurs, cela donne également un bon baiser à Adobe: Apple bloque délibérément Flash de l'iPad, et maintenant ils le bloquent également de l'iPhone. Le nummer est la plus grande fonctionnalité CS5 d'Adobe Flash déployant des applications Flash sur iPhone.
tl; dr: Apple se tire une balle dans le pied avec ce mouvement.
la source
Cela fait maintenant des mois après la débâcle du flash et il est assez évident que Monotouch et Unity se portent très bien.
Selon "Les applications qui lient aux API documentées via une traduction intermédiaire ou une couche ou un outil de compatibilité sont interdites"
Monotouch compile le code vers un binaire natif, il n'y a pas de "couche". Ils font référence à quelque chose comme un runtime .NET, Java JVM ou Flash runtime.
la source
Les applications mono compileraient normalement en bytecode qui est et nécessiterait une compilation JIT (juste à temps) pour les exécuter, donc un framework .Net ou un framework Mono est requis. Cependant, dans le cas d'iOS et d'Android, l'application Mono se compile en code natif. Par conséquent, aux yeux d'Apple, il n'y a pas de troisième couche , Apple n'interdira jamais Mono. Vous pouvez donc vous sentir libre de développer avec MonoTouch et de distribuer vos applications. Pour vous assurer davantage, il existe diverses applications Mono (y compris des jeux et des applications) sur l'AppStore qui existent depuis longtemps.
la source