Pourquoi l'utilisation de MonoTouch pour le développement de l'iPhone n'est-elle pas recommandée?
Nous souhaitons développer une application pour iOS et Android smartphones. Nous sommes principalement en utilisant les technologies Microsoft pour le développement de nos applications. Nous avons pensé que si nous utilisons MonoTouch et Mono pour Android nous n'aurions à maintenir une base de code avec seulement une autre couche d'INTERFACE utilisateur pour chaque appareil.
Parce qu'actuellement, personne dans notre petite équipe a développé une application smartphone et nous en avons besoin rapidement, nous voulons l'externaliser. Nous avons demandé à d'autres entreprises si elles perfer MonoTouch ou Objective-C pour le développement sur iPhone. La plupart d'entre eux a dit, que le serait choisir Objective C. Ils ont dit qu'Objective-C offre plus de fonctionnalités et de possibilités, et c'est plus rapide et MonoTouch il ya une chance qu'Apple ne supporte plus dans l'avenir. Est-ce que toutes vrai ou il y a d'autres raisons de préférer l'Objective-C? Je sais qu'il y a d'autres threads de ce genre partout, mais ils n'ont pas répondu à mes questions, en particulier celle concernant Apple pour MonoTouch.
source d'informationauteur chrinetr
Vous devez vous connecter pour publier un commentaire.
c'est une possibilité SI vous la structure de votre application. Si non: non.
Si vous utilisez Java+ObjC+C# (pour WP7 /Win8 metro etc) alors ce n'est pas une option À TOUS les
Si vous êtes le recours à l'externalisation, vous devez vous dicter ce que vous voulez qu'il écrit, sûrement? Si vous avez besoin de les soutenir dans la maison, et vous avez seulement C# compétences, puis MonoTouch etc plus de sens pour vous, les gens de payer les factures!
FUD, et également incorrect. Monotouch a l'API complète disponible. Si elle n'est pas là, comme Xamarin pour le lier (ce qu'ils ont fait souvent avant)
J'aimerais voir l'indice de référence. Oui, techniquement, il peut être le plus rapide dans certaines circonstances, mais dans l'usage général, MonoTouch la même ou plus rapide.
Programmeur d'erreur est une cause plus fréquente de l'application iOS de problèmes de performances. par exemple ne pas mettre les choses au large de la thread d'INTERFACE utilisateur (qui est plus facile à faire dans MonoTouch que dans ObjC, tho blocs ont contribué à ce que beaucoup), ou de prendre trop de temps pour sortir de FinishedLaunching (le "" la méthode, si vous voulez, tho ce n'est pas vraiment...)
La collecte des ordures et des choses comme linq, xml/json de l'analyse, de génériques et collections sont également très précieuse, et très rapide.
oui, il ya une chance. Il ya aussi une chance que Tim Cook va s'enfuir avec Apple milliards et acheter l'ensemble de Hawaii (plutôt que Larry Ellison "je vais avoir cette île," l'achat). Mais les chances sont plutôt minces.
Apple ne prend pas en charge MonoTouch. Xamarin, et ils le font exceptionnellement bien. Apple ne supporte pas de rien, sauf XCode, qui est leur produit.
Apple NE permettre MonoTouch apps (il y en a beaucoup). Une autre façon de voir les choses: en général, 95% du top 100 des meilleurs jeux sont écrites à l'aide de Unity3D, qui est basé sur les mêmes techniques (avance sur le temps de compilation de code C# et l'incorporation d'une cutdown de la version de Mono/.NET framework).
Il y a des raisons de préférer ObjC qui serait:
À présent, la construction d'une croix-plate-forme, le code partagé application être une entreprise facile? L'ENFER N'. C'est une pièce très complexe de développement pour un non-trivial de l'application. Mais c'est la partie la plus amusante de développement de logiciels: si c'était facile, ce serait ennuyeux! Prenez Greg Chaînes livre ( http://www.amazon.com/dp/1449320236 ) pour avoir une idée de ce qui est nécessaire pour iOS+WinPhone+Android style de développement.
Mon intuition est que les sociétés qui vous a parlé de tout simplement sont utilisés pour l'aide Objective-C. c'est là Que leurs compétences se trouvent, et c'est la principale raison pour laquelle ils préfèrent ne pas s'écarter de leur chemin. Les autres raisons peuvent faire valoir dans les deux sens.
Il est vrai que personne ne peut prédire ce que Apple va faire, mais il y a un très petite probabilité que Apple va interdire la troisième partie de boîtes à outils & Api comme ils l'ont fait à l'été 2010. C'était seulement une courte période de temps, et ils ont complètement renversé la décision. Leur objectif actuel est de faire du développement d'une application plus facile, ce qui signifie en laissant le champ ouvert à d'autres méthodes de développement. Je pense que MonoTouch est sûr.
Comme pour la vitesse, C# produit généralement très rapide des fichiers exécutables. Ils ne peuvent pas être assez aussi rapide que l'Objective-C, mais je doute que vous auriez du remarquer une différence. Je me souviens d'un site web quelque part, qui ont montré, C#, surclassant les C/C++ dans certains tests, mais c'était dans les .NET de l'environnement, pas de Mono... et malheureusement je ne trouve pas la référence. Je vais continuer à chercher. Mais la ligne du bas sur la vitesse, c'est que C# vitesses sont très bons. Ce n'est pas comme BASE vs C. de Plus, comme Java/JIT vs C.
C# vous donne de nombreux, beaucoup (!) de avantages par rapport à Objective-C, et ils ont été énumérés dans d'autres Débordement de Pile réponses, donc je ne vais pas les répéter ici. Vous pouvez les trouver assez facilement.
Je suis un évident fan de MonoTouch, mais je dois dire une chose: je pense que c'est une erreur pour les entreprises à penser que parce qu'ils sont à l'aise en C#/.NET qu'ils pourront facilement être en mesure de développer et/ou maintenir des applications iOS à l'aide de MonoTouch. Il n'est pas vrai, parce que MonoTouch est fondamentalement un C# couche sur le CocoaTouch API, ce qui signifie que vous avez à apprendre la Pomme façon de faire les choses. Vous avez de l'application des délégués et de la vue des contrôleurs et tous les UIKit choses. Il y a une vraie courbe d'apprentissage. Mais si vous êtes à l'aise en C#, MonoTouch sera d'une grande aide.
Mise à JOUR:
J'ai trouvé l'article sur C# vitesse: Tête-à-tête de référence: C++ vs .NET
J'ai effectivement utilisé MonoTouch pour chaque application que j'ai jamais développé. La Performance n'a jamais été un problème, et je ne peux pas imaginer à quel mauvais pour moi, il aurait été en Objective-C. j'ai eu 2 top 10 des apps dans l'app store: "Dessinez Un Stickman" et "Draw A Stickman: Épisode 2" (ne vous inquiétez pas, nous sommes de plus en plus).
Si vous savez C# et .Net vos gains de productivité vont être énorme par rapport à ce qui se passerait en essayant d'apprendre Objective-C. j'ai été un C# .Net développeur (Windows uniquement) avant le développement d'iOS et la transition vers MonoTouch est grande.
Si vous aimez Linq, l'analyse de XML en moins de 100 lignes, la collecte des ordures, les génériques, simple, multi-threading, et pas bizarre crochets, MonoTouch est fait pour vous.
- Je utiliser à la fois Objective-C et c# (MonoTouch & Droid), et j'aime vraiment les deux. Quand je code en c#, il y a beaucoup de fonctionnalités telles que Linq qui j'aimerais en Obj-C, & quand je code en Obj-C il y a beaucoup de choses que j'aimerais l'avoir dans le c#, mais je m'adapte à ce que je suis en codage assez rapidement. Re performances, j'ai détecté aucune différence, même pour assez de graphiques trucs, je ne voudrais pas l'utiliser comme une raison de ne pas utiliser le c#.
Je pense que c'est en fin de compte à ce que vous êtes à l'aise de codage, même si bien sûr d'un projet multi-plateforme, vous POUVEZ avoir pleinement de la croix-plate-forme de code de base si vous utilisez Mono, et vous n'aurez plus qu'à faire les trucs de l'INTERFACE utilisateur dans une plate-forme spécifique d' - quand il s'agit de toute évidence, cela vous aurez besoin de connaître le natif de choses pour obtenir votre Isu qui travaillent dans une manière qui est appropriée à la plate-forme et familier à ses utilisateurs.
Nous avons une ligne de l'application, qui utilise MS SQL comme une banque de données, et a WinForms et d'une INTERFACE web. Il s'intègre à windows mobile 6.5 et tablettes avec des services web. Tous les c#.
Nous avons pleinement engagé à MonoTouch après quelques expériences en Objective-C et HTML 5 (nous avons eu de travail sur les prototypes): nous arrivons à la ré-utilisation de notre logique métier, et nous sommes à l'aise développement d'un nouveau code en c#.
Notre logique métier est constamment renforcée, et ces améliorations sont immédiatement visibles à l'application mobile - sans avoir à reproduire la logique Objective-C ou C++.
Notre principal problème est de trouver un programmeur c# qui est à l'aise avec l'iPhone et l'iPad de l'INTERFACE utilisateur.
MonoTouch est stable et nous avons rencontré aucune limites (nous sommes de la liaison à la même iOS API Objective-C se lie à l'). Lors de notre courbe d'apprentissage, nous avons eu de question, il a cogné dans bugs et ont eu quelques malentendus - mais le soutien de Xamarin est superbe.
Performance a été un non-problème - notre app est accrocheur, même si il fait beaucoup de derrière les coulisses.
Personne ne peut vous dire avec certitude ce que sera le support de apple et ce qu'il ne va pas soutenir à l'avenir, toutefois, apple avait quelques problèmes avec le mono dans le passé, et depuis l'histoire tend à se répéter, alors il peut être une possibilité que cela se produise à nouveau
Après avoir dit que, toujours aller avec l'application native de développement SDK et des environnements, il est plus souple, et il sera mis à jour en temps réel, et les performances seront toujours mieux en le natif