CURSO iOS INICIAL – MEDIO

DURACIÓN: 60 Horas (5 semanas). Inicio el 15/11/17 – Finaliza el 16/12/17

HORARIO: Miércoles de 15:00 a 21:00, Sábados de 12:00 a 19:00

PRECIO: 1.140€

PROGRAMA DEL CURSO

A lo largo del curso los alumnos implementarán una docena de pequeñas apps independientes que contendrán instrucciones e implementaciones para todos los conceptos aprendidos. El programa seguirá esencialmente el orden del esquema abajo detallado, pero en ocasiones serán necesarios algunos saltos con el fin de ilustrar conceptos interdependientes.

I) CONCEPCIÓN DE UNA APP

1 Importancia de la planificación y estructuración

2 Estructura de Funcionalidades: “QUÉ”

3 Experiencia de usuario (UX): “CÓMO”

A) Interfaz de usuario (UI)

B) Herramientas de prototipo y seguimiento de flujo

4 Estrategias evolutivas

A) Producto mínimamente viable (MVP)

B) Ampliaciones

II) IMPLEMENTACIÓN Y ESTRUCTURA DE UNA APP

1 El IDE de XCode al detalle (EID: Entorno Integrado de Desarrollo)

2 Qué es un SDK (Software Development Kit). CocoaTouch

3 Constructor de interfaz (IB = Interface Builder) y guiones (storyboards)

4 El simulador de iOS

5 Sistema MVC: Metáfora teatral

A) Modelo de datos (estructura de datos = “guión”)

B) UIKit: Controladores y Elementos visuales

a) Controlador (UIViewController) (lógica = “director”)

b) UIView (interfaz: “estrado”)

c) Descendientes de UIView (interfaz: “actores”)

UILabel, UITextField, UITextView

UIButton, UISwitch

UIImageView, UIImage

6 Conexión del interfaz con la lógica

A) Propiedades: IBOutlets

B) Funciones: IBActions

7 Adaptación del interfaz a diferentes pantallas con AutoLayout

A) Directrices de Alineamiento

B) Directrices de tamaño

C) La ventaja de valores Relativos con respecto a valores absolutos

D) Pilas (stacks)

E) Previsualización del interfaz y resolución de conflictos

8 Importación de imágenes

A) XCAssets y AppIcon

B) Herramientas de preparación de imágenes

III) CONCEPTOS ADICIONALES DE SWIFT

1 Tipos Opcionales de Swift

A) Operador de extracción (!)

B) Extracción explícita y opcionales implícitamente extraídos

C) Vinculación de opcionales (optional binding)

a) Patrón if-let y la “pirámide de la muerte” anidada (pyramid of doom)

Vinculaciones separadas por comas para evitar la pirámide

b) Sentencia guard: El “muro del guardián”

c) Cláusula where

D) Concatenación de opcionales (optional chaining)

E) Operador Coalescente del Nil (Nil Coalescent Operator)  (??)

2 Propiedades computadas (getters y setters):  get { }  y  set { }

3 Observadores de propiedades:  didGet { }  y  didSet { }

4 Protocolos

5 El tipo de datos fecha (Date)

A) Instanciación y operaciones con fecha

B) Formateo de fechas con DateFormatter

6 Formateo de cadenas de caracteres (strings)

7 Gestión de memoria con ARC (Automatic Reference Counting)

A) Tipos de referencias: fuerte (strong), débil (weak), sin propietario (unowned)

B) Prevención de bloqueos mutuos (deadlock)

8 Organización del código: // MARK –

IV) LÓGICA Y FUNCIONALIDAD DE UNA APP

1 Ciclo de vida de la app

2 Ciclo de vida de un controlador

3 Comunicación y coordinación en el sistema MVC

A) Delegación

B) Métodos delegados

a) DataSource

b) UITableView

c) UICollectionView

4 Navegación por el interfaz

A) Controlador inicial: RootViewController

B) Controlador de Navegación: UINavigationController

a) UINavigationBar

b) UINavigationItem

c) UIBarButtonItem

C) Controlador de vistas en pestañas: UITabBarController

D) Controlador de vistas desdobladas: UISplitViewController

5 Navegación programática con transicionadores (segues)

A) Creación de segues desde el constructor de interfaz

B) Creación de segues programáticamente

C) Funciones de manejo

a) PrepareForSegue()

b) PerformSegueWithIdentifier()

c) ShouldPerformSegue()

6 Componentes adicionales para la construcción del interfaz con UIKit

A) Desplazamiento y zoom con UIScrollView

B) Selección de información con UIPickerView y UIDatePicker

7 Interfaz de navegación por la web

A) Safari

a) Applicacion.openURL()

B) UIWebView

a) Solicitudes y búsquedas

b) Implementación de los botones de navegación

c) Métodos delegados

8 Persistencia de datos con UserDefaults y otras listas XML (Property Lists)

V) DEPURACIÓN

1 Introducción a la consola de depuración LLDB (Low Level Debugger)

2 Seguimiento y control del hilo de ejecución

A) Puntero de instrucción

B) Puntos de interrupción

C) Pila de llamadas

3 Diagnósticos y detección de errores

A) Puntos de observación

B) Vista rápida (quick look)

C) Impresión de datos desde el código con print() y la propiedad description

D) Impresión de datos desde la consola con p, po, y la propiedad debugDescription

VI) DOCUMENTACIÓN y COLABORACIÓN

1 Documentación de referencia de Apple

2 Foros

A) StackOverflow

B) ExpertsExchange

3 Plataforma de chat profesional Slack

VII) SEGURIDAD

1 Copias de seguridad con Time Machine

Si estás interesado en este curso rellena el formulario, y nos pondremos en contacto contigo. También puedes contactar con nosotros en los teléfonos 618 208 323, y 722 853 244, o enviando un email a contacto@flynnacademy.com

Queremos dejar claro que no enviamos NUNGÚN TIPO DE SPAM NI PUBLICIDAD de ninguna forma. No te agregaremos a ninguna lista de mailing a menos que tú lo solicites expresamente.