MonoTouch est-il désormais interdit sur l'iPhone? [fermé]


155

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?


4
Je me demande où cela laisse légalement Apple et les développeurs monotouch existants. Qu'arrive-t-il aux applications monotouch existantes?
PeteT

2
@ petebob796: Vous devez accepter cette nouvelle licence si vous voulez mettre quelque chose de nouveau dans iTunes Connect, mais je doute qu'ils retireront des choses du magasin qui ont été soumises précédemment. Cependant, ils / peuvent / appliquent cela avec de nouvelles applications qui ne sont pas basées sur la version 4.0 mais qui n'ont pas été soumises auparavant. Mais comme pour tout dans l'App Store, nous devrons simplement attendre et voir!
Jason Coco

1
Apparemment, cet accord est sous NDA
Chris S

apple.com/pr/library/2010/09/09statement.html aaaaaaaaaathankyooooooooooo que la folie commence !!

2
Depuis le 9/9/2010, c'est sans objet. Apple assouplit la règle 3.3.2 foxbusiness.com/markets/2010/09/09/…
Steve Mitcham

Réponses:


88

Mettre à jour -

Cela a changé récemment . MonoTouch ne doit plus entrer en conflit avec l'accord. Toutes les déclarations ci-dessous sont purement historiques!

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:

... Les applications doivent être à l' origine écrites en Objective-C, C, C ++ ou JavaScript tel qu'exécuté par le moteur WebKit iPhone OS ...

Ils le martèlent même un peu plus loin:

Les applications qui lient aux API documentées via une traduction intermédiaire ou une couche ou un outil de compatibilité sont interdites

Une sorte de déception, MonoTouch et le convertisseur Flash CS5 -> iPhone sont très cool.


7
cependant, voir twitter.com/migueldeicaza/status/11844609073 en utilisant cela, comment pourraient-ils distinguer une application MonoTouch d'une application native?
Mauricio Scheffer

9
Apple encore hein. Nous aspirons avec un appareil merveilleux, une interface graphique propre, une interface tactile agréable ... mais ... nous empêchant de développer quoi que ce soit pour cela à moins que nous ayons un mac, nous empêchant de développer quoi que ce soit pour cela à moins que ce soit un objet C / C / C ++. Je veux dire que penserions-nous tous si Microsoft arrivait et disait «non - je ne peux rien développer dans Windows à moins que ce ne soit en C - non, vous ne pouvez plus utiliser le framework .NET».
peter

33
Cela n'a aucun sens pour moi. En vertu de cet accord, si vous avez écrit une application en Flash et que vous l'avez ensuite traduite à la main en Objective-C, il semble que cela violerait l'accord (car elle n'était pas «écrite à l'origine» en Objective-C).
Michael Myers

3
@John: Je pense que c'est moins qu'ils `` interdisent '' les applications natives - c'est plus que l'API de leur nouveau système d'exploitation tourne autour de Silverlight / XNA et c'est la manière prise en charge de faire les choses. Je n'ai rien vu pour imposer que vous ne puissiez pas écrire un Java (ou tout autre langage) sur le compilateur Silverlight dans les accords de licence de Microsoft (pour le moment).
Ron Warholic

3
Jusqu'à ce que tout cela se produise, notre produit en développement devait être uniquement iPhone / iPad (qui se soucie d'Android, etc.) et en MonoTouch. Nous avons maintenant reconsidéré, et nous serons maintenant Obj-C comme requis, mais nous serons également sûrs d'avoir le support Android et WinPhone disponible le jour 1 aussi. Une entreprise ne peut pas se permettre l'incertitude du comportement, et par conséquent, Apple a fait le contraire de ce qu'elle voulait - incité les développeurs à rechercher des solutions multiplateformes au lieu d'Apple uniquement. Bien joué.
mj2008

49

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:

3.3.2 Une Application ne peut pas elle-même installer ou lancer un autre code exécutable par quelque moyen que ce soit, y compris, sans limitation, par l'utilisation d'une architecture de plug-in, en appelant d'autres frameworks, d'autres API ou autrement. Aucun code interprété ne peut être téléchargé ou utilisé dans une application, à l'exception du code qui est interprété et exécuté par les API documentées d'Apple et les interpréteurs intégrés. http://adcdownload.apple.com/iphone/iphone_sdk_3.2__final/iphone_sdk_agreement.pdf

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.


Je suis généralement d'accord avec vous, sauf pour la dernière partie - Apple pourrait facilement dire que les futures mises à jour des applications existantes doivent être portées sur Objective-C natif.
Kendall Helmstetter Gelner

Eh bien, même si les applications sont portées sur Obj-C, elles ont été initialement écrites dans une langue différente, donc techniquement, elles seraient toujours illégales, je suppose. C'est pourquoi ces règles n'ont pas vraiment de sens. Ils le clarifieront probablement dans une révision suivante, juste avant la version finale de 4.0.
Eduardo Scoz

3
Le langage précédent n'interdisait pas du tout les frameworks. Il a clairement dit que ce qu'il interdisait était le lancement de code exécutable, et répertorie les cadres comme un exemple d'une manière qui pourrait être faite. La langue que vous avez publiée n'affecte pas les applications monotype ou Flash ou tout autre binaire précompilé qui ne tente pas d'interpréter au moment de l'exécution.
fenomas

27

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.


4
+1 (en particulier pour "explorer d'autres plates-formes")
Tim

2
+1 bien que j'attendais plus de ces liens. "Non" n'est pas très révélateur, n'est-ce pas? Le micro-blogging est un fléau.
Dan Rosenstark

Allez explorer, je reste avec Apple. J'ai 2 macs et une licence de développeur que je renouvellerai volontiers cette année afin de pouvoir continuer à développer. Aimez-le ou laissez-le, mais arrêtez de pleurer à ce sujet. Et allez juste acheter un mac déjà ...
kirk.burleson

10

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.


Monotouch n'a pas de produit approuvé dans l'App Store - il existe de nombreuses applications dans l'App Store qui ont été écrites à l'aide de Mono. Il y a une grande différence, en ce sens qu'il y a beaucoup d'applications à considérer au lieu d'une seule.
Kendall Helmstetter Gelner

@ Kendall Helmstetter Gelner: Vous vous trompez. Il existe des applications MonoTouch dans l'App Store.
Tim Scott

4
@Tim Scott, il dit ... oh oubliez ça.
Dan Rosenstark

1
Vous devez cependant tenir compte du temps de développement qu'Adobe aurait consacré à son compilateur iPhone. Apple les a laissés continuer sur cette voie en sachant que cela allait durer plus d'un an et l'a emporté à la dernière minute. Cela leur a coûté des millions en temps de développement et des ventes perdues.
PeteT

@Tim: Et combien de ces applications ont été développées PAR les gens de Monotouch? Relisez ce que j'ai dit. @yar: Merci d'essayer d'expliquer.
Kendall Helmstetter Gelner

9

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.)


2
Quelle est la partie arrogante? Pensez-vous qu'ils font cela parce qu'ils pensent que leur code est plus propre, ou quelque chose comme ça?
bpapa

3
Êtes-vous en train de dire que ce n'est pas arrogant?
Tim

4
@bpapa Arrogance ne se limite pas aux problèmes techniques - il couvre également les vues commerciales. Ils sont arrogants en ce sens qu'ils pensent pouvoir s'en tirer et que c'est un comportement acceptable. Ce n'est pas parce qu'il peut s'agir d'une «stratégie commerciale» que vous êtes dispensé d'être considéré comme stupide et arrogant.
Tim

3
En fait, ils vont "s'en tirer" parce que les appareils iPhone OS continueront à être d'énormes succès et que les développeurs continueront à développer pour cela, et de nouveaux développeurs rejoindront le giron. J'ai fait un choix il y a quelques années, je pouvais m'asseoir et pleurnicher sur le fait que je ne pouvais pas faire de développement Java sur l'iPhone, ou je pourrais apprendre Cocoa Touch et créer des applications iPhone. Ne regrette pas ma décision.
bpapa

5
@Ben Um, non - c'est pertinent parce qu'Apple EST le grand frère ... Cela s'appelle l'ironie.
Tim

7

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:

"Nous venons d'entendre parler de l'iPhone OS 4.0 et des nouvelles conditions d'utilisation. Bien que nous pensons être pleinement conformes à ces dernières, nous faisons actuellement tout notre possible pour que cela soit vérifié par Apple. Dès que nous le saurons précisément, nous allons bien sûr partager cette information avec tout le monde. Veuillez patienter pendant que nous en parlons. "

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


7

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.


18
Ce n'est pas que ce soit difficile. Quiconque utilise monotouch connaît déjà l'Objectif C. C'est que l'Objectif C est terrible à développer par rapport aux langages modernes.
James Moore

3
@jamesmoorecode: +1 c'est terrible
abatishchev

1
Oui, j'ai passé le temps à apprendre Obj-c et toutes les API Cocoa Touch, donc ce n'est pas un problème pour moi d'écrire une application native comme le veut Apple. C'est juste que pourquoi voudrais-je faire cela alors que je pourrais utiliser MonoTouch pour le faire beaucoup plus rapidement et partager la `` logique métier '' (mais pas l'interface utilisateur) avec WP7 et Silverlight pour le navigateur et les applications de bureau?
U62

4
Il y a une raison pour laquelle tant d'applications sur l'Appstore se bloquent régulièrement: objective-C. Même ceux de haut niveau comme digg.com
Chris S

2
J'ai appris l'obj c dans le train pour me rendre au travail ce matin - ce n'est pas difficile - mais ça pue - c'est un langage verbeux et archaïque - je préfère écrire des applications iPhone en art ASCII T-SQL.

6

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.


1
Quiconque a refusé mon analyse rationnelle ira à l'enfer des développeurs, juste pour vous le faire savoir (dont la définition consiste à écrire des applications mobiles ciblant uniquement Windows Mobile 6.5 pour toute l'éternité). Je veux dire, discutez avec moi, mais pourquoi le vote négatif pour une raison pour laquelle il pourrait bien ne pas être interdit? Pourquoi ne pas essayer de comprendre ce que fait Apple au lieu de simplement rejoindre la brigade de la fourche et de la torche lorsque la première torche est allumée?
Kendall Helmstetter Gelner

D'accord Kendal, +1 pour l'équilibre.
si618

+1 Un argument raisonnable
Projet de loi

1
+1 pour l'opprimé et son point de vue différent. Chaque fois que je vais contre les masses du groupe, je pense que je vote jusqu'à ce que je sois obligé de supprimer le message.
kirk.burleson

5

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.


2
Un puits, considérant que smalltalk-80 a environ une douzaine d'années d'avance sur c # ...
Stephan Eggermont

comme vous le savez sans doute, Objective C était essentiellement C avec quelques extensions SmallTalk.
AnthonyLambert

4

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.


4

À 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:

3.3.1 Les Applications ne peuvent utiliser les API documentées que de la manière prescrite par Apple et ne doivent pas utiliser ni appeler d'API privées.

Apple a publié une déclaration officielle sur les changements de licence.

Cela indiquerait qu'il est désormais permis d'utiliser MonoTouch.


+1 pour inclure le contenu réel et pas seulement un lien ou une déclaration.
davidtbernal

3

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?


pourquoi Apple ne parle-t-il pas gentiment aux gars de Mono et ne leur demande-t-il pas de supprimer le support pour Droid à la place ...
AnthonyLambert

1
@tony pourquoi abandonneraient-ils le support pour une plate
PeteT

2

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:

  • Monopole
  • Limonade Tycoon
  • Balle Skee
  • Les colons
  • Zombieville

L'une des inclusions amusantes est Toy Story.


1
Le nouvel accord couvre toutes les versions du système d'exploitation, pas seulement la version 4.0.
Philippe Leybaert

Bon point, j'ai oublié qu'il fallait signer un nouvel accord sur le site
Chris S

2

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.


1

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».


1
Je suppose que ce sera un processus automatisé. Je suppose que monotouch et le compilateur flash laisseront des modèles de code communs de la conversion qui peuvent être statistiquement sélectionnés à partir du code compilé.
PeteT

3
oui, si Apple utilise un processus automatisé, il trouvera certainement le modèle de conversion. Mais cette politique de Apply est absurde. Je veux dire qu'Obj-C craint son langage vraiment obscur. J'aime vraiment ce que propose MonoTouch.
Shoaib Shaikh le

@Shoaib Je conviens certainement que c'est absurde et que de nombreux développeurs se tourneront vers Android et Windows Phone, ce qui à certains égards est bon pour la concurrence.
PeteT

1

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:

  • C - qui n'est pas vraiment adapté au développement d'applications de nos jours, en raison de sa nature de bas niveau. C'est principalement un langage de programmation de systèmes aujourd'hui.
  • C ++ - ce qui rend plus difficile la prise de vue sur votre téléphone, mais quand cela se produit, c'est avec un bazooka. En dehors de Qt, il n'y a pas de frameworks d'application complets à utiliser en C ++ (et Qt ne prend pas encore en charge l'iPhone).
  • Objective-C - qui a été inventé par Apple et sera bien sûr pris en charge.
  • JavaScript s'exécutant dans WebKit - essentiellement une application Web.

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.


Apple s'est tiré une balle dans le pied en premier lieu et tout le monde a dit: "Apple est condamné à cause d'une architecture fermée." Il s'avère que se tirer une balle dans le pied - comme tout employé devient consultant vous le dira - est souvent une bonne stratégie.
Dan Rosenstark

Ouais, retenez votre souffle pour que cette partie de la communauté quitte le développement iPhone!
kirk.burleson

Objective-C n'est pas vraiment inventé par Apple, il est juste adopté comme LLVM et les mêmes parties de BSD :)
Emil Marashliev

1

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.


Il parle des API documentées. Donc, je pense que peu importe si vous compilez dans une bibliothèque native ou non
vodkhang

Le fait est que vous voulez acheter un Mac pour le développer pour l'iPhone. Cela vaut non seulement pour Java et Flash, mais aussi pour le mono, car mono vous permet de développer sur un ordinateur Windows / Linux. Mais contrairement à Java ou Flash, le mono n'est probablement pas très utilisé, donc ils ne s'en soucient pas encore.
Stefan Steiger

1

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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.