Sesion uno azuay

Post on 13-Jun-2015

248 views 1 download

Transcript of Sesion uno azuay

DESARROLLANDO PARA iOS

Gunther VottelaCEO

KUBO Mobile Applications@kubomobile - @gunthervottela

INTRODUCCIÓN

Antes de comenzar….

• Que es lo quiero y que me gustaria desarrollar

• Cual es mi target

• Diseño

• Experiencia

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.

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.

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.

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.

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.

Xcode – SDK ambiente

Objetos de proyecto

Panel de código

Clases

Herramientas

Interface Builder - ambiente

Interface Builder - ambiente

Ahora en el Mac..

Mi primer App

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!

Mi primer app

• Abrir Xcode.

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

Mi primer app

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

Ahora en el Mac..

Stack de Navegación

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.

Que es el stack de navegación

• Navigation Bar

Variables y objetos comunes

Variables y objetos comunes

• Tipos de datos:

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

• Objetos de datos:

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

Variables y objetos comunes

• Objetos de interface:

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

Variables y objetos comunes

• Declaraciones:

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

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

Variables y objetos comunes

• 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

• Declaraciones:

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

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

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

Variables y objetos comunes

Ahora en el Mac..

Los UIViewController’s y Clases

• 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

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

UIViewController’s

Ahora en el Mac..

• 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

• 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

• 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

• Metodos – IBAction:

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

.h -(IBaction)mimetodo;

.m -(IBaction)mimetodo{}

Los UIViewController’s

• Metodos – IBAction:

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

[self mimetodo];

[self mimetodo:@”parametro”];

Clases

• Metodos de vista:

• -(void)viewDidLoad{}

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

• -(void)viewDidUnload{}

• -(void)dealloc {}

Los UIViewController’s

Ahora en el Mac..

UITableViewControllers

• 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

• 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

• -(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

• 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

UITableViewControllers

UITableViewControllers

Ahora en el Mac..

Vistas Modales y Push

• 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

• 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

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

• Modal: [self dismissModalViewControllerAnimated:YES];

Vistas Modales y Push

Ahora en el Mac..

Web Site

@gunthervottela