Tu Primera Aplicación iOS — Objective-C o Swift?

Este artículo está dedicado a aquellos programadores que están aún en el filo de la duda respecto a elegir tal o cual lenguaje y porque no también para los que se están iniciando en el mundo de la programación.

TL;DR: Hazte experto en Swift, y luego aprende los principios básicos de Objective-C.

La pregunta es: —¿Debo comenzar con ese viejo bicho raro de Apple  al que llaman Objective-C o este moderno, innovador y fresco lenguaje de programación, Swift?

Creo que la mayoría va a coincidir en que se tengan que aprender ambos al mismo tiempo, esto se debe a dos razones principales según mi perspectiva:

  1. Objective-C seguirá vigentes por unos años más.
  2. Alguna vez te tocará mantener algún proyecto o librería.
Los más puristas recomendarán comenzar primero con Objective-C.
Inconcebible para mi mente por cierto, porque para cuando aprendas todas las mañas de Objective-C, Swift habrá evolucionado tanto que te tomaría cierto tiempo valioso para aprender también todas sus particularidades. Es cierto que lo mencionado anteriormente puede que te ayude mucho en el campo laboral pero eso dependerá de la decisión de cada uno.

Yo propongo que: aprendas directamente Swift. Sin ningún tipo de remordimiento de no haber conocido la vieja escuela. Con esto no estoy diciendo que nunca aprendas Objective-C.

En términos de programación es mejor darle mayor énfasis a Swift y a continuación te voy a explicar porqué:

1. Fácil de aprender.

Swift para mí es mucho más fácil de comprender, incluso para alguien nuevo en este rubro. Digo esto porque cuando yo comencé a programar para iOS4, me fue muy difícil cambiarme del entorno web al mobile.


2. OpenSource.

Swift está creciendo de manera exponencial en la comunidad actual, es bueno empezar con algo que ya tiene una posición sólida en el mercado y a la vez quiere evolucionar.

La cantidad de librerías hechas en Swift crece a pasos agigantados, puedes comprobarlo tú mismo haciendo una simple búsqueda en Google.

Lo bueno es que Apple nos deja a nuestra disposición las nuevas funciones que traerá Swift, no importa cuándo leas esto.

Swift—https://swift.org/

3. Veloz.

Swift fue diseñado específicamente para ser más rápido que su antecesor (según Apple, un 40% más rápido que Python).

Apple Swift Introduction — https://www.youtube.com/watch?v=MO7Ta0DvEWA

4. Playground.

Una de las características más interesantes que Swift presenta es el Playground, un lugar de recreación que permite a los desarrolladores ver el resultado instantáneo de una porción de código, el cual es compilado en vivo mientras que escribes. También tienes la posibilidad de inspeccionar el contenido de tus variables en cada punto de la ejecución.

El Playground de Swift no solamente sirve para probar código, puedes usarlo para documentar tu proyecto agregando ejemplos, tutoriales y casos de uso comentando con sintaxis Markdown.

Desde este link puedes descargar la demo actualizada del primer Playground que Apple nos ofrecía, en ella podrás observar como el programador puede desplegar una imagen y/o ver el resultado de una operación.

Para activar/desactivar el renderizado de los comentarios puedes hacer click en Editor » Show Raw/Rendered Markup.

Objective-C no poseía esta funcionalidad (Al menos no nativamente) — Interactive Playgrounds

5. Tuples.

Tuples o tuplas en español, según las matemáticas son simplemente un conjunto finito de elementos ordenados, el cual en Swift nos sirven para agrupar múltiples valores de distintos tipos. Tengan en cuenta que Objective-C no posee un soporte directo para las tuplas.

Las tuplas de Swift se clasifican en dos tipos:

Basic Tuples

Para crear una Basic Tuple basta con agregar varios tipos de datos separados por coma dentro de un paréntesis.

En la segunda no necesitamos especificar el tipo de datos a recibir gracias a la inferencia de tipos.

Podemos acceder a los valores de dos formas:

  1. Mediante índices:
Nunca lo he visto en código en producción pero es interesante conocerlo.

2. Por descomposición:

Muy similar al constructor list() de PHP.

Named Tuples

Para acceder de manera más eficiente y rápida a los valores, podemos crear Named Tuples. La sintaxis es la siguiente

Y para acceder a los valores, lo hacemos de la siguiente manera:

La sintaxis es similar a un Struct y un Class.
Cuando creabas una función/método en Objective-C, si necesitabas retornar más de un valor, debías crear una clase entera con sus propios atributos.

… y puedo seguir explayándome con infinitos puntos acerca de este tema pero creo que es mejor limitarlo sólo a los que particularmente son más importantes para mí.

Conclusión

El objetivo de este artículo no es menospreciar a Objective-C, el cual me ha acompañado últimamente en mi carrera como programador. Al final no importa cual termines usando, el lenguaje es solo una parte de la ecuación. Lo fundamental aquí es aprenderse todos los frameworks que el SDK de iOS y OSX nos ofrece.

Pero como dije al inicio de este artículo mi recomendación final es: Volverte un experto en Swift para luego aprender los principios básicos de Objective-C.

“Stay hungry, stay foolish.” — Steve Jobs