sesion uno azuay

54
DESARROLLANDO PARA iOS Gunther Vottela CEO KUBO Mobile Applications @kubomobile - @gunthervottela

Upload: manuel-ortega

Post on 13-Jun-2015

248 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Sesion uno azuay

DESARROLLANDO PARA iOS

Gunther VottelaCEO

KUBO Mobile Applications@kubomobile - @gunthervottela

Page 2: Sesion uno azuay

INTRODUCCIÓN

Page 3: Sesion uno azuay

Antes de comenzar….

• Que es lo quiero y que me gustaria desarrollar

• Cual es mi target

• Diseño

• Experiencia

Page 4: Sesion uno azuay

Que requiero para desarrollar en iOS?

• Un Mac!

• Inscribirse como developers en apple.developer.com.

• Descargar el Xcode “SDK” para desarrollar en iOS, en Lion atraves del MacStore.

• Buscar comunidades de soporte online – leer la documentación – Tener equipos de Test.

Page 5: Sesion uno azuay

Que requiero para desarrollar en iOS?

• iOS es la plataforma, pero el lenguaje de desarrollo es Objetive-c.

• Según wikipedia…Es un lenguaje de programación orientado a objetos creado como un superconjunto de C.

Page 6: Sesion uno azuay

Las herramientas para desarrollar

• Xcode es el SDK de Apple para el desarrollo de apps tanto para Mac como para iOS.

• Actualmente se encuentra en la versión 4.2, con soporte para iOS 5.0.

• Dependiendo las caracteristicas que se quieran utilizar en el app y soporte para devices se debe seleccionar la versión de Xcode.

Page 7: Sesion uno azuay

Xcode - Versiones

• Versiones recomendadas.

• 4.2 -> Mac`s Intel, incluye soporte para iOS 5.0, Lion 10.7 OS, internamente incluye internamente las herramientas de analisis y depuración.

• 3.2.5 -> Mac’s Intel, Incluye soporte para iOS 3.1.3, Snow Leopard, herramientas de analisis y depuración independientes.

Page 8: Sesion uno azuay

Conjunto de Herramientas

• Xcode = Ambiente de desarrollo.

• Interface Builder = Construcción visual de vistas y objetos.

• Instruments = Analisis de memoria, objetos, performance, etc.

• DashCode = Utilitario.

Page 9: Sesion uno azuay

Xcode – SDK ambiente

Objetos de proyecto

Panel de código

Clases

Herramientas

Page 10: Sesion uno azuay

Interface Builder - ambiente

Page 11: Sesion uno azuay

Interface Builder - ambiente

Page 12: Sesion uno azuay

Ahora en el Mac..

Page 13: Sesion uno azuay

Mi primer App

Page 14: Sesion uno azuay

Mi primer app

• Una idea.

• Planifiquen en papel el diseño base y la navegación del app.

• Revisen apps que puedan ser similares

• Cuidado con los UI Guidelines!

Page 15: Sesion uno azuay

Mi primer app

• Abrir Xcode.

• Clic en File / New Proyect y seleccionamos el tipo de proyecto.

Page 16: Sesion uno azuay

Mi primer app

Page 17: Sesion uno azuay

Mi primer app

• Contenido del proyecto:

• AppDelegate -> Archivo de inicio del app.• Archivos .h -> Headers de clases• Archivos .m -> Implementaciones de clases• Archivos .XIB -> Archuvos de UI• Archivo .plist -> Archivos de configuración

Page 18: Sesion uno azuay

Ahora en el Mac..

Page 19: Sesion uno azuay

Stack de Navegación

Page 20: Sesion uno azuay

Que es el stack de navegación

• Es la logica y componentes de navegación que se crea entre los diferentes vistas de un app.

Page 21: Sesion uno azuay

Que es el stack de navegación

• Navigation Bar

Page 22: Sesion uno azuay

Variables y objetos comunes

Page 23: Sesion uno azuay

Variables y objetos comunes

• Tipos de datos:

• Nsstring• Int “primitivo”• NSInteger• BOOL• Char

Page 24: Sesion uno azuay

• Objetos de datos:

• NSArray• NSmutableArray• NSMutableDictionary• NSDate• NSImage• NSMutableString• NSURL

Variables y objetos comunes

Page 25: Sesion uno azuay

• Objetos de interface:

• UiView• UIButton• UILabel• UIImageView• UIImage• UICalendar• UITextField• UIViewScroll

Variables y objetos comunes

Page 26: Sesion uno azuay

• Declaraciones:

• Nstring *micadena = @”aaaa”;• Int miInt = 1;• BOOL miBool = TRUE;• NSArray *miarray = [NSArray

arrayWithObjects: @”juan", @”pedro", @"Luciano", @"Silvia", nil];

Variables y objetos comunes

Page 27: Sesion uno azuay

• Alloc – init - Release:

• Alloc = Es la solicitud de reserva de memoria del objeto.

• Init = Es la solcitud de inicializar el objeto.

• Release = Es la solicitud de liberación de memoria

Variables y objetos comunes

Page 28: Sesion uno azuay

• Declaraciones:

• NSMutableArray *array = [[NSMutableArray alloc] init];

• NSMutableDictionary *midiccionario = [[NSMutableDictionary alloc] init];

• UIView *MiVista = [[UIView alloc] init]; [MiVista Release];

Variables y objetos comunes

Page 29: Sesion uno azuay

Ahora en el Mac..

Page 30: Sesion uno azuay

Los UIViewController’s y Clases

Page 31: Sesion uno azuay

• Un UiViewController es unas clase que importa el framework UIKit en el header y hereda de la clase UiViewController, en la mayoria de los casos tiene un archivo .xib relacionado, normalmente son tres archivos .h, .m y .xib.

• Una clase en un conjunto de archivos, .h y .m que importa el framework Foundation en el header y hereda de la clase NSObject.

Los UIViewController’s y Clases

Page 32: Sesion uno azuay

• Para agregar un UIViewController al proyecto: File / New File / UIViewController Subclass “marcar Whit .XIB file / Next / Colocar nombre / Finish.

UIViewController’s

Page 33: Sesion uno azuay

Ahora en el Mac..

Page 34: Sesion uno azuay

• Navegando entre controladores, hacia adelante: En la implementación importar el controlador…

Import “Controlador2 .h”

Controlador2 *nextController = [[Controlador2 alloc] initWithNibName:@"Controlador2 " bundle:nil];nextController.hidesBottomBarWhenPushed=YES;[self.navigationController pushViewController:nextController animated:YES];[nextController metodo:@”parametro”];

[nextController release];

Los UIViewController’s

Page 35: Sesion uno azuay

• Navegando entre controladores, hacia atras: Usando el navigation.

UIBarButtonItem *temporaryBarButtonItem = [[UIBarButtonItem alloc]

init];temporaryBarButtonItem.title = @"Volver";self.navigationItem.backBarButtonItem = temporaryBarButtonItem;[temporaryBarButtonItem release];

Acción custom.

- (void)volver:(id)sender{[self.navigationController popViewControllerAnimated:YES];

}

Los UIViewController’s

Page 36: Sesion uno azuay

• Metodos – IBAction:

• Todos los metodos son funciones que permiten recibir N parametros pero retornar un solo objeto.

.h

-(int)mimetodo: (nsstring *)texto;.m

-(int)mimetodo: (nsstring *)texto{}

Clases

Page 37: Sesion uno azuay

• Metodos – IBAction:

• Los IBAction son metodos que normalmente se releacionan a objetos del interface “Botones”

.h -(IBaction)mimetodo;

.m -(IBaction)mimetodo{}

Los UIViewController’s

Page 38: Sesion uno azuay

• Metodos – IBAction:

• Para invocar un metodo dentro de una clase se utiliza la instrucción self, ejemplo.

[self mimetodo];

[self mimetodo:@”parametro”];

Clases

Page 39: Sesion uno azuay

• Metodos de vista:

• -(void)viewDidLoad{}

• - (void)viewWillAppear:(BOOL)animated{}

• -(void)viewDidUnload{}

• -(void)dealloc {}

Los UIViewController’s

Page 40: Sesion uno azuay

Ahora en el Mac..

Page 41: Sesion uno azuay

UITableViewControllers

Page 42: Sesion uno azuay

• Es uno de los objetos mas usandos en iOS para mostrar información al usuario de forma de lista.

• Algunos objetos como el UITableViewController usan el delegate para recibir y enviar mensajes entre sus metodos.

• Las celdas estandar permiten el uso de un titulo, detalle, imagen y boton “disclousure”.

UITableViewControllers

Page 43: Sesion uno azuay

• Es uno de los objetos mas usandos en iOS para mostrar información al usuario de forma de lista.

• Algunos objetos como el UITableViewController usan el delegate para recibir y enviar mensajes entre sus metodos.

• Las celdas estandar permiten el uso de un titulo, detalle, imagen y boton “disclousure”.

UITableViewControllers

Page 44: Sesion uno azuay

• -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{}

• -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{}

• -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{}

• -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

UITableViewControllers

Page 45: Sesion uno azuay

• Se puede crear celdas personalizadas para aumentar la cantidad de informacion y mejorar el diseño en las celdas, creando una clase tipo UITableViewCell y luego relacionandola a la celda en su fase construcción.

• Se debe relacionar, el delegate y datasource para que asi pueda recibir los datos.

• Solo se puede colocar uno por vista.

UITableViewControllers

Page 46: Sesion uno azuay

UITableViewControllers

Page 47: Sesion uno azuay

UITableViewControllers

Page 48: Sesion uno azuay

Ahora en el Mac..

Page 49: Sesion uno azuay

Vistas Modales y Push

Page 50: Sesion uno azuay

• Modal y push son dos formas diferentes de presentación de los UIViewControllers.

• En el caso de push se mantiene la navegación y se respetan los elementos de acceso a otras vistas como los TabBar.

• En el caso de los Modal, se hace una presentación full screen de la vista.

Vistas Modales y Push

Page 51: Sesion uno azuay

• Push:

Controlador2 *nextController = [[Controlador2 alloc] initWithNibName:@"Controlador2 " bundle:nil];[self.navigationController pushViewController:nextController animated:YES];

[nextController release];

• Modal:PopOverControllerContents *popContents = [[PopOverControllerContents alloc] initWithNibName:@"PopOverControllerContents" bundle:[NSBundle mainBundle]]; [self presentModalViewController:popContents animated:YES];

Vistas Modales y Push

Page 52: Sesion uno azuay

• Push:[self.navigationController popViewControllerAnimated:YES];

• Modal: [self dismissModalViewControllerAnimated:YES];

Vistas Modales y Push

Page 53: Sesion uno azuay

Ahora en el Mac..

Page 54: Sesion uno azuay

Web Site

@gunthervottela