Uno de los principales mitos del desarrollo para iOS es que es difícil por culpa de Objective-C, un lenguaje críptico y propenso a errores que no perdona los fallos. Y el mito moderno derivado de este es que Swift, por el contrario, facilita mucho las cosas ya que su sintaxis es más sencilla y directa.
Pero la realidad es que la verdadera barrera para aprender a programar para iOS es dominar Cocoa Touch. Es una API para programar aplicaciones para este famoso sistema operativo que ofrece una capa de abstracción por encima de iOS.
Esto quiere decir que aprender un lenguaje u otro es prácticamente cuestión de estética y de preferencia, ya que lo que realmente importa es aprender lo que hay debajo de ellos.
Dado que Swift es el nuevo y moderno lenguaje que está impulsando Apple Sin duda ofrece muchas ventajas frente a Objective-C:![]()
- Código más conciso, claro y limpio que facilita la escritura y la comprensión
- Ofrece tipado fuerte de datos, inferencia de tipos, sobrecarga de operadores…
- Elimina los punteros, controla el desbordamiento de variables
- Gestión automática de la memoria
- Genéricos
- Estructuras con métodos, extensiones y protocolos
- Facilita mucho la depuración
- Facilita el uso de patrones de programación funcional
Pero además de Swift también es importante aprender Objective-C por muchas razones:![]()
- Cocoa Touch está basado en este lenguaje y conocerlo te ayudará a comprender mejor sus paradigmas.
- Las principales bibliotecas para iOS están escritas con Objective-C.
- Es mucho más fácil visualizar la ejecución de tus programas a bajo nivel y detectar problemas de memoria o CPU cuando trabajas en Objective-C que con Swift.
- Mucha de la documentación que existe para Swift parte de la base de Objective-C.
- No son excluyentes: ambos pueden trabajar en equipo, pudiendo crear programas con partes escritas con los dos.
Dado que ambos deben utilizar Cocoa Touch por debajo y esta API está escrita en su totalidad con Objective-C, aunque programes en Swift no te puedes librar de conocer igualmente los conceptos avanzados propios del otro lenguaje, como los principios de orientación a objetos de Objective-C, punteros, protocolos, delegados, montones, pilas, entre otras, simplemente para poder usar la base. Es decir, aunque programes en Swift debes jugar con las reglas de Objective-C. Swift es el futuro pero Objective-C es la base.


0 Comentarios