Contenido: Programación iOS

Contenido: Programación iOS

Profesor: Diego Freniche

1. Requisitos para el desarrollo

  • Introducción al developer program: tipos de programas de Apple para desarrolladores, costes y características
  • Hardware necesario para desarrollar
  • Dispositivos iOS para pruebas
  • Software: Xcode + SDK iPhone
  • Mac OS X, iOS, el iPhone y Cocoa

2.Desarrollo de nuestra primera App (sencilla) completa

  • Diseccionando HolaMundoIphone
  • Código
  • Frameworks del sistema
  • Ficheros de interfaz
  • Ficheros de recursos
  • El fichero info.plist

3. El lenguaje C dentro de Objetive C

  • Programación imperativa
  • Struts
  • Funciones
  • Punteros y gestión de memoria en C

4. El lenguaje Objetive-C

  • Características generales de Objetive-C
  • Superconjunto de C; añadidos a C estándar
  • Ejecución dinámica
  • Clases e instancias
  • Envío de mensajes
  • Propiedades
  • Gestion de la memorica con ARC
  • Strong / weak
  • Conceptos básicos de programación orientada a objetos en Objetive C
  • Herencia
  • Sobreescritura de métodos
  • Sobrecarga de métodos (no tenemos)
  • Protocolos, métodos obligatorios y opcionales
  • Implementar nuestros propios patrones delegado
  • Categorías

5. Foundation Framwork

  • NSString, strings C
  • SLog
  • NSObject
  • NSDate
  • NSNumber
  • NSUInteger, NSInteger
  • Estructuras de datos básicas en Objetive C:
  • Arrays C
  • Mutabilidad e inmutabilidad
  • NSArray, NSMutableArray
  • NSDictionary, NSMutableDictionary

6. Ciclo de vida de una app iOS:

  • Main
  • AppDelegate
  • Eventos y métodos de callback

7. Xcode 5

  • Versiones de Xcode previas
  • El interfaz de usuario de Xcode
  • Área de edición
  • Inspector de proyectos
  • Organizer: acceder a ayuda, gestionar nuestros dispositivos, repositorios
  • Creación de un proyecto
  • Tipos de proyecto
  • Utilización de la consola de diagnóstico, depuración
  • Usando interface Builder en Xcode 5
  • Creación de la interfaz de usuario
  • XIBs, NIBs y Sortyboards
  • Conexión entre elementos de interfaz y nuestro código: responder a eventos
  • Autoresizing de controles con IB

8. Desarrollo de apps con distintos controles del framework UlKit

  • Creación de interfaces de usuario mediante Storyboards
  • Segues
  • UIWindow
  • UIView
  • Frame y bounds
  • Sistema de coordenadas en el iPhone
  • Imágenes: UImage, UImageView
  • cargar imágenes desde disco
  • Texto, control del teclado virtual
  • Sliders
  • UILabel
  • Switches
  • Buttons
  • Date Pickers
  • Patrón delegado y MVC
  • UIPickerView
  • Table Views: UITableView
  • Protocolos de UITableView: delegate y data source
  • Obtener datos desde un UITableView con NSArray
  • UINavigationItem
  • UITableViewCell
  • Alerts: UIAlertView
  • Responder a eventos en UITableView
  • Editar un UITableView: borrar celdas, etc.
  • Paso de un ViewController a otro mediante presentViewController
  • Navigation Controllers: UINavigationController
  • Tab Bars: UITabBarController

9. Detectando gestos multitouch

10. Guardar preferencias de los usuarios con NSUserDefaults

11. Programación multihilo

  • Bloques
  • Carga de imágenes en segundo plano
  • Grand Central Dispatch
  • Ejemplos consumiendo servicios web JSON
  • Parseo de JSON con NSJSONSeroalization
  • Mockup de serivicios web con Sinatra

12. Crear la pantalla de About de nuestra App con UIWebView

13. Localizar e internacionalizar Apps

14. Bases de datos: introducción a Core Data

  • Persistencia de datos en nuestras Apps: opciones
  • Qué es un ORM
  • Arquitectura de Core Data y clases principales
  • Tipos de backend de datos
  • Creando un ejemplo con Core Data: relaciones 1-n, 1-1
  • Diseñar las entidades y sus relaciones
  • Añadir, borrar, buscar registros (CRUD)
  • Mostrar nuestros datos con UITableView y NSFetchedResultsController

15. MapKit: APIs de mapas

  • Usando mapas en nuestra App
  • Hacer zoom a una zona del mapa
  • Poner indicadores (pins) en el mapa
  • Simulación en Xcode de posiciones GPS

16. Depurando en un dispositivo iOS

  • Debugger, consola, inspección de variables
  • Depurando con NSLog
  • Depuración avanzada
  • Depurando sin usar NSLog
  • LLDB 101

17. Gestión de memoria avanzada:

  • MRC: retain / release / dealloc / autorelease
  • Convertir de MRC a ARC
  • Usar Código ARC / MRC en el mismo proyecto

18. Análisis de rendimiento de la App

  • Control de memoria
  • Avisos de memoria baja
  • Static analyzer
  • Uso de la herramienta de optimización Instruments

19. Gestión de la rotación del dispositivo

20. Notas sobre la publicación en la App Store