¿Debo usar Mono + C#? ¿O estoy mejor aprendiendo y usando el objetivo c? Gracias ¿Cuál es la forma más fácil para que un programador C# se desarrolle para i-Phone?
Respuesta
Esto va a ser un poco de una pregunta de opinión, pero mi opinión es que es mejor quedarse con C#. Cambiar al objetivo C aumenta la cantidad de información nueva que debe aprender antes de poder ser productivo en su entorno.
Incluso manteniendo con C# que todavía tendrá que ...
- Aprender la API iPhone
- Aprender las peculiaridades de desarrollo con el propio iPhone
Hay algunos aspectos negativos de usando C# aunque
- La mayoría de las muestras de iPhone estarán en Objective-C. Debido a que usted no sabe el idioma que será más difícil aplicarlas a su problema conjunto
- No están obligados a ser pequeñas peculiaridades en el uso de la compilación estática en Mono que tendrá que acostumbrarse.
Mi intuición es que estos serán menores en comparación con el costo de aprender un nuevo idioma.
EDITAR
quería aclarar mis ideas sobre el aprendizaje de un nuevo idioma. Creo que aprender idiomas es divertido y una parte necesaria de la vida de un programador. Debería al menos experimentar con un nuevo idioma una vez al año. Este año estoy jugando con F #.
La única razón por la que recomendé en contra de esta pregunta fue la OP dijo que "la forma más fácil ...". Aprender un nuevo idioma requiere tiempo extra y requerirá un poco más de esfuerzo, por lo que califiqué que es más fácil cumplir con C#.
Pero, por otro lado ... ¡siempre es divertido aprender cosas nuevas! Pero como la pregunta es "fácil", tienes razón. Es probable que MonoTouch sea el camino a seguir, aunque es más caro con una licencia de $ 400 y es probable que tenga menos apoyo de la comunidad con problemas. –
Toma un tiempo acostumbrarse. He usado C, C++, Java y C#, pero tuve problemas para pensar en algunos de los conceptos (y aún así no me sentiría cómodo). Aunque tuve más problemas con XCode y algunos de los caprichos del diseñador que el lenguaje en sí. –
He aprendido muchos idiomas en mi vida profesional. No tengo miedo a la nueva sintaxis. ¿Hay un nuevo paradigma detrás del objetivo-c? ¿O es un lenguaje orientado a objetos regular? – Nestor
Eche un vistazo a MonoTouch.
Me pregunto qué tiene que decir Apple sobre MonoTouch. ¿Conoces algún posible problema en el futuro? –
MonoTouch está bien porque no está utilizando un intérprete como algunos otros idiomas en el iPhone. Se compila con código Objective-C nativo, por lo que al final, los dos son indistinguibles. Sin embargo, está a merced del soporte de Novell de MonoTouch, en lugar del soporte directo de Apple. –
Bueno saber. ¡Gracias! –
Si usted quiere ser capaz de utilizar todas las API del iPhone y tener acceso a la depuración de código nativo, probablemente van a querer aprender Objective C.
Hay, sin embargo, que por Mono-Touch un pequeño precio le permite desarrollar aplicaciones para iPhone usando C# pero carece actualmente de soporte para la depuración. También existen limitaciones en ciertos usos de los genéricos y otras características de alta gama. Here's a link to the limitations.
Asimismo, para utilizar Mono-Touch que aún necesita Xcode y un entorno Mac configurar para desarrollar para el iPhone. Y es evidente que debe unirse al programa de desarrollo de Apple iPhone si realmente desea implementar algo en un dispositivo real.
Esto probablemente ofender a algunos, pero para ser honesto, si se va a hacer ningún desarrollo serio, usted debe aprender Objective-C. No saber Objective-C en el desarrollo de iPhone será un obstáculo. No podrás entender muchos ejemplos; tienes que lidiar con las peculiaridades de Mono, mientras que si tienes un conocimiento práctico de Objective-C, puedes obtener mucho más de la documentación de la plataforma.
Personalmente, no entiendo la posición que dice que aumenta la cantidad de información que necesita a favor de usar Mono en el idioma nativo de la plataforma. Me parece algo contraproducente. Creo que si esta es una propuesta muy costosa (aprender un nuevo idioma), entonces puede valer la pena dedicar algún tiempo a los conceptos fundamentales de programación para que el aprendizaje de nuevos lenguajes sea una propuesta bastante barata.
Tu razonamiento tiene perfecto sentido para mí. Gracias – Nestor
Y para colmo de males; MonoTouch ni siquiera tiene soporte de depuración adecuado. Por lo tanto, tendrá que aprender todas estas cosas nuevas con solo impresiones de registro para guiarlo. ¿Desde cuándo un principiante pasó más tiempo escribiendo un código nuevo que depurando? – PeyloW
Monotouch es más fácil para usted ahora. Pero más difícil más tarde.
Por ejemplo, ¿qué sucede cuando salen nuevas semillas que necesita para probar pero romper MonoTouch por alguna razón?
Al seguir con Mono, cada vez que busca recursos para marcos tiene que traducir mentalmente cómo va a usarlos con Mono. Los archivos binarios de la aplicación serán más grandes, su tiempo de desarrollo no será mucho más rápido después de algunos meses en Objective-C, y otros desarrolladores de aplicaciones tendrán una ventaja mucho mayor sobre usted porque están utilizando la plataforma nativa.
Otra consideración es que está buscando usar C# porque está más familiarizado con el lenguaje que Objective-C. Pero la gran mayoría de la curva de aprendizaje para el iPhone no es Objective-C, son los frameworks, a lo que tendrás que recurrir también con C#.
Para cualquier plataforma, debe usar la plataforma que expresa directamente la filosofía de diseño de esa plataforma: en el iPhone, es decir, Objective-C. Piense en esto desde el ángulo inverso, si un desarrollador de Linux acostumbrado a programar en GTK quisiera escribir aplicaciones de Windows, ¿seriamente recomendaría que no usen C# y se adhieran a GTK porque era "más fácil" para ellos hacerlo?
MonoTouch Creo que es el camino a seguir, pero tenga en cuenta que todavía está en su infancia. Pude instalar las herramientas de desarrollo Mono y poner en funcionamiento el IDE de MonoDevelop, pero el IDE en su estado actual es increíblemente lento y casi inutilizable; al menos ejecutándose en Snow Leopard para Mac OSX. Busqué en Google y parece que se trata de un problema conocido, pero está resuelto en los repositorios de última generación de MonoDevelop. Creo que Novell está trabajando en algo, pero también siento que estarás luchando con todo el framework mientras todavía está en las primeras etapas.
Por lo tanto, en resumen, si desea ir a la ruta C#/MonoTouch, prepárese para trabajar mucho y perseguir fantasmas debido a inestabilidades o falta de adecuación del marco. Creo que esto es cierto para cualquier nuevo marco.
Me pareció interesante Podcast
- 1. ¿Cuál es la forma más fácil de crear una extensión C opcional para un paquete python?
- 2. C#: ¿cuál es la forma más fácil de restar tiempo?
- 3. ¿Cuál es la forma más fácil de obtener la ubicación actual de un iPhone?
- 4. ¿Cuál es la forma más fácil para que una aplicación Java reciba el correo electrónico entrante?
- 5. ¿Cuál es la forma más fácil de animar una línea?
- 6. ¿Cuál es la forma más rápida de que un programador de Ruby elija Python?
- 7. Cuál es la nube más fácil para contenido web estático
- 8. ¿Cuál es la mejor manera para que un programador se acerque a aprender un nuevo idioma?
- 9. ¿Cuál es la mejor y más fácil forma de crear un formulario UITableView?
- 10. ¿Cuál es la forma más fácil de exponer subfunciones de archivos M para pruebas unitarias?
- 11. ¿Cuál es la forma más fácil de conservar datos en una aplicación de iPhone?
- 12. ¿Cuál es la forma más fácil de eliminar todos los atributos de un XML en C#?
- 13. ¿Cuál es la forma más fácil de guardar una consulta LINQ para su uso posterior?
- 14. ¿Cuál es la forma más fácil de hacer una combinación de teclas para Windows?
- 15. ¿Cuál es la forma más fácil de generar xml en C++?
- 16. ¿Cuál es la forma más fácil de usar el código fuente C en una aplicación Java?
- 17. Aprendiendo OO para un programador en C
- 18. ¿Cuál es la forma más fácil de paralelizar mi programa C# en varias PC?
- 19. ¿Cuál es la forma más fácil de actualizar una aplicación grande de C# winforms a WPF
- 20. ¿Cuál es la manera más fácil en C# para recortar una nueva línea de una cuerda?
- 21. ¿Cuál es la forma más fácil de crear una tabla de Excel con C#?
- 22. ¿Cuál es la forma más fácil en C# para validar si una expresión regular está bien formada?
- 23. ¿Cuál es la forma más fácil de eliminar NSStrings vacíos de un NSArray?
- 24. ¿Cuál es la forma más fácil de hacer comunicación entre procesos en C#?
- 25. Delphi versus C++ Builder - Cuál es la mejor opción para un programador de Java Hacer Win32
- 26. ¿Cuál es la forma más fácil de obtener una OutOfMemoryException en C#?
- 27. ¿Cuál es la forma más fácil de recordar la dirección IP que se puede hacer ping públicamente?
- 28. ¿Cuál es la forma más fácil de manejar una matriz asociativa en C#?
- 29. ¿Cuál es la forma más fácil de asegurarse de que la carpeta exista antes de hacer un File.Move?
- 30. ¿Cuál es la forma más fácil de "separar/demonizar" un script Bash?
¿Qué es un i-Phone? –