¿Cuál debo elegir para mi estado actual de cosas: Objective-C o Swift?

Hola,
Entiendo tu confusión y frustración de todo corazón. Como alguien que tuvo que adaptarse recientemente a Swift desde Objective-C, entiendo la lucha.

Permítanme comenzar diciendo que los recursos que está utilizando son fantásticos y definitivamente lo ayudarán a largo plazo. En este momento no debería preocuparse demasiado por la diferencia entre Swift y Objective-C. En lo que deberías pensar es en cuál usar. Ambos lenguajes se pueden usar para el desarrollo de iOS, sin embargo, actualmente se sugiere que intentes aprender Swift ya que se está convirtiendo en el lenguaje preferido de Apple (especialmente después del lanzamiento de Swift 2.0).

Lo que sugeriría que haga es lo siguiente: no deje de seguir los tutoriales y las clases en las que está trabajando actualmente. Al mismo tiempo, comienza a estudiar el lenguaje Swift. Específicamente del Manual gratuito Swift (El lenguaje de programación Swift) publicado por Apple. ¡Notarás que la única diferencia entre desarrollar aplicaciones de iOS en Swift y Objective-C es la sintaxis del lenguaje! Swift y Objective-C utilizan el SDK de iOS. Esto significa que el código que escribe en Objective-C puede traducirse a Swift solo cambiando la sintaxis del idioma.

Por ejemplo:
C objetivo

NSString * myVal = @ “¡Hola, mundo!”;
UIView * myView = [[UIView alloc] initWithFrame: CGRectZero];
NSLog (@ “Hey!% @”, MyVal);

Rápido

let myVal = “Hola mundo”
let view = UIView (marco: CGRectZero)
println (“¡Hola! \ (myVal)”);

La única diferencia entre estos dos bloques de código es que la sintaxis de Objective-C es diferente de la de Swift. Ambos crean una Cadena y una UIView y luego imprimen “¡Hola! Hola Mundo”

¿Le ayudará escribir en Swift y mirar tutoriales en Objective-C?
Absolutamente. Swift solo se ha lanzado durante unos meses, mientras que Objective-C ha estado en uso durante años . Esto, por supuesto, significa que hay muchos más recursos disponibles para Objective-C en lugar de Swift. Cada vez que busco algo para mis proyectos de iOS, el 95% de las veces la respuesta está en Objective-C y tengo que convertirlo en código Swift (que es demasiado complicado). Al practicar y comprender ambos idiomas, estará a la vanguardia del juego y listo para desarrollar mejores aplicaciones.

En conclusión, continúe usando esos recursos basados ​​en Objective-C y entendiendo cómo funciona realmente iOS. Al mismo tiempo, sin embargo, intenta convertir algo de Objective-C que estás aprendiendo en Swift. Puedo garantizar que lo dominarás bastante rápido. ¡Buena suerte!

Hay algunos puntos que debo mencionar antes de decirte cuál debes elegir.

  • Aprender Swift u Objective C no es el principal problema con el desarrollo de aplicaciones o juegos de iOS. Aprender los marcos de Cocoa Touch es. Quiero decir que debes saber sobre UIKit, GameKit, StoreKit, etc. El nombre de los métodos es el mismo si usas Swift o no. Solo la sintaxis de cómo llamar a los métodos es diferente entre Objective C y Swift.
  • Si quieres hacer juegos, es mejor si comienzas con algunas herramientas de desarrollo de juegos como Unity, Cocos2D o Corona. Tienen herramientas para crear juegos multiplataforma que se pueden ejecutar tanto en Android como en iOS, por lo que la portabilidad ya no será un problema. Por lo tanto, elegir entre el objetivo C o Swift es irrelevante. Por cierto, puede considerar hacer juegos con herramientas de juego de Apple como SpriteKit, SceneKit y Metal.
  • Es posible escribir parte de la aplicación con Swift y otras partes con el Objetivo C. No debe elegir un idioma al comienzo del desarrollo de la aplicación y atenerse a él hasta el final. Las clases Swift pueden llamar a métodos del Objetivo C y viceversa. Entonces, si comienza con el Objetivo C y luego descubre que Swift es mejor, puede agregar clases Swift y sus códigos anteriores no necesitan cambios.

Si aún cree que tiene problemas para elegir entre Swift y Objective C, lea los siguientes.

Objetivo C contras:

  • Más de 30 años
  • Tiene algunos problemas de administración de memoria con valores nulos que provocan bloqueos en las aplicaciones de iOS.
  • Creado para otra cosa y luego utilizado para el desarrollo móvil.

Objetivo C Pros:

  • Muchos libros, videos de YouTube, ejemplos de códigos y tutoriales en línea.
  • Muchos desarrolladores experimentados a los que puede hacer preguntas.
  • Sintaxis de lenguaje estable.

Contras rápidos:

  • Cambie su sintaxis con cada actualización de Xcode cada pocos meses.
  • La refactorización de código no funciona con Swift
  • Falta de suficientes tutoriales y ayuda
  • Falta de estabilidad
  • Demasiado nuevo (casi un año desde la introducción)
  • Agregue 8 MB al tamaño de su aplicación porque el tiempo de ejecución Swift no está incluido en iOS y debe integrarse en cada aplicación que tenga una clase Swift.

Pros rápidos:

  • Se corrigieron muchos problemas heredados del objetivo C
  • Más fácil de aprender y más fácil de codificar.
  • Creado especialmente por Apple para OS X e iOS

Sabemos con certeza que Objective C tiene algunos problemas y es por eso que Apple creó un nuevo lenguaje de programación. Pero Swift todavía está evolucionando y tiene algunos problemas menores que se solucionarán en un futuro próximo. Antes de Swift 2.0, compilar códigos Swift no era incremental y necesitaba más tiempo que el Objetivo C, pero ahora está solucionado. Los inconvenientes que mencioné para Swift se solucionarán pronto.

No desarrollo juegos (tengo uno en App Store, pero eso fue solo una muestra cuando aprendí SpriteKit). La mayoría de mis aplicaciones son aplicaciones de utilidad o aquellas que obtienen algo de Internet y se lo muestran al usuario. Me refiero a algo como el clima, el correo o Facebook. La mayoría de ellos tienen menos de 5 MB, por lo que no puedo soportar ese incremento de 8 MB en el tamaño de la aplicación solo porque usé códigos Swift. Si quieres crear juegos que sean cientos de megabytes, esos 8 MB podrían no ser tan importantes para ti.

Tengo códigos Swift del año pasado que simplemente dejaron de funcionar porque la sintaxis ha cambiado desde entonces y, aunque hay una conversión automática en Xcode, todavía tiene algún error de compilación que no puedo solucionar.

Mi opinión personal es que el Objetivo C no es tan malo y puedes seguirlo durante un año hasta que Swift se vuelva más estable.