INTRODUCCIÓN - Techomepage.cem.itesm.mx/rmroman/2015/2015-13/tc2024/... · 12/08/15’...

18
12/08/15 Ing. Roberto Mar4nez Román [email protected] 1 INTRODUCCIÓN 1 Conocer los aspectos básicos de desarrollo en la plataforma iOS. Instalación de Xcode 2 Xcode es la herramienta que se uDliza para desarrollar aplicaciones para Mac, iPhone, iPad y iPod touch. Incluye un simulador y los SDK de iOS y OS X. Es gratuita, se puede descargar de: hOp://developer.apple.com

Transcript of INTRODUCCIÓN - Techomepage.cem.itesm.mx/rmroman/2015/2015-13/tc2024/... · 12/08/15’...

Page 1: INTRODUCCIÓN - Techomepage.cem.itesm.mx/rmroman/2015/2015-13/tc2024/... · 12/08/15’ Ing.’Roberto’Mar4nezRomán’8’ rmroman@itesm.mx’ 1 INTRODUCCIÓN 1 Conocer los aspectos

12/08/15  

Ing.  Roberto  Mar4nez  Román  -­‐  [email protected]   1  

INTRODUCCIÓN

1  

Conocer los aspectos básicos de desarrollo en la plataforma iOS.

Instalación  de  Xcode  2  

¨  Xcode  es  la  herramienta  que  se  uDliza  para  desarrollar  aplicaciones  para  Mac,  iPhone,  iPad  y  iPod  touch.  

¨  Incluye  un  simulador  y  los  SDK  de  iOS  y  OS  X.  ¨  Es  gratuita,  se  puede  descargar  de:  

hOp://developer.apple.com  

       

 

Page 2: INTRODUCCIÓN - Techomepage.cem.itesm.mx/rmroman/2015/2015-13/tc2024/... · 12/08/15’ Ing.’Roberto’Mar4nezRomán’8’ rmroman@itesm.mx’ 1 INTRODUCCIÓN 1 Conocer los aspectos

12/08/15  

Ing.  Roberto  Mar4nez  Román  -­‐  [email protected]   2  

Preparando  el  dispositivo  3  

¨  Para  correr  aplicaciones  en  un  disposiDvo  móvil,  es  necesario  registrarlo.  

¨  Sólo  un  usuario  registrado  como  desarrollador  puede  configurar  disposiDvos  para  probar  sus  aplicaciones.  

¨  El  disposiDvo  se  puede  registrar  en  la  página  de  desarrollador  o  directamente  en  Xcode.  

Distribuyendo  apps  4  

Generar  un  cerDficado  y  registrar  

disposiDvos  

Page 3: INTRODUCCIÓN - Techomepage.cem.itesm.mx/rmroman/2015/2015-13/tc2024/... · 12/08/15’ Ing.’Roberto’Mar4nezRomán’8’ rmroman@itesm.mx’ 1 INTRODUCCIÓN 1 Conocer los aspectos

12/08/15  

Ing.  Roberto  Mar4nez  Román  -­‐  [email protected]   3  

Pasos  para  correr  apps  en  el  dispositivo  

5  

1.  Darse  de  alta  como  desarrollador  ($99  USD  anuales)  

2.  Generar  los  cerDficados.  3.  Registrar  los  disposiDvos  (pueden  ser  hasta  100)  4.  En  Xcode,  indicar  que  la  app  corre  en  el  disposiDvo  

conectado  a  la  computadora.  

Usando  Xcode  6  

¨  Abre  Xcode,  desde  las  aplicaciones.  ¤ Si  es  la  primera  vez,  se  muestra  la  siguiente  ventana.  ¤ Selecciona  Create  a  new  Xcode  project.  

Page 4: INTRODUCCIÓN - Techomepage.cem.itesm.mx/rmroman/2015/2015-13/tc2024/... · 12/08/15’ Ing.’Roberto’Mar4nezRomán’8’ rmroman@itesm.mx’ 1 INTRODUCCIÓN 1 Conocer los aspectos

12/08/15  

Ing.  Roberto  Mar4nez  Román  -­‐  [email protected]   4  

Creando  proyectos  7  

¤ Si  no  es  la  primera  vez,  automáDcamente    abre  el  úlDmo  proyecto.  

¤ Selecciona  File,  New,  Project  ¤ Selecciona  Single  View  ApplicaDon  

Creando  proyectos  (2)  8  

¨  Configura  tu  proyecto  para  que  se  vea  así:  

Page 5: INTRODUCCIÓN - Techomepage.cem.itesm.mx/rmroman/2015/2015-13/tc2024/... · 12/08/15’ Ing.’Roberto’Mar4nezRomán’8’ rmroman@itesm.mx’ 1 INTRODUCCIÓN 1 Conocer los aspectos

12/08/15  

Ing.  Roberto  Mar4nez  Román  -­‐  [email protected]   5  

Creando  proyectos  (3)  9  

¨  Selecciona  la  carpeta  donde  guardarás  todos  tus  ejercicios,  automáDcamente  se  crea  una  carpeta  para  el  proyecto.  No  selecciones  por  ahora  la  opción  del  repositorio;  ya  puedes  dar  click  sobre  el  botón  "Create".  

El  proyecto  en  Xcode  10  

Archivos  del  

proyecto  

Ubicación  del  

proyecto  

Configuración  de  versión  

Orientaciones  permiDdas  

Controles  de  

ejecución  Configura  

la  interface  

Librería  de  componentes  

Page 6: INTRODUCCIÓN - Techomepage.cem.itesm.mx/rmroman/2015/2015-13/tc2024/... · 12/08/15’ Ing.’Roberto’Mar4nezRomán’8’ rmroman@itesm.mx’ 1 INTRODUCCIÓN 1 Conocer los aspectos

12/08/15  

Ing.  Roberto  Mar4nez  Román  -­‐  [email protected]   6  

Componentes  de  Xcode  11  

¨  Xcode  IDE.  ¨  Simulador  de  iOS.  (no  es  emulador)  ¨  Interface  Builder.  ¨  Instruments.  

Ejecutando  aplicaciones  en  el  simulador  

12  

¨  Selecciona  la  versión  del  simulador  que  quieres  uDlizar  y  luego  oprime  el  botón  de  Run.  

Page 7: INTRODUCCIÓN - Techomepage.cem.itesm.mx/rmroman/2015/2015-13/tc2024/... · 12/08/15’ Ing.’Roberto’Mar4nezRomán’8’ rmroman@itesm.mx’ 1 INTRODUCCIÓN 1 Conocer los aspectos

12/08/15  

Ing.  Roberto  Mar4nez  Román  -­‐  [email protected]   7  

El  simulador  de  iOS  13  

¨  Puede  simular  pantallas  de  reDna,  tanto  en  iPhone  como  en  iPad.  

¨  ConDene  aplicaciones  básicas:  ¤ Safari  ¤ Photos  ¤ Selngs  ¤ Contacts  ¤ Game  Center  ¤ Newsstand  ¤ TwiOer  

El  simulador  de  iOS  (2)  14  

¨  Puede  simular:  ¤ Un  GPS  con  ubicación  fija  o  variable.  ¤  iPad  de  resolución  estándar  o  pantalla  de  reDna.  ¤  iPhone  con  pantalla  de  3.5',  4',  4.7  y  5.5'  incluyendo  pantalla  de  reDna.  

¤ Una  sacudida.  

Page 8: INTRODUCCIÓN - Techomepage.cem.itesm.mx/rmroman/2015/2015-13/tc2024/... · 12/08/15’ Ing.’Roberto’Mar4nezRomán’8’ rmroman@itesm.mx’ 1 INTRODUCCIÓN 1 Conocer los aspectos

12/08/15  

Ing.  Roberto  Mar4nez  Román  -­‐  [email protected]   8  

Los  archivos  de  la  aplicación  15  

import  UIKit  

@UIApplicaDonMain  

class  AppDelegate:  UIResponder,  UIApplicaDonDelegate  {  

       var  window:  UIWindow?  

       func  applicaDon(applicaDon:  UIApplicaDon,  didFinishLaunchingWithOpDons  launchOpDons:  [NSObject:  AnyObject]?)  -­‐>  Bool  {  

               return  true  

       }  

       func  applicaDonWillResignAcDve(applicaDon:  UIApplicaDon)  {  

       }  

       func  applicaDonDidEnterBackground(applicaDon:  UIApplicaDon)  {  

       }  

       func  applicaDonWillEnterForeground(applicaDon:  UIApplicaDon)  {  

       }  

       func  applicaDonDidBecomeAcDve(applicaDon:  UIApplicaDon)  {  

       }  

       func  applicaDonWillTerminate(applicaDon:  UIApplicaDon)  {  

       }  

}  

 

AppDelegate.swiv  

Ciclo  de  vida  de  la  app  

Los  archivos  de  la  aplicación  16  

¨  Descripción  de  los  elementos  en  el  delegado  ¤  UIKit.  ConDene  la  definición  de  clases  para  construir  la  interfaz  gráfica  

de  usuario.  ¤  UIResponder.  Es  la  clase  que  define  una  interfaz  para  objetos  que  

responden  y  manejan  eventos.  ¤  UIApplica=onDelegate.  Declara  métodos  que  son  implementados  por  

el  delegado  del  objeto  de  Dpo  UIApplicaDon.  Estos  métodos  dan  información  de  lo  que  sucede  en  la  aplicación  durante  su  ejecución:  n  Termina  de  cargarse  en  memoria.  n  Va  a  salir  de  ejecución.  n  Se  está  terminando  la  memoria.  

Page 9: INTRODUCCIÓN - Techomepage.cem.itesm.mx/rmroman/2015/2015-13/tc2024/... · 12/08/15’ Ing.’Roberto’Mar4nezRomán’8’ rmroman@itesm.mx’ 1 INTRODUCCIÓN 1 Conocer los aspectos

12/08/15  

Ing.  Roberto  Mar4nez  Román  -­‐  [email protected]   9  

Clases  17  

 class  NombreClase  {    

 //  Propiedades  o  atributos    var  atributo:  Tipo  =  valorInicial  //  Variable    let  valor:  Tipo  =  valorConstante    //  Constante    //  Métodos  

   func  metodo(parametro:  Tipo)  -­‐>  TipoRegreso  {      //  Instrucciones  del  método    }  

}  

Propiedades  18  

class  ConverDdor  {          var  pulgadas:  Int  =  0  //  Propiedad  almacenada            var  cenDmetros:  Double    {  //  Propiedad  calculada                  get  {                          return  Double(pulgadas)*2.54                  }          }  }  

Page 10: INTRODUCCIÓN - Techomepage.cem.itesm.mx/rmroman/2015/2015-13/tc2024/... · 12/08/15’ Ing.’Roberto’Mar4nezRomán’8’ rmroman@itesm.mx’ 1 INTRODUCCIÓN 1 Conocer los aspectos

12/08/15  

Ing.  Roberto  Mar4nez  Román  -­‐  [email protected]   10  

El  controlador  19  

import  UIKit  

 

class  ViewController:  UIViewController  {  

 

       override  func  viewDidLoad()  {      

               super.viewDidLoad()  

               //  Do  any  addiDonal  setup  aver  loading  the  view,  typically  from  a  nib.  

       }  

 

       override  func  didReceiveMemoryWarning()  {  

               super.didReceiveMemoryWarning()  

               //  Dispose  of  any  resources  that  can  be  recreated.  

       }  

 

}  

Superclase  

Método  sobrescrito  

La  vista  (Archivo  NIB)  20  

Interface  Builder  es  la  herramienta  que  permite  diseñar  la  GUI  

Page 11: INTRODUCCIÓN - Techomepage.cem.itesm.mx/rmroman/2015/2015-13/tc2024/... · 12/08/15’ Ing.’Roberto’Mar4nezRomán’8’ rmroman@itesm.mx’ 1 INTRODUCCIÓN 1 Conocer los aspectos

12/08/15  

Ing.  Roberto  Mar4nez  Román  -­‐  [email protected]   11  

Interface  Builder  21  

¨  Es  un  editor  que  nos  permite  construir  la  GUI  de  las  aplicaciones.  

¨  La  creación  de  la  GUI  es  en  modo  gráfico.  ¨  Está  completamente  integrado  a  Xcode.  ¨  Se  puede  comunicar  con  el  editor  de  código  de  Xcode.  

¨  Los  archivos  asociados  a  este  editor  son  los  archivos  NIB  (.xib)  

La  vista  (Archivo  NIB)  22  

Vista  (UIView)  

Controlador  (UIViewController)  

Propiedades  

Page 12: INTRODUCCIÓN - Techomepage.cem.itesm.mx/rmroman/2015/2015-13/tc2024/... · 12/08/15’ Ing.’Roberto’Mar4nezRomán’8’ rmroman@itesm.mx’ 1 INTRODUCCIÓN 1 Conocer los aspectos

12/08/15  

Ing.  Roberto  Mar4nez  Román  -­‐  [email protected]   12  

La  biblioteca  de  componentes  23  

¨  Interface  Builder  Dene  una  biblioteca  de  componentes  gráficos  de  usuario  que  podemos  uDlizar  para  crear  la  GUI.  

La  ventana  de  propiedades  24  

¨  Con  las  propiedades  podemos  configurar  cada  uno  de  los  componentes  de  la  GUI.  

Page 13: INTRODUCCIÓN - Techomepage.cem.itesm.mx/rmroman/2015/2015-13/tc2024/... · 12/08/15’ Ing.’Roberto’Mar4nezRomán’8’ rmroman@itesm.mx’ 1 INTRODUCCIÓN 1 Conocer los aspectos

12/08/15  

Ing.  Roberto  Mar4nez  Román  -­‐  [email protected]   13  

DISEÑO  DE  APLICACIONES  MODELO  VISTA  CONTROLADOR.  

25  

Patrón  de  diseño  MVC  26  

Page 14: INTRODUCCIÓN - Techomepage.cem.itesm.mx/rmroman/2015/2015-13/tc2024/... · 12/08/15’ Ing.’Roberto’Mar4nezRomán’8’ rmroman@itesm.mx’ 1 INTRODUCCIÓN 1 Conocer los aspectos

12/08/15  

Ing.  Roberto  Mar4nez  Román  -­‐  [email protected]   14  

Modelo-­‐Vista-­‐Controlador  27  

Controlador  (cómo  se  presenta  

el  modelo  al  usuario)  

Modelo  (lo  que  es  la  

app)  

Vista  (cómo  se  

despliega  la  app)  

Modelo-­‐Vista-­‐Controlador  (2)  28  

Controlador  (cómo  se  presenta  

el  modelo  al  usuario)  

Modelo  (lo  que  es  la  

app)  

Vista  (cómo  se  

despliega  la  app)  

Outlet  

Ac=on  

Broadcast  

Tune  in  

Target  

Page 15: INTRODUCCIÓN - Techomepage.cem.itesm.mx/rmroman/2015/2015-13/tc2024/... · 12/08/15’ Ing.’Roberto’Mar4nezRomán’8’ rmroman@itesm.mx’ 1 INTRODUCCIÓN 1 Conocer los aspectos

12/08/15  

Ing.  Roberto  Mar4nez  Román  -­‐  [email protected]   15  

Evaluación  29  

¨  Crea  una  app  que  permita  realizar  una  conversión  de  Temperaturas  de  ºF  a  ºC.  

Regresando  al  MVC  30  

¨  ¿Puedes  idenDficar  el  Modelo,  la  Vista  y  el  Controlador?    

¨  Vamos  a  crear  el  modelo  nosotros  mismos.  

Page 16: INTRODUCCIÓN - Techomepage.cem.itesm.mx/rmroman/2015/2015-13/tc2024/... · 12/08/15’ Ing.’Roberto’Mar4nezRomán’8’ rmroman@itesm.mx’ 1 INTRODUCCIÓN 1 Conocer los aspectos

12/08/15  

Ing.  Roberto  Mar4nez  Román  -­‐  [email protected]   16  

Agregando  clases  al  proyecto  31  

La  clase  Convertidor  32  

class  ConverDdor  {  

       var  gradosF:  Double  =  0.0  

       var  gradosC:  Double  =  0.0  

       //  Atributos  calculados  

       var  temperaturaFahrenheit:Double  {  

               get  {  

                       return  9.0/5.0  *  gradosC  +  32  

               }  

       }  

       var  temperaturaCelsius:Double  {  

               get  {  

                       return  5.0/9.0*(gradosF-­‐32)  

               }  

       }  

}  

Page 17: INTRODUCCIÓN - Techomepage.cem.itesm.mx/rmroman/2015/2015-13/tc2024/... · 12/08/15’ Ing.’Roberto’Mar4nezRomán’8’ rmroman@itesm.mx’ 1 INTRODUCCIÓN 1 Conocer los aspectos

12/08/15  

Ing.  Roberto  Mar4nez  Román  -­‐  [email protected]   17  

La  Vista  33  

El  controlador  34  

¨  Primero  vamos  a  crear  los  Outlets.  ¤ Abre  el  Asistente  de  edición.  ¤ Arrastra,  con  click  derecho,  cada  uno  de  los  TextField  al  archivo  ViewController.swiv;  asigna  un  nombre  significaDvo.  

¨  Después,  creamos  los  métodos  que  aDenden  el  evento  de  cada  botón.  ¤ Arrastra,  con  click  derecho,  el  botón  hacia  el  archivo  ViewController.swiv;  asigna  un  nombre  significaDvo.  

Page 18: INTRODUCCIÓN - Techomepage.cem.itesm.mx/rmroman/2015/2015-13/tc2024/... · 12/08/15’ Ing.’Roberto’Mar4nezRomán’8’ rmroman@itesm.mx’ 1 INTRODUCCIÓN 1 Conocer los aspectos

12/08/15  

Ing.  Roberto  Mar4nez  Román  -­‐  [email protected]   18  

Implementando  el  controlador  35  

class  ViewController:  UIViewController  {            @IBOutlet  weak  var  ~GradosF:  UITextField!          @IBOutlet  weak  var  ~GradosC:  UITextField!                    @IBAcDon  func  conver=rFaC(sender:  AnyObject)  {                  let  converDdor  =  ConverDdor()                  let  gradosF  =  NSString(string:  ~GradosF.text).doubleValue;                  converDdor.gradosF  =  gradosF;                  ~GradosC.text  =  "\(converDdor.temperaturaCelsius)"          }  }  

Aplicación  terminada  36  

¨  Algunas  mejoras.  ¤ Los  campos  permiten  capturar  letras.  ¤ El  segundo  campo  se  puede  editar.  ¤ El  teclado  no  se  esconde.  ¤ Se  crean  varios  modelos.  

¨  Reto.  ¤ Agrega  otro  botón  para  converDr  de  ºC  a  ºF.  Puedes  modificar  la  interfaz  de  usuario.