SlideShare una empresa de Scribd logo
DESARROLLANDO PARA iOS
                         Gunther Vottela
                                    CEO
                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
                                    Herramientas




                                    Clases




                                    Panel de código
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
Variables y objetos comunes

• 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];
Ahora en el Mac..
Los UIViewController’s y Clases
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.
UIViewController’s

• Para agregar un UIViewController al proyecto:
  File / New File / UIViewController Subclass
  “marcar Whit .XIB file / Next / Colocar nombre /
  Finish.
Ahora en el Mac..
Los UIViewController’s

• 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];
  }
Clases

• 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{}
Los UIViewController’s

• Metodos – IBAction:


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

 .h
 -(IBaction)mimetodo;
  .m
 -(IBaction)mimetodo{}
Clases

• Metodos – IBAction:


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

  [self mimetodo];

  [self mimetodo:@”parametro”];
Los UIViewController’s

• Metodos de vista:


• -(void)viewDidLoad{}


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


• -(void)viewDidUnload{}


• -(void)dealloc {}
Ahora en el Mac..
UITableViewControllers
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
Ahora en el Mac..
Vistas Modales y Push
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];
Ahora en el Mac..
@gunthervottela




Web Site

Más contenido relacionado

KEY
Ios.s7
PPTX
Sesion dos azuay
PDF
Charla desarrollo de aplicaciones en iOS para iPhone y iPad
PDF
CocoaHeads México: Introducción a CocoaTouch:UIKit
PDF
Taller Android seedrocket
PDF
Curso de android
PPTX
Angular Fundamentals
KEY
Presentacion cw2012
Ios.s7
Sesion dos azuay
Charla desarrollo de aplicaciones en iOS para iPhone y iPad
CocoaHeads México: Introducción a CocoaTouch:UIKit
Taller Android seedrocket
Curso de android
Angular Fundamentals
Presentacion cw2012

Similar a Sesion uno azuay (20)

KEY
Android la plataforma móvil open source
PDF
Desarrollo Metro con Windows 8 UPM
PPSX
Programacion en visual basic 8.0
PPT
Seminario 2+parte wickets
PPTX
PDF
Ficha Curso Básico de programación para iOS
PPTX
MicroTaller eXeLearning CAFDEmTICL Junio 2014
PPTX
Android Basics v2.5
PDF
Desarrollo en Android: Conceptos Básicos
PPTX
Efc programación .net-luis fernando aguas - 22012022 1700
PPTX
WinObjC: Windows Bridge para iOS
KEY
Spring on Flash Platform
KEY
Ios.s6
PPTX
Patrones de diseño II
KEY
Introduccion android
PPTX
2 AndroidStudio introduccion al mundo de la programacion con android
PDF
Desarrollo de aplicaciones realmente nativas con NDK
PDF
Springboot Overview
PPTX
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
Android la plataforma móvil open source
Desarrollo Metro con Windows 8 UPM
Programacion en visual basic 8.0
Seminario 2+parte wickets
Ficha Curso Básico de programación para iOS
MicroTaller eXeLearning CAFDEmTICL Junio 2014
Android Basics v2.5
Desarrollo en Android: Conceptos Básicos
Efc programación .net-luis fernando aguas - 22012022 1700
WinObjC: Windows Bridge para iOS
Spring on Flash Platform
Ios.s6
Patrones de diseño II
Introduccion android
2 AndroidStudio introduccion al mundo de la programacion con android
Desarrollo de aplicaciones realmente nativas con NDK
Springboot Overview
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
Publicidad

Más de Manuel Ortega (12)

PPTX
Tipos de Puertos y Conectores
PPTX
PPT
Desarrollo de aplicaciones en android ecuador
PPTX
Mantenimiento Y PRECAUCIÓN ELÉCTRICA
PPTX
Hardware 1
PPTX
resumen del video de richard stalllman
PPTX
el manifiesto de GNU
PPTX
Sistemas operativos 3
PPTX
Sistemas operativos part 2
PPTX
Sistemas operativos 2
PPTX
Sistemas operativos parte 2
PPTX
generaciones de los sistemas operativo
Tipos de Puertos y Conectores
Desarrollo de aplicaciones en android ecuador
Mantenimiento Y PRECAUCIÓN ELÉCTRICA
Hardware 1
resumen del video de richard stalllman
el manifiesto de GNU
Sistemas operativos 3
Sistemas operativos part 2
Sistemas operativos 2
Sistemas operativos parte 2
generaciones de los sistemas operativo
Publicidad

Sesion uno azuay

  • 1. DESARROLLANDO PARA iOS Gunther Vottela CEO KUBO Mobile Applications @kubomobile - @gunthervottela
  • 3. Antes de comenzar…. • Que es lo quiero y que me gustaria desarrollar • Cual es mi target • Diseño • Experiencia
  • 4. 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.
  • 5. 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.
  • 6. 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.
  • 7. 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.
  • 8. 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.
  • 9. Xcode – SDK ambiente Objetos de proyecto Herramientas Clases Panel de código
  • 12. Ahora en el Mac..
  • 14. 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!
  • 15. Mi primer app • Abrir Xcode. • Clic en File / New Proyect y seleccionamos el tipo de proyecto.
  • 17. 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
  • 18. Ahora en el Mac..
  • 20. 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.
  • 21. Que es el stack de navegación • Navigation Bar
  • 23. Variables y objetos comunes • Tipos de datos: • Nsstring • Int “primitivo” • NSInteger • BOOL • Char
  • 24. Variables y objetos comunes • Objetos de datos: • NSArray • NSmutableArray • NSMutableDictionary • NSDate • NSImage • NSMutableString • NSURL
  • 25. Variables y objetos comunes • Objetos de interface: • UiView • UIButton • UILabel • UIImageView • UIImage • UICalendar • UITextField • UIViewScroll
  • 26. Variables y objetos comunes • Declaraciones: • Nstring *micadena = @”aaaa”; • Int miInt = 1; • BOOL miBool = TRUE; • NSArray *miarray = [NSArray arrayWithObjects: @”juan", @”pedro", @"Luciano", @"Silvia", nil ];
  • 27. 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
  • 28. Variables y objetos comunes • Declaraciones: • NSMutableArray *array = [[NSMutableArray alloc] init]; • NSMutableDictionary *midiccionario = [[NSMutableDictionary alloc] init]; • UIView *MiVista = [[UIView alloc] init]; [MiVista Release];
  • 29. Ahora en el Mac..
  • 31. 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.
  • 32. UIViewController’s • Para agregar un UIViewController al proyecto: File / New File / UIViewController Subclass “marcar Whit .XIB file / Next / Colocar nombre / Finish.
  • 33. Ahora en el Mac..
  • 34. Los UIViewController’s • 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];
  • 35. 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]; }
  • 36. Clases • 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{}
  • 37. Los UIViewController’s • Metodos – IBAction: • Los IBAction son metodos que normalmente se releacionan a objetos del interface “Botones” .h -(IBaction)mimetodo; .m -(IBaction)mimetodo{}
  • 38. Clases • Metodos – IBAction: • Para invocar un metodo dentro de una clase se utiliza la instrucción self, ejemplo. [self mimetodo]; [self mimetodo:@”parametro”];
  • 39. Los UIViewController’s • Metodos de vista: • -(void)viewDidLoad{} • - (void)viewWillAppear:(BOOL)animated{} • -(void)viewDidUnload{} • -(void)dealloc {}
  • 40. Ahora en el Mac..
  • 42. 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”.
  • 43. 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”.
  • 44. 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
  • 45. 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.
  • 48. Ahora en el Mac..
  • 50. 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.
  • 51. 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];
  • 52. Vistas Modales y Push • Push: [self.navigationController popViewControllerAnimated:YES]; • Modal: [self dismissModalViewControllerAnimated:YES];
  • 53. Ahora en el Mac..