De Objective-C a Swift
4.2 (47 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,947 students enrolled
Wishlisted Wishlist

Please confirm that you want to add De Objective-C a Swift to your Wishlist.

Add to Wishlist

De Objective-C a Swift

Guía para aprender los fundamentos básicos de Swift en base a los conocidos de Objective-C
4.2 (47 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,947 students enrolled
Last updated 3/2017
Spanish
Price: Free
Includes:
  • 3.5 hours on-demand video
  • 2 Articles
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Conocer la sintaxis básica de Swift
  • Saber comparar Swift con Objective-C
  • Consultar la documentación oficial de Apple
  • Saber la sintaxis de variables, sentencias de control y demás aspectos básicos de Swift
  • Conocer los aspectos avanzados de Swift como las Tuplas o los tipos genéricos de datos
View Curriculum
Requirements
  • Es suficiente con tener un Mac con Xcode 7 instalado en él (se puede instalar directamente desde la Mac App Store)
Description

En este curso vamos a aprender todo lo necesario para saber programar en Swift, y cómo este nuevo lenguaje de programación de Apple se compara con Objective-C.

Swift es un lenguaje de programación multiparadigma creado por Apple enfocado en el desarrollo de aplicaciones para iOS y Mac OS X. Fue presentado en WWDC 2014 y está diseñado para integrarse con los Frameworks Cocoa y Cocoa Touch, puede usar cualquier biblioteca programada en Objective-C y llamar a funciones de C. También es posible desarrollar código en Swift compatible con Objective-C bajo ciertas condiciones. Swift tiene la intención ser un lenguaje seguro, de desarrollo rápido y conciso. Usa el compilador LLVM incluido en Xcode 6. En el año 2015 pasó a ser de código abierto y Google prevee incluirlo como lenguaje de programación por defecto de sus futuras apps de Android.


Who is the target audience?
  • Expertos de Objective-C que busquen migrar a Swift
  • Iniciados en Swift
  • Gente interesada en la programación de apps
  • Programadores con un Mac
  • Programadores con un iPhone o un iPad
Students Who Viewed This Course Also Viewed
Curriculum For This Course
18 Lectures
03:22:18
+
Tu instructor: Juan Gabriel Gomila
3 Lectures 11:27
Tu instructor: Juan Gabriel Gomila
01:39

Cómo hacer el curso si tengo Windows - Mac In Cloud
08:33

Introducción
01:15
+
Los fundamentos de Swift
6 Lectures 01:15:14

Vamos a ver las diferencias entre la declaraciones de variables y la declaración de constantes en Swift.

Swift es un lenguaje con tipado estático, es decir, las variables tienen un tipo establecido en tiempo de compilación. Pero si al declarar una variable le asignamos un valor inicial, el compilador puede inferir el tipo de la variable y no es necesario que lo indiquemos nosotros.

Así en Swift se puede hacer:

var message = "Hello world!"
Y el compilador asignará el tipo String a la variable message. Simplemente porque la expresión asignada ("Hello world!") es de tipo String.

Si queremos, podemos establecer el tipo de la variable pero es algo opcional:

var message : String = "Hello world!"
Ahora bien, la inferencia de tipos requiere que la variable se asigne a una expresión al declararse y no solo eso, requiere también que el compilador pueda determinar el tipo de la expresión asignada.

Las variables y las constantes
23:28

Vamos a repasar lo aprendido

Variables y constantes
4 questions

Veamos los Strings para tratar cadenas de caracteres

Los Strings
15:25

Vamos a repasar los conceptos sobre Strings

Los Strings
2 questions

Un regalo por ser alumno de Juan Gabriel
02:55

Los diccionarios son muy parecidos a los Arrays pero con la diferencia que los elementos no se basan en la posición que ocupan, si no en la clave que les define. 

Los arrays
15:33

Vamos a repasar los contenidos sobre Arrays

Los Arrays
3 questions

La clase es la parte más esencial en que se divide un programa, pudiendo contener una por fichero o varias en uno solo si nos resulta mejor.

Como cualquier lenguaje orientado a objetos, en Swift además podemos utilizar la herencia para estructurar nuestro programa. De esta forma, si hacemos un juego y vamos a tener diferentes tipos de enemigos como un troll, un orco o un espectro, tendremos una clase enemigo que a su vez podrá tener los hijos (o subclases) troll, orco y espectro.

De esta forma, podemos definir métodos que sean comunes a todos los enemigos y que podremos ejecutar en el contexto de cada uno de ellos, aunque luego incluyamos nuevos enemigos.

A su vez, si enemigo es un personaje del juego, también podríamos crear una clase personaje y que enemigo fuera subclase de esta, con lo que aquello común de un personaje, como por ejemplo, saber si está vivo o no, puede ser controlado desde la clase principal e invocado, gestionado o sobrescrito desde cualquiera de sus subclases.

Los diccionarios
15:37

Vamos a repasar lo aprendido sobre diccionarios

Los Diccionarios
2 questions

¿Que te parece este curso?
02:16
+
Las clases y sus métodos
2 Lectures 45:19

En programación, una función es un grupo de instrucciones con un objetivo en particular y que se ejecuta al ser llamada desde otra función o procedimiento. Una función puede llamarse múltiples veces e incluso llamarse a sí misma (función recurrente).

Las funciones pueden recibir datos desde afuera al ser llamadas a través de los parámetros y deben entregar un resultado. Se diferencian de los procedimientos porque estos no devuelven un resultado. En general las funciones deben tener un nombre único en el ámbito para poder ser llamadas, un tipo de dato de resultado, una lista de parámetros de entrada y su código.

Utilizaremos la palabra reservada del lenguaje Swift func para declarar una función. Declararemos una función poniendo su un identificador (nombre de la función) con una lista de argumentos entre paréntesis y separados entre comas ,
Usaremos ->  para establecer el tipo de valor de retorno de la función.

Las clases
26:35

Métodos de una clase
18:44
+
Programación en Swift
2 Lectures 24:05

Si lo que necesitamos es crear alguna estructura condicional, Swift nos ofrece las sentencias “if - else” y “switch”. En el caso del “if” no es necesario poner la condición entre paréntesis.

La comparación que utilicemos dentro de un “if” debe ser booleana, es decir, no se puede comparar cero con falso. Para evitar estos errores, podemos utilizar “if” y “let” de forma conjunta para trabajar con valores que podrían ser vacíos. Esos valores son representados como opcionales. Para ello se hace uso del signo “?” y con ello lo que se le indica es que esa variable puede tener un determinado valor o bien el valor “nil” (el nulo de swift).

La estructura switch suporta algunos tipos de datos y una amplia variedad de operaciones de comparación. No se limita a enteros y comparaciones por igualdad.

Como no podía ser de otra forma, Swift también nos trae estructuras de control para iterar arrays u objetos.

La primera que nos encontramos es “for-in”, que se utiliza para iterar sobre los elementos de un diccionario, proporcionando un par de nombres a utilizar para cada par clave-valor. Otra estructura que podemos utilizar es “for” para iterar un determinado número de veces. El “while” es otra de las que no podían faltar. 

Las sentencias de control
13:42

Vamos a repasar los conceptos de sentencias de control en Swift

Las sentencias de control
3 questions

¿Qué es este tipo de dato? En realidad es la agrupación de varios tipos de datos, complejos o no, dentro de un mismo tipo. Lo más importante de las tuplas no es tanto cómo funcionan por sí solas, si no lo importantes que son al formar parte del sistema en tareas esenciales.

Vamos a suponer que queremos almacenar bajo un mismo tipo el nombre de una película y su año de estreno. Usando la inferencia de datos podríamos hacerlo de una manera tan sencilla como esta:
var film = ("Interstellar", 2014)

Pone (.0 "Interstellar", .1 2,014). ¿Qué significa esto? Pues que no solo ha creado nuestra variable film como una tupla con valores múltiples, sino que les ha asignado un índice a cada uno de manera automática: 0 y 1. Vamos a evaluar entonces film de la siguiente manera, accediendo a estos índices como si fueran métodos de la variable:
film.0
film.1

Una función muy interesante de una tupla, es su deconstrucción. Podemos hacer que cada valor vaya a una variable diferente:
let (pelicula, year) = film
Esta sencilla instrucción nos crea e inicializa dos constantes que recogen el valor de cada uno de los componentes de la tupla por orden de índice.

Un tipo de datos especial: las tuplas
10:23

Vamos a repasar las tuplas

Las tuplas
1 question
+
Swift avanzado
3 Lectures 45:22

Una de las cosas que nos ha traído de cabeza a los programadores a lo largo de los tiempos es qué ocurre cuando una de las variables que tenemos en nuestro código carece de valor. En este caso el lenguaje de programación Swift pretende dar una nueva vuelta de tuerca al problema

Nos va a permitir el uso de un nuevo concepto denominado Opcionales (Optionals) en situaciones donde hemos de permitir una ausencia de valor para una variable. Si ya sois unos programadores experimentados en el mundo Apple lo primero que tenéis que saber es que los opcionales no existen ni en el lenguaje C ni en el lenguaje Objective-C. Es este último, lo más aproximado que tenemos para llegar a los opcionales en Swift es la posibilidad de, por ejemplo, devolver un valor de tipo nil en un método M siempre que este método retorne un objeto. Significará entonces que M va a devolver un objeto que no es válido y lo tendremos que tener en cuenta a la hora de su manipulación para evitar errores en tiempo de ejecución.

Las variables opcionales
24:48

Vamos a repasar los valores opcionales

Valores opcionales
1 question

Los genéricos son una de las novedades más destacadas de Swift respecto a Objective-C.

Si conoces este concepto de C# o Java, o bien estás familiarizado con las templates de C++ no te costará mucho entenderlo(aunque los genéricos de Swift tienen mucho más parecidos con los de C# o Java que con las templates).

Se llama genéricos a la posibilidad de pasar como un parámetro un tipo en lugar de un valor. Los genéricos permiten una mayor reutilización de código al poder reaprovechar un mismo código (una clase o un método) para que trabaje con varios tipos de datos distintos.

Los tipos y funciones genéricas
20:29

Descarga el playground
00:05
+
BONUS: Un regalo para ti
2 Lectures 00:50
Nos vemos en la próxima
00:36

BONUS: Un regalo para ti
00:14
About the Instructor
Juan Gabriel Gomila Salas
4.6 Average rating
4,967 Reviews
23,639 Students
30 Courses
Profesor universitario, Data Scientist & Game Designer

Como Licenciado en Matemáticas, he estado en contacto con gran variedad de escenarios y casos atípicos, donde se plantea una situación y debe resolverse de una forma óptima y eficiente.


Mi CV:

Artículos y publicaciones:

Decenas de artículos y publicaciones relacionadas con el mundo de las matemáticas, el tratamiento de imágenes junto con la revista internacional IPOL, las lógica detrás de las máquinas tragaperras, el diseño lógico de videojuegos y el análisis de datos. Conoce más acerca de estos y otros temas en mi web personal o en la web de mi estudio Frogames.

Docencia Universitaria:

Desde 2015 soy profesor en dos asignaturas de matemáticas del Grado de Telemática impartido por la Universidad de las Islas Baleares y en el HND de Desarrollo de Videojuegos impartido por la Escuela de Diseño de las Islas Baleares. Así mismo, los cursos en Udemy me ayudan a mejorar para convertirme en un instructor no solamente presencial y en grupos reducidos de alumnos si no también haciendo uso de las nuevas tecnologías y a grupos más homogéneos de alumnos.

Desarrollo de Videojuegos en PlaySpace SL:

Desde 2012, trabajo en la empresa de desarrollo de videojuegos española PlaySpace SL, desarrollando juegos clásicos de mesa y social casino como el Parchís, Bingo, Juegos de Cartas o máquinas de Slots. Empecé llevando a cabo las funciones de Game Designer y Data Scientist, definiendo las nuevas funcionalidades a partir de los datos existentes y mejorando el contenido a cada etapa. Desde 2014 dirigiendo el producto como Product Manager y Game Producer coordinando las labores de lanzamiento de nuevos juegos y funcionalidades.

Desarrollo de Apps:

Cuento con experiencia laboral en crear y lanzar de 30 apps y videojuegos lanzados por mi estudio Frogames y en más de 5 proyectos con empresas reconocidas internacionalmente incluyendo Audición Plena, Medical Alert, Plaiout o Pillapartida entre otros. En este aspecto soy publisher de aplicaciones en diferentes países y mercados online incluidos los de Google Play, Amazon Store y Apple App Store. En la web corporativa de Frogames y en mi propio blog encontrarás mi portfolio de proyectos lanzados para que valores su calidad y estilo.

Online Marketing / SEO:

Tengo experiencia en la creación de KPIs y realización de predicciones a medio y largo plazo basada en los datos clave de un negocio. Así mismo, tengo experiencia en optimizar tanto el SEO como el ASO de los artículos y apps que elaboro para conseguir el mayor número de descargas orgánicas sin invertir dinero en marketing. Así mismo, he coordinado varias campañas de Google Adwords y Facebook Ads para acelerar las descargas y visitas de los productos que he lanzado, como estos mismos cursos en Udemy.

Si quieres más información gratuita sobre este tema, en el blog de mi página web tienes varios artículos acerca de esta y otras temáticas interesantes relacionadas con el mundo del marketing.

Desarrollo Web:

He elaborado las páginas webs de mi propio estudio y blog creando plantillas Wordpress en HTML 5 haciendo uso de Bootstrap 3.

Data Mining y Business Intelligence

Con la experiencia en el análisis de datos en PlaySpace, me he especializado en bases de datos relacionales con MySQL y los algoritmos de Slice & Dice para tratar y organizar los datos en dashboards con sentido y usables para sacar conclusiones acertadas en los proyectos que he trabajado. En el blog de mi web personal encontrarás más artículos relacionados con el Data Mining y Business Intelligence con el que he trabajado en el area de los videojuegos y apps móviles.