2010-04-23 6 views
11

saluer, Je suis C# type de programmeur. Je prévois de commencer à développer l'application pour iPhone mais je ne suis pas sûr si je devrais utiliser C# sous MonoTouch ou simplement utiliser la langue maternelle pour iPhone OS Objectif C.MonoTouch & C# VS Objective C pour l'application iphone

Y at-il un programme différent pour l'application iphone utilisant C# ou objectif C?

est-il limitation en utilisant C# à l'application du programme pour iPhone ou il peut faire autant que l'objectif C peut faire pour développer l'application iPhone?

+2

Je crois que cette question couvre le même motif que celui demandé ici: http://stackoverflow.com/questions/1583856/is-monotouch-worth-the-cost-or-should-i-just-learn- Objective-c –

+0

Il le fait ... mais maintenant cette question a un contexte différent, étant donné les nouveaux termes d'Apple interdisant (techniquement) les applications croisées. – Armstrongest

Répondre

12

MonoTouch enveloppe la plupart des mais pas tout le SDK iPhone. Donc, oui, il y a des choses que vous ne pouvez pas faire (encore), mais elles sont relativement rares et espacées.

Beaucoup de gens trouvent que l'utilisation .Net MonoTouch, ils sont plus productifs (au moins au départ), car ils peuvent tirer parti de leurs compétences existantes. D'un autre côté, il n'y a rien de tel que de travailler dans la langue maternelle du pays, cela prend un peu plus de temps. Vous devrez apprendre quelques Objective-C depuis la plupart des documents là-bas dans le monde l'utilise (et/ou de niveau C API CoreFoundation). La nature dynamique d'Objective-C se sentira étrangère au début, mais vous pouvez la trouver très libératrice une fois que vous l'aurez complètement intégré. Après avoir utilisé plusieurs langues dans ma carrière, je trouve Objective-C (et les API Cocoa) l'une des expériences de développement les plus agréables là-bas.

+0

Quelle est l'affirmation "ils ont choisi de laisser passer les applications MonoTouch"? –

+0

@yar, plusieurs développeurs ont signalé que leurs applications basées sur MonoTouch ont été acceptées après avoir accepté la nouvelle licence de développeur. On ne sait pas si Apple a choisi de ne pas appliquer ß3.3.1 pour MonoTouch (mon soupçon) ou si Apple n'a pas encore commencé à l'appliquer. –

+0

@Barry Wark, je pensais qu'il n'y a aucun moyen - pour l'instant - pour Apple de dire si l'application est faite avec MonoTouch? Est-ce vrai (je veux dire, compte tenu des connaissances actuelles)? –

2

Il y a un débat quant à savoir si Apple va permettre. A première vue, il ne semble pas:

Dans la nouvelle version du iPhone Developer Program Contrat de licence publié par Apple aujourd'hui (et qui les développeurs doivent accepter avant télécharger la version bêta 4.0 SDK), section 3.3.1 lit maintenant:

3.3.1 - les applications peuvent utiliser uniquement API documentées de la manière prescrite par Apple et ne doivent pas utiliser ou appeler des API privées. Les demandes doivent être écrits à l'origine en Objective-C, C, C++ ou JavaScript comme exécuté par le moteur iPhone OS WebKit , et seul code écrit en C, C++ et Objective-C peuvent compiler et lien directement contre les API ( documentées par exemple, les applications qui pointent vers API documentées par un interdit couche de traduction intermédiaire ou compatibilité ou de l'outil).

De monotouch forums

+1

Je suis d'accord. Jusqu'à ce qu'Apple clarifie leur position sur MonoTouch, je considère que c'est un risque sérieux pour un projet commercial. –

10

Voici une réponse de développeur MonoTouch plutôt que d'une conjecture de gens feuillettent lire des blogs.

Avez-vous acheté la licence Monotouch? Si ce n'est pas le cas, alors l'objectif-C serait préférable. Si vous avez acheté une licence alors il est logique de développer l'application en MonoTouch parce que:

  • Le domaine et la logique métier peut facilement être porté pour une application Windows Mobile 7 plus tard cette année
  • La même chose est aussi cas pour Monodroid qui arrive bientôt, et l'API pourrait facilement être porté sur Java aussi.
  • Les contrôleurs, les vues et l'ensemble de la barre système Monotouch static void main peuvent être très facilement convertis en objectif-C. Les noms sont tous identiques mais dans le cas Pascal.

En ce que les applications acceptée - à ce jour d'Apple ont laissé MonoTouch apps à travers. Je ne dis pas qu'ils ne diront pas soudainement "NON, VOUS UTILISEREZ OBJECTIVE-C" mais pour eux d'interdire un client iPhone SO sur un site de haut niveau comme Stackoverflow serait mauvais PR. Apple utilise des applications dans leurs démos qui cassent leur propre SDK (Tap Tap Revolution étant un), et 1 sur 10 des jeux les plus vendus de l'appstore utilisent une partie santé de none-objective-C. Monotouch est un mappage direct à Cocoa et UIKit. Vous devez avoir un mac pour utiliser le compilateur et IDE. Pour autant que je sache, Flash n'avait pas de telles restrictions et son interface était beaucoup moins stricte en termes de forçage de l'ensemble de «widget» commun comme UINavigationController, UITabViewController, UIAlertView et ainsi de suite.

+0

Pour être sûr, je voudrais utiliser Obj-C, alors vous ne risquez pas de perdre votre temps. –

+1

Si elle a été rejetée la partie de l'interface utilisateur serait certainement une perte de temps. Mais les bits pour l'interrogation pourraient être utilisés plus tard pour Winmo et Android –

6

Voici ma prise: si vous n'avez absolument jamais vu le code Obj-C dans votre vie, il faudra un peu de temps pour s'y habituer. Mettez cela ensemble avec le fait que le SDK est totalement différent et vous devrez apprendre chaque nouvelle méthode, et il faudra probablement au moins quelques mois pour que vous deveniez un développeur obj-c moyen si vous étudiez dur . Au lieu de cela, utilisez MonoTouch et apprenez l'ensemble du SDK en utilisant C#. Dans quelques semaines, vous vous sentirez comme à la maison avec toutes les classes, Interface Builder, etc. Vous serez en mesure de développer l'application de la même manière que vous le feriez avec Obj-C, mais en C#. La version de démonstration vous permet d'utiliser tout, gratuitement.

ALORS vous décidez quoi faire. Selon la façon dont tout le problème avec Apple va, vous pouvez décider de continuer à utiliser MonoTouch, ou vous pouvez décider d'apprendre Obj-C, et utiliser essentiellement toutes les connaissances que vous avez déjà acquises sur le SDK, ce qui rendra la transition beaucoup plus facile .