Categoría: Programación | _PROGRAMACION


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

o

suscríbete para tener acceso ilimitado a toda la formación

Regala este curso

Comparte este curso:

Requisitos

  • Un Mac con sistema operativo Sierra o posterior instalado. Usaremos Xcode 9 para hacer apps, pero no te preocupes que lo instalaremos en las primeras clases.
  • Es recomendable saber utilizar un Mac a nivel de usuario, sobretodo para no sorprenderse con los comandos y programas básicos que usemos en el curso.
  • Aunque no es obligatorio, es recomendable haber cursado el curso completo de iOS 10, de cero a experto y el máster de iOS de esta misma plataforma.


Descripción

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!

 

¿A quién está dirigido?

  • El curso empieza desde cero con Swift y la programación de Apple, así que no se requiere experiencia previa
  • Para gente que tenga experiencia con Swift 3 o Objective-C, las primeras clases se podrán saltar rápidamente y empezar directamente con la programación de Apps.
  • Emprendedores o Start Ups con idea de una app o negocio que quieran aprender a crearla y plasmarla con garantías de éxito
  • Diseñadores o desarrolladores web que deseen iniciarse en el mundo del desarrollo app y móvil

Introducción

Introducción

Conoce a Juan Gabriel Gomila, tu instructor en Udemy

Las descripciones de las clases

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

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

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

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 genera

Asignaciones de variables en Swift

Aritmética básica

Operadores de comparación

Los rangos

Los operadores lógicos

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

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

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

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

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

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

Descarga los playgrounds de la sección

S9 - Clases y estructuras en Swift

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

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 tutoria

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

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 el código fuente de la sección

Descarga los archivos de este proyecto

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

Mejoras

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

Mejoras

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

Mejoras

Redimensionar imagen

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 código fuente de la sección

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

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

Tareas

Descargar el código fuente de la sección

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

336 lecciones - | Creado por: Juan Gabriel Gomila Salas

Temas relacionados: