Udemy

Platform

Español

Language

Mobile Apps

Category

Curso completo de iOS 11 y Swift: de cero a experto con JB

El Curso más actualizado de iOS 11 y Swift 4 en español. Desarrollo completo de apps móviles para iPhone y iPad en Swift

4.40 (1200 reviews)

Students

56 hours

Content

Jan 2020

Last Update
Regular Price

BLUE HOST
Blue Host
Fast, easy, and secure WordPress hosting in minutes + 1 free domain name
65%OFF : $2.95/month

What you will learn

Conocer y saber utilizar Xcode 9

Saber utilizar Swift 4, el nuevo lenguaje de programación de Apple para iOS 11

Conocer los nuevos frameworks de desarrollo como PDFKit, CoreML, Vision, ARKit o MusicKit entre otros muchos más

Aprender en base no solo a los vídeos que muestran los frameworks básicos de desarrollo, si no a plantearse y resolver retos que se irán planteando durante el curso en forma de concursos y ejercicios adicionales.

Utilizar un control de versiones en forma de repositorio Github o Bitbucket

Saber documentarse y expandir conocimientos con frameworks avanzados como Core Graphics, Mobile Core Services, Core Data, CloudKit, AVFoundation...

Conocer nuevas formas de crear apps con funcionalidades como Drag and Drop, exclusivo de iOS 11


Description

Hola a todos y bienvenidos a este fantástico Curso completo de iOS 11 y Swift: de cero a experto, donde aprenderemos a usar la nueva suite de desarrollo de Apple para crear apps y vidoejuegos para iPhone e iPad.

Soy Juan Gabriel Gomila, licenciado en matemáticas, profesor online con más de 30.000 estudiantes, profesor de matemáticas de la Universidad de las Islas Baleares y CEO de mi propia empresa, Frogames. 

En este curso de iOS 11 aprenderemos juntos

  • Swift 4, el lenguaje de programación de Apple desde sus fundamentos hasta sus trucos más avanzados como closures y gestión de errores
  • Desarrollo de apps desde cero, por si es la primera vez que creas una aplicación. En particular descubrirás acerca del diseño básico de interfícies con UIKIt, CoreGraphics y animaciones de Quartz Core, creación de tablas, colecciones o pantallas divididas para iPad.
  • Las librerías y nuevas funcionalidades que trae iOS 11 como por ejemplo:
    • CoreML, para hacer uso del Machine Learning  en tus apps en un proyecto donde haremos una estimación del precio de venta de un coche según algunos parámetros o junto con la librería de Vision y AVFoundation, ser capaces de hacer una foto a un objeto y que nuestro móvil nos diga de qué se trata; 
    • ARKit, la librería de realidad aumentada de Apple con la que haremos un juego de capturar Pokémon en 3D o un mapa en 3D para ubicarnos qué lugares tenemos cerca haciendo uso de llamadas a la API de la Wikipedia y la geoposición con Core Location 
    • Drag And Drop, haciendo una app para crear postales con nuestro iPad arrastrando fotos, textos y colores e incluso compartiéndolas arrastrándolas directamente desde nuestra app 
    • PDFKit, una librería para trabajar de forma eficiente con archivos en PDF donde haremos búsquedas dentro del archivo, compartir en redes sociales o incluso poner marcas de agua a nuestros ficheros;
    • y mucho más, como Core Data, llamadas a Web Services, servidores, o una app con Firebase de Google!

Si estás aquí, tal vez ya has tomado alguno de mis cursos anteriores de desarrollo de apps y videojuegos para iOS 9, iOS 10, Android, Unity 3D o Unreal Engine. Si es así, conoces de sobra mi forma de explicar las nuevas tecnologías en esta plataforma. Si no, pues hecha un vistazo a los comentarios del resto de mis cursos para ver si vale la pena hacer un curso conmigo, pero en resumen, el curso ha sido diseñado tanto para:

  • Gente que nunca ha hecho una app y quiere saber cómo iniciarse en Swift y el desarrollo para iOS
  • Gente que ya conoce cómo hacer apps para iOS y quiere conocer trucos específicos y el uso de las librerías de iOS 11
  • Empresas, start ups o emprendedores que busquen formarse a si mismos, o a sus empleados en el desarrollo de apps con las últimas tecnologías de Apple

Así que bueno, espero que nos veamos en el curso, aprendamos juntos y lo disfrutes tanto como lo he disfrutado yo al crearlo.

Nos vemos en clase!


Screenshots

Curso completo de iOS 11 y Swift: de cero a experto con JB
Curso completo de iOS 11 y Swift: de cero a experto con JB
Curso completo de iOS 11 y Swift: de cero a experto con JB
Curso completo de iOS 11 y Swift: de cero a experto con JB

Content

Introducción

Introducción

Conoce a Juan Gabriel Gomila, tu instructor en Udemy

Comunidad de estudiantes del curso

Xcode 9 y requisitos necesarios para el desarrollo de apps

Como descargar Xcode 9

¿Tengo que pagar la cuenta de desarrollador de Apple?

Instalando Xcode y algunas palabras sobre la WWDC17 de Apple

La herramienta de reporte de bugs de apple

Repositorio con los proyectos del curso

Mi primera app

Xcode, Playgrounds, Tipos de Proyectos

Estructura de una app y cómo compilar en el simulador

Introducción a las imágenes y al diseño de apps

IBOutlets en una app y errores de novato

IBActions de una app

¿Cómo funciona una app para iOS?

Descarga el código fuente de la sección

Un regalo por ser alumno de Juan Gabriel

Qué nos trae de nuevo de Swift 4

Lo que nos trajo Swift 3.0

De Swift 3.0 a la versión 3.1

Los string multilínea

Los strings vuelven a ser colecciones (si, de nuevo)

Rangos unilaterales en colecciones

Los diccionarios mejorado

Más sobre los diccionarios

Serialización, deserialización y los nuevos JSON

Keypath para diccionarios de clave-valor

Selectores con @objc

Descarga los playgrounds de las novedades de Swift 4

S1: El lenguaje de programación de Swift, las variables y constantes

Swift 1: Introducción a Swift

¿Qué es Swift?

Variables y constantes

Nomenclatura y declaración de variables y constantes

Valores por consola y comentarios

Los números enteros

Los números decimales e inferencia de tipo de datos

Literales numéricos

Castings y conversiones numéricas

Los valores booleanos

Las tuplas

Las variables opcionales y optional binding

La gestión de los errores

Aserciones y debugging de código

Variables y Constantes

Descarga los playgrounds de la sección

S2: El lenguaje de programación de Swift, operaciones básicas

Swift 2: Las operaciones básicas y terminología general

Asignaciones de variables en Swift

Aritmética básica

Operadores de comparación

Los rangos

Los operadores lógicos

Operadores básicos

Descarga los playgrounds de la sección

S3: El lenguaje de programación de Swift, Strings y caracteres

Swift 3: Los Strings y los caracteres en Swift

Literales de String

Caracteres y concatenación de Strings

Caracteres Unicode

Contar caracteres

Acceso y modificación de Strings con índices y substrings

Comparando Strings

Los Strings y los caracteres

Descarga los playgrounds de la sección

S4: El lenguaje de programación de Swift, Tipos de Colecciones

Swift 4: Las colecciones de objetos en Swift

Los arrays

Operando con arrays

Los conjuntos

Las operaciones de conjuntos

Los diccionarios

Operaciones con diccionarios

Tipos de colecciones

Descarga los playground de la sección

S5 - El control de flujo en Swift

Swift 5: Las sentencias de control de flujo en Swift

Ejemplos de control de flujo en Swift

El bucle for-in en colecciones

El bucle for-in en rangos numéricos

El método stride en bucles for-in

El bucle while

El bucle repeat-while

Toma de decisiones con if y else

Las decisiones múltiples con switch y case

Switch con intervalos y tuplas

Switch con where y casos compuestos

Sentencias de transferencia de control

Sentencias nominales

Salida prematura y el uso del guard

Sentencias de control de flujo

Descarga los playgrounds de la sección

S6 - Las funciones en Swift

Swift 6: Las funciones en Swift

La estructura de una función en Swift

Parámetros de entrada de una función

Los valores de retorno de una función

Los tipos especiales de parámetros, argumentos y valores variadicos

Los parámetros de entrada y salida de una función y el uso de '&'

Función como tipo de datos

Las funciones en Swift

Descarga los playgrounds de la sección

S7 - Los closures en Swift

Los closures en Swift

Qué es un closure y para qué sirve

La estructura de un closure

Simplificando la sintaxis de los closures

Los trailing closures

Los closures capturadores

Los escaping closures

Los autoclosures

Los closures en Swift

Descarga los playgrounds de la sección

S8 - Los enumerados en Swift

Swift 7 - Los tipos enumerados

La sintaxis de los enumerados

Los switch con datos enumerados

Enumerados con valores asociados

Los raw values de un Enumerado

Enumeración recursiva

Los enumerados en Swift

Descarga los playgrounds de la sección

S9 - Clases y estructuras en Swift

Swift 8 - Clases y Estructuras

Qué son las clases y las estructuras

Declaración de clases y estructuras en Swift

Instanciación de clases y estructuras

Valores por copia en estructuras y enumerados

Valores por referencia en instancias de clases

Comparación de referencias en Swift

Cuando usar una clase o una estructura

Clases y estructuras en Swift

Descarga los playgrounds de la sección

El ciclo de vida de una app

Abrir una aplicación

El ciclo de eventos de los controladores

Finalizar una aplicación

Proyecto 1 : El juego de Aim For That

Aim For That, el primer juego de Juan Gabriel

Cómo funciona un iPhone y un iPad

La lista de tareas

El proceso de compilación y la build de la app

Mi primer botón en pantalla

La vista y el controlador

El uso de los alert controllers

Cómo funciona una app

Portrait vs landscape y píxels vs puntos

Objetos, datos y métodos

Reto: Recreando la interfaz gráfica

El slider

El valor actual y bugs conocidos

Generando números aleatorios

Las rondas de la partida

Mostrar el objetivo al usuario

Calcular la puntuación de la ronda

Puntos globales y rondas jugadas

Mejoras de usabilidad y el botón de reset

Un nuevo view controller: tutorial del juego

La barra de estado del juego y el archivo Info.plist

Descarga las imágenes del proyecto Aim For That!

La carpeta del Assets Catalog

Cambiar las imágenes de la interfaz gráfica

El slider y la configuración por código

El tutorial en una UIWebView

El problema de la diversidad de resoluciones

Introducción al autolayout y las restricciones genéricas para apps

Reto: El layout de la pantalla del tutorial

Más sobre los Layouts y las Stack Views

La pantalla de carga de la app

El logo y el nombre de la app

Animaciones con Quartz Core

Compilando en tu propio dispositivo

El uso de los temporizadores con la clase Timer

La clase UserDefaults para guardar variables de una partida a otra

Descarga el código fuente de la sección

Proyecto 2: CoreML, Machine Learning para predecir el precio de venta

Proyecto 1: CoreML y Machine Learning en iOS 11

Descarga los recursos de la sección

Core ML, el framework de Machine Learning de Apple

Introducción al Machine Learning

Cómo instalar Python y las librerías para ML en tu Mac

Python y los modelos de datos de las regresiones lineales

Descarga el modelo y el script de Python de ML para tu app

Los named colors de iOS 11

Constraints y vistas multidispositivo

Las stack views y los contenedores de vistas

Los segues y la relación entre vistas y controladores

IBOutlets, IBActions y una misma acción para varios elementos

El truco del custom spacing para ítems individuales de iOS 11

La clase Number Formatter y los dígitos por pantalla

La predicción del valor de venta con CoreML

Ejercicos finales para practicar CoreML

Descarga el código fuente de la sección

Proyecto 3: ARKit y SpriteKit, a la caza de los Pokemon

Proyecto 2: AR y SpriteKit en iOS 11

Descarga los archivos de este proyecto

Cambios en iOS 11: simd_float4x4 en lugar de SCNMatrix4ToMat4

La realidad aumentada y Automator para Mac

El código de prueba de ARKit de Apple, las matrices 4x4 y las anclas

El código de prueba de SpriteKit de Apple

Los delegados de ARSKViewDelegate y la configuración de la escena

El HUD y la información del videojuego

El timer de creación de enemigos

GameplayKit, números aleatorios y matrices de rotación

Reto: La posición anclada del Pokemon

Reto: El nodo pokemon a visualizar

Pokemons aleatorios por la habitación

Cazando Pokemons con el método touches began

Cómo añadir sonidos en SpriteKit

Fin del juego

Descarga el código fuente de la sección

Proyecto 4: ARKit y CoreLocation, geoposición y realidad aumentada

Proyecto 3: ARKit y CoreLocation combinados

Descarga los archivos de la sección

El proyecto inicial de ARKit

Configurando el Core Location Manager y los permisos

El delegado de Core Location Manager y sus métodos asociados

Probando los permisos de privacidad en el dispositivo

La Wikipedia y el formato de la librería de JSON

La dirección del usuario

La estructura del JSON de la Wikipedia

Grados, Radianes y la distancia sobre la tierra

La geoposición de los objetos de la Wikipedia

La posición del ancla y las matrices de transformación

Configurando la etiqueta de los lugares

Prueba final de geoposición con realidad aumentada

Descarga el código fuente de la sección

Proyecto 5: Drag and Drop

El Drag And Drop en iOS 11, un avance muy novedoso

Las tablas y el UITableViewController

El diseño manual de una Split View

Reto: Los autolayouts y los constraints a nuestro gusto

Los controladores con delegados vs los table y collection view controllers

Los colores y el modelo de datos de la collection view

Las fuentes y el modelo de datos del table view controller

Core Graphics, Next Step y el formato de dibujo en iOS

La clase CGRect y las posiciones en pantalla

Los atributos para configurar texto por código

Renderizar imagen y texto con UIGraphicsImageRenderer

El uso de UICollectionViewDragDelegate

El uso de UIDropInteractionDelegate

Los tipos de datos, perform drop y Mobile Core Services

Soltar el color sobre la postal

Soltar el texto sobre la postal

Mostrar y ocultar la split view

Configurar un UITapGestureRecognizer en una Image View

El uso de UIAlertController con un text field interno

Drag and drop de Fotos a nuestra app

Drag and drop desde nuestra app a Fotos

Descarga el código fuente de la sección

Proyecto 6: Vision y CoreML, Reconocimiento de imágenes

El reconocimiento de imágenes y las redes neuronales

Descarga el proyecto inicial aquí

El proyecto inicial y los modelos de datos de imágenes de Apple

Cómo hacer una barra de progreso dinámica

Los métodos y delegados del AVCapturePhotoCaptureDelegate

Inicializar la cámara para tomar fotos en la app

Tomar la foto y el UIActivityIndicatorView para indicar progreso

La clase CGImage y el método didFinishProcessingPhoto

Clasificación de fotos con Vision y CoreML

Transferir información entre controladores con closures y completion handlers

Mostrar los resultados en la tabla sobrepuesta

Probando nuestro reconocedor de objetos

Descarga el código fuente de la sección

Proyecto 7: PDFKit y la gestión de archivos en PDF

El framework de PDFs de Apple

Descarga los archivos necesarios para la app de PDFKit

PDFKit, nuestro proyecto inicial

La tabla de libros disponibles

Autolayout y constraints por código

Cargar el PDF con la clase PDFDocument

Buscar texto en el PDF

Compartir texto con UIActivityViewController

Avanzar y retroceder páginas en el PDF

El uso de SafariViewController para incrustar páginas webs

Del pdf al texto y los márgenes de los objetos con UIEdgeInsets

Un UISegmentedControl dentro de un UIBarButtonItem

Transformar el texto de PDF a Attributed Strings

El uso de expresiones regulares con NSRegularExpression

Añadir una marca de agua a nuestro PDF

Descarga el código fuente de la sección desde aquí

Proyecto 8: Pokeradar, El buscador de Pokemons con Firebase y GeoFire

El mundo de los servidores

Los assets de los Pokemon

El diseño de la interfaz gráfica del radar

Cocoapods y el SDK de Firebase

Geofire, la librería de geoposición para Firebase y el fichero Bridging-Header

Los permisos de CLLocationManager

Configurar la imagen del usuario

La referencia y la configuración de la base de datos de Firebase

Procesar el CSV de los Pokemon en Swift

El patrón de la factoría y la fábrica de Pokemons

La clase PokemonAnnotation: MKAnnotation

Avistando un Pokemon aleatorio y notificándolo a GeoFire

Creando la MKAnnotationView del Pokemon

Los permisos de la base de dato de Firebase

Indicar la ruta hacia un destino con Mapas de Apple

La Pokedex

La clase UICollectionViewCell y las celdas personalizadas

La técnica del NotificationCenter para comunicar View Controllers

El paradigma del Modelo, la Vista y el Controlador a fondo

Descarga el código de este proyecto desde aquí

Proyecto 9: La cámara de fotos, privacidad y detección de caras

Detección de caras y difuminación

El diseño de la interfaz gráfica de usuario

Seleccionando imágenes con UIImagePickerController y sus delegados

La detección de caras con VNFaceObservation de Vision

La extensiones de las clases de Apple

Unas cuantas matemáticas con UIView e imágenes

Mostrar las caras detectadas al usuario

Probando en nuestro iPhone con nuestras fotos

Difuminando imágenes con Core Image

La selección de la cara a difuminar

Compartir la foto en redes sociales

Mejoras a nuestra app de tratamiento de imágenes

Una propuesta para las mejoras indicadas

Descarga el código fuente de la sección

Un descansito para aprender técnicas ninja de iOS 11

iOS 11, todo cambia estéticamente (si, otra vez...)

Títulos en las barras de navegación más grandes

Aplazar los gestos de sistema del borde de la pantalla

La zona segura de la vista, safeAreaLayoutGuide

La nueva gestión de los Content Insets

Proyecto 10: Apple Music, APIs externas y el procesamiento de ficheros JSON

Apple Music y los videojuegos multijugador

El proyecto de Apple Music

Los identificadores para conectar con el servicio de Apple Music

Creando el token del desarrollador por terminal con Cryptography

Como funciona una API ¿Qué podemos hacer con la API de Apple Music?

El botón Start Game y el caos de los permisos

Los permisos de Cloud Services de StoreKit

La petición de las capabilities a Apple

Las estructuras de datos de Apple Music, el protocolo Codable y la ordenación

La petición a la API y el procesamiento de JSONs

La vista de la partida

Probando el proceso completo en nuestro iPhone

La selección de canciones

La lógica general del videojuego

Reproducir música desde Apple Music con MediaPlayer

Nuestro videojuego en acción!

Muchas, pero que muchas mejoras para publicar la app

Descarga el archivo fuente del proyecto de Apple Music

Proyecto 11: Una red social con Firebase

El mundo de las redes sociales

Las librerías de proyectos de Apple

Adaptar una librería no es trabajo fácil!

La herencia entre clases

Añadir funcionalidades con la técnica del target-action

El diseño de nuestra ventana de fotos

Configurar Firebase en nuestra app con Cocoapods

Definir una estructura de datos óptima en Firebase

El diseño de la vista de login

Las clases IBEditable y IBDesignable

Reto: más botones y texfields a medida y cómo ocultar el teclado de un textfield

Los métodos de autenticación de usuarios de Firebase

Creación y login de usuarios con Firebase

La gestión de errores de registro y login de Firebase

Guardar el usuario registrado en la base de datos de Firebase

Descargar los datos de Firebase

Procesar los datos descargados de Firebase

Delegados personalizados para la toma de fotos y de vídeos

Subiendo imágenes y vídeos al Storage de Firebase

Añadiendo la referencia de los archivos subidos a nuestra base de datos

Los UISwipeGestureRecognizers

Actualizando los snaps enviados y recibidos en Firebase

Descargar los snaps del usuario

Procesando los snaps recibidos

La descarga de la imagen desde Firebase

Descarga el código fuente de nuestro proyecto de Firebase

BONUS - Un regalo para ti

Nos vemos en el siguiente curso!

BONUS - Un regalo para ti


Reviews

D
Daniel16 August 2019

El curso está bien, no es una maravilla, pero es correcto. El profesor demuestra mucho conocimiento, pero el problema que veo es que en ningún momento interactúa con el alumno a la hora de asentar los diferentes conceptos mediante ejercicios. Considero que asentar conocimiento con cuestionarios de 3, 6 ó 9 preguntas no es para nada suficiente aprender.

E
Erick2 August 2019

Voy empezando y va muy bien, explica cada paso y porque de lo que esta haciendo. Aunque todavía no programemos. Me parece un buen curso

F
Francisco25 April 2019

Pues la parte teórica, bueno puede valer, pero el ejemplo ya metido en el diseño, o sea el del juego, es demasiado complejo para asumirlo cuando se ve por primera vez, yo me estanque y lo deje porque me perdía constantemente. Hubiera sido mejor hacer algunas aplicaciones muy sencillas al principio y después algunas mas complejas.

O
Octavio19 April 2019

Buena elección. Buen profesor, buen catalizador por el gran conocimiento especializado de la materia. Llevas a la práctica el arte de enseñar. Gracias.

E
Ernesto10 April 2019

Muy bien explicado todo en cuanto a swift, y sin tanto lío, cada enseñanza al grano y con buenos ejemplos. Personalmente me perdí al iniciar los proyectos avanzados puesto que hay temas que se dan por hecho que sabemos.

A
Alberto17 December 2018

Este curso esta muy bien estructurado y explicado, siempre con ejemplo reales de app. Tiene una gran variedad de proyectos que tratan distintas funcionalidades desde geo-posicionamiento, identificación de rostros, uso de notificaciones, ... .

C
Cristian17 December 2018

El curso es genial, no solo tiene teoría que es fundamental sabe, si no que a ademas explica muy bien los conceptos, la verdad es que es un curso genial

M
Miguel22 November 2018

Enfocate a un tema y desarolla todo de el inicio al fin sin atagos y no importa lo majico que es swift con sus cosas super avanzadas. Aprendi hacer cosas muy avanzadas , pero sin saber nada de swift ni como administrarlas

D
Darwin20 November 2018

Muy buen profesor sin embargo desaprovecha el tiempo escribiendo lo que esta diciendo en comentarios, por otro lado la introducción a swift no debería ser tan extensa pues muchos llegamos de otros lenguajes de programación en donde adaptarse a uno nuevo solo consiste en aprender la sintaxis y algunas cosas especificas de cada lenguaje.

G
Gerardo25 September 2018

Hasta ahora muy completo, entiendo que para cubrir todo los temas hay que apresurar el curso, pero da por hecho que tienes conocimiento previo y para los que no lo tenemos con éste lenguaje resulta muy presionado. A medida que avance espero poder ir aclarando muchas dudas.

D
Danny14 September 2018

Ya sigo el de data scientist y como explica juan es excelente, sigo esperando el curso para aprender SIRIKIT pero se que ya lo sacara Juan mismo... gracias

J
Jesús10 September 2018

Conceptos bien explicados. Se describen los recursos a utilizar y los ejemplos se explican muy bien, paso a paso.

M
María2 September 2018

Clarísimo todo. Lo único es que algunas clases son un poco extensas en cuanto a la duración. Eso puede resultar desmotivador.

C
Cursos6 August 2018

Es la primera vez que tengo Mac y por eso estoy el curso que siempre quise, me parece que esta muy bien explicado, claro sobre todo para alguien que recién comienza en todo sentido.

A
Alec3 August 2018

Lleva un ritmo excelente, con explicaciones muy claras y el curso tiene una progresión muy agradable.


Coupons

DateDiscountStatus
6/23/202195% OFFExpired
7/9/202195% OFFValid

1242880

Udemy ID

6/5/2017

Course created date

11/23/2019

Course Indexed date
Bot
Course Submitted by