SlideShare una empresa de Scribd logo
1 de 22
4 - PROTOCOLOS Y VISTAS
Curso de desarrollo de aplicaciones móviles para iPhone y iPad


                 endika.gutierrez@urbegi.com
                   alex.rayon@urbegi.com

                                      Urbegi Learning
                                         Contents
CONTENIDO


• Paradigma    Model-View-Controller

• Protocolos

• Vistas

• Comunicación Vistas-Controlador
CONTENIDO


    • Paradigma   Model-View-Controller

• Protocolos

• Vistas

• Comunicación Vistas-Controlador
PARADIGMA MVC

• Paradigma    de programación para el desarrollo de interfaces

• Se   basa en separar las trés cápas lógicas

 • Datos     - Modelo

 • Comportamiento        - Controlador

 • Visualización    - Vista
PARADIGMA MVC 2


• De esta manera los objetos dentro de Cocoa se dividen en
 estas tres categorias

• Lacomunicación debe fluir entre el modelo y el controlador y
 entre el controlador y la vista
PARADIGMA MVC 3

         Controlador

Modelo                 Vista
CONTENIDO


• Paradigma   Model-View-Controller

    • Protocolos

• Vistas

• Comunicación Vistas-Controlador
PROTOCOLOS


• Los
    protocolos representan uno de los principales sistemas de
 comunicación entre objetos en Objective-C

• Permiteuna comunicación unidireccional entre dos objetos sin
 que el emisor conozca al receptor

• Define   un conjunto de métodos que la clase los implementa
PROTOCOLOS 2

• Es   análogo a los interface en Java

  • Con algunas diferencias, ya que los métodos un protocolo
    pueden ser implementados o no

• Evita   la herencia multiple

• Losobjetos pueden implementar tantos protocolos como
 deseen

  • Sin   embargo solo pueden heredar de una clase
PROTOCOLOS 3

• Lasintaxis es similar a la declaración de una interfaz de una
 clase:
 @protocol UITextFieldDelegate <NSObject>
 @optional
 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;        // return NO to
 disallow editing.
 - (void)textFieldDidBeginEditing:(UITextField *)textField;           // became first
 responder
 - (BOOL)textFieldShouldEndEditing:(UITextField *)textField;          // return YES to
 allow editing to stop and to resign first responder status. NO to disallow the
 editing session to end
 - (void)textFieldDidEndEditing:(UITextField *)textField;             // may be called
 if forced even if shouldEndEditing returns NO (e.g. view removed from window) or
 endEditing:YES called
 // ...
 @end
PROTOCOLOS 4


• La    definición de un protocolo es similar a
 @protocol NombreDelProtocolo <ClaseQuePuedeImplementarlo>

 // Definición de los métodos


 @end
PROTOCOLOS 5


• También    se pueden incluir métodos opcionales
 @protocol NombreDelProtocolo <ClaseQuePuedeImplementarlo>

 @optional
 // Definición de los métodos opcionales


 @end
PROTOCOLOS 6


• Las   clases pueden implementar protocolos
 @interface NombreDeLaClase <Protocolo1, Protocolo2, Protocolo2...>


 @end
CONTENIDO


• Paradigma    Model-View-Controller

• Protocolos

   • Vistas

• Comunicación Vistas-Controlador
VISTAS



• Las   vistas son el elemento de visualización por defecto

• Se   debe abstraer de los modelos y controladores
VISTAS 2


• La   clase base de toda vista es UIView

• La
   clase UIView por sí sola actua únicamente como un
 contenedor de vistas

  • Similar   al tag <div> de html
VISTAS 3


• Heredando   de UIView podemos personalizar las vistas

• iOS contine multitud de vistas, desde etiquetas UILabel,
 textfields UITextField hasta mapas MKMapView, contenedores web
 UIWebView...
CONTENIDO


• Paradigma    Model-View-Controller

• Protocolos

• Vistas

    • Comunicación Vistas-Controlador
COMUNICACIÓN
          VISTA-CONTROLADOR


• Segúnel paradigma MVC la vista no debería conocer ni al
 controlador ni al modelo

• Porlo tanto ¿Cómo se comunican las vistas y los
 controladores?
COMUNICACIÓN
              VISTA-CONTROLADOR 2

• El   sistema más sencillo es el denominado target-action

  • Se    indica a la vista quien va a ser el objeto que reciba la
       acción y el método
       •   [_button addTarget:self
                       action:@selector(buttonClicked:)
             forControlEvents:UIControlEventAllEvents];
COMUNICACIÓN
       VISTA-CONTROLADOR 3
• Cuando la comunicación es más compleja se emplean
 protocolos

 • Generalmente   son los delegate y los dataSource.

   • Losprotocolos Delegate proporcionan una lista métodos
    con los eventos que se puedan producir

   • Los
       protocolos DataSource proporcionan una lista
    métodos para proveer de información a la vista
FIN

Más contenido relacionado

La actualidad más candente

La actualidad más candente (18)

Calculadora Gráfica Java implementando el Patrón MVC
Calculadora Gráfica Java implementando el Patrón MVCCalculadora Gráfica Java implementando el Patrón MVC
Calculadora Gráfica Java implementando el Patrón MVC
 
Clase 10 mvc
Clase 10 mvcClase 10 mvc
Clase 10 mvc
 
Framework
FrameworkFramework
Framework
 
MVC & ASP.NET (Spanish)
MVC & ASP.NET (Spanish)MVC & ASP.NET (Spanish)
MVC & ASP.NET (Spanish)
 
Semana 1 Patrones de Diseño
Semana 1   Patrones de DiseñoSemana 1   Patrones de Diseño
Semana 1 Patrones de Diseño
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
MVC
MVCMVC
MVC
 
ASP.NET MVC (2011)
ASP.NET MVC (2011)ASP.NET MVC (2011)
ASP.NET MVC (2011)
 
Modelo vista controlador
Modelo vista controladorModelo vista controlador
Modelo vista controlador
 
3-Unidad 1. Arquitectura de Diseño
3-Unidad 1. Arquitectura de Diseño3-Unidad 1. Arquitectura de Diseño
3-Unidad 1. Arquitectura de Diseño
 
Mvc4 Intro
Mvc4 IntroMvc4 Intro
Mvc4 Intro
 
ASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVCASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVC
 
Desarrollo Web con ASP.NET MVC
Desarrollo Web con ASP.NET MVCDesarrollo Web con ASP.NET MVC
Desarrollo Web con ASP.NET MVC
 
7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos
7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos 7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos
7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos
 
Java Web - Struts
Java Web - StrutsJava Web - Struts
Java Web - Struts
 
Introducción a Zend Framework
Introducción a Zend FrameworkIntroducción a Zend Framework
Introducción a Zend Framework
 
MODELO VISTA CONTROLADOR EN PHP
MODELO VISTA CONTROLADOR EN PHPMODELO VISTA CONTROLADOR EN PHP
MODELO VISTA CONTROLADOR EN PHP
 
Framework
FrameworkFramework
Framework
 

Destacado (13)

Ios.s10
Ios.s10Ios.s10
Ios.s10
 
Ios.s6
Ios.s6Ios.s6
Ios.s6
 
Ios.s14
Ios.s14Ios.s14
Ios.s14
 
Ios.s7
Ios.s7Ios.s7
Ios.s7
 
Ios.s15
Ios.s15Ios.s15
Ios.s15
 
Ios.s8
Ios.s8Ios.s8
Ios.s8
 
Ios.s2
Ios.s2Ios.s2
Ios.s2
 
Ios.s5
Ios.s5Ios.s5
Ios.s5
 
Ios.s1
Ios.s1Ios.s1
Ios.s1
 
Ios.s13
Ios.s13Ios.s13
Ios.s13
 
Ios.s12
Ios.s12Ios.s12
Ios.s12
 
Ios.s9
Ios.s9Ios.s9
Ios.s9
 
Ios.s3
Ios.s3Ios.s3
Ios.s3
 

Similar a Ios.s4

Modelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capasModelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capasAlex Uhu Colli
 
Lp II clase02 - Modelo Vista Controlador
Lp II   clase02 - Modelo Vista ControladorLp II   clase02 - Modelo Vista Controlador
Lp II clase02 - Modelo Vista ControladorAngelDX
 
Introducción a ASP.NET MVC
Introducción a ASP.NET MVCIntroducción a ASP.NET MVC
Introducción a ASP.NET MVCSebastián Rocco
 
PPT-S08-MMIRANDA-2022-01.pptx
PPT-S08-MMIRANDA-2022-01.pptxPPT-S08-MMIRANDA-2022-01.pptx
PPT-S08-MMIRANDA-2022-01.pptxAaronContreras28
 
2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo
2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo
2-Unidad 1: Arquitectura de Diseño-1.1 MVC-DesarrolloLuis Fernando Aguas Bucheli
 
Curso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.pptCurso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.pptRolitoChc1
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corporacion de Industrias Tecnologicas S.A.
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosGeorge Navarro Gomez
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosGeorge Navarro Gomez
 
ASP.NET MVC Core by Eduard Tomàs
ASP.NET MVC Core by Eduard TomàsASP.NET MVC Core by Eduard Tomàs
ASP.NET MVC Core by Eduard TomàsPlain Concepts
 

Similar a Ios.s4 (20)

Modelo mvc
Modelo mvcModelo mvc
Modelo mvc
 
Modelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capasModelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capas
 
Lp II clase02 - Modelo Vista Controlador
Lp II   clase02 - Modelo Vista ControladorLp II   clase02 - Modelo Vista Controlador
Lp II clase02 - Modelo Vista Controlador
 
Introducción a ASP.NET MVC
Introducción a ASP.NET MVCIntroducción a ASP.NET MVC
Introducción a ASP.NET MVC
 
PPT-S08-MMIRANDA-2022-01.pptx
PPT-S08-MMIRANDA-2022-01.pptxPPT-S08-MMIRANDA-2022-01.pptx
PPT-S08-MMIRANDA-2022-01.pptx
 
2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo
2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo
2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo
 
Curso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.pptCurso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.ppt
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
 
S01-s1-MVC.pptx
S01-s1-MVC.pptxS01-s1-MVC.pptx
S01-s1-MVC.pptx
 
Programacion
ProgramacionProgramacion
Programacion
 
Arquitectura Mvc
Arquitectura MvcArquitectura Mvc
Arquitectura Mvc
 
Documentacion struts 2
Documentacion struts 2Documentacion struts 2
Documentacion struts 2
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales Conceptos
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales Conceptos
 
ASP.NET MVC Core by Eduard Tomàs
ASP.NET MVC Core by Eduard TomàsASP.NET MVC Core by Eduard Tomàs
ASP.NET MVC Core by Eduard Tomàs
 
ASP.NET MVC Core
ASP.NET MVC CoreASP.NET MVC Core
ASP.NET MVC Core
 
Struts en Java
Struts en JavaStruts en Java
Struts en Java
 
Documentacionstruts2 luiggi
Documentacionstruts2 luiggiDocumentacionstruts2 luiggi
Documentacionstruts2 luiggi
 
Documentacion struts2
Documentacion struts2Documentacion struts2
Documentacion struts2
 
Programacion 3 mvc
Programacion 3 mvcProgramacion 3 mvc
Programacion 3 mvc
 

Ios.s4

  • 1. 4 - PROTOCOLOS Y VISTAS Curso de desarrollo de aplicaciones móviles para iPhone y iPad endika.gutierrez@urbegi.com alex.rayon@urbegi.com Urbegi Learning Contents
  • 2. CONTENIDO • Paradigma Model-View-Controller • Protocolos • Vistas • Comunicación Vistas-Controlador
  • 3. CONTENIDO • Paradigma Model-View-Controller • Protocolos • Vistas • Comunicación Vistas-Controlador
  • 4. PARADIGMA MVC • Paradigma de programación para el desarrollo de interfaces • Se basa en separar las trés cápas lógicas • Datos - Modelo • Comportamiento - Controlador • Visualización - Vista
  • 5. PARADIGMA MVC 2 • De esta manera los objetos dentro de Cocoa se dividen en estas tres categorias • Lacomunicación debe fluir entre el modelo y el controlador y entre el controlador y la vista
  • 6. PARADIGMA MVC 3 Controlador Modelo Vista
  • 7. CONTENIDO • Paradigma Model-View-Controller • Protocolos • Vistas • Comunicación Vistas-Controlador
  • 8. PROTOCOLOS • Los protocolos representan uno de los principales sistemas de comunicación entre objetos en Objective-C • Permiteuna comunicación unidireccional entre dos objetos sin que el emisor conozca al receptor • Define un conjunto de métodos que la clase los implementa
  • 9. PROTOCOLOS 2 • Es análogo a los interface en Java • Con algunas diferencias, ya que los métodos un protocolo pueden ser implementados o no • Evita la herencia multiple • Losobjetos pueden implementar tantos protocolos como deseen • Sin embargo solo pueden heredar de una clase
  • 10. PROTOCOLOS 3 • Lasintaxis es similar a la declaración de una interfaz de una clase: @protocol UITextFieldDelegate <NSObject> @optional - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField; // return NO to disallow editing. - (void)textFieldDidBeginEditing:(UITextField *)textField; // became first responder - (BOOL)textFieldShouldEndEditing:(UITextField *)textField; // return YES to allow editing to stop and to resign first responder status. NO to disallow the editing session to end - (void)textFieldDidEndEditing:(UITextField *)textField; // may be called if forced even if shouldEndEditing returns NO (e.g. view removed from window) or endEditing:YES called // ... @end
  • 11. PROTOCOLOS 4 • La definición de un protocolo es similar a @protocol NombreDelProtocolo <ClaseQuePuedeImplementarlo> // Definición de los métodos @end
  • 12. PROTOCOLOS 5 • También se pueden incluir métodos opcionales @protocol NombreDelProtocolo <ClaseQuePuedeImplementarlo> @optional // Definición de los métodos opcionales @end
  • 13. PROTOCOLOS 6 • Las clases pueden implementar protocolos @interface NombreDeLaClase <Protocolo1, Protocolo2, Protocolo2...> @end
  • 14. CONTENIDO • Paradigma Model-View-Controller • Protocolos • Vistas • Comunicación Vistas-Controlador
  • 15. VISTAS • Las vistas son el elemento de visualización por defecto • Se debe abstraer de los modelos y controladores
  • 16. VISTAS 2 • La clase base de toda vista es UIView • La clase UIView por sí sola actua únicamente como un contenedor de vistas • Similar al tag <div> de html
  • 17. VISTAS 3 • Heredando de UIView podemos personalizar las vistas • iOS contine multitud de vistas, desde etiquetas UILabel, textfields UITextField hasta mapas MKMapView, contenedores web UIWebView...
  • 18. CONTENIDO • Paradigma Model-View-Controller • Protocolos • Vistas • Comunicación Vistas-Controlador
  • 19. COMUNICACIÓN VISTA-CONTROLADOR • Segúnel paradigma MVC la vista no debería conocer ni al controlador ni al modelo • Porlo tanto ¿Cómo se comunican las vistas y los controladores?
  • 20. COMUNICACIÓN VISTA-CONTROLADOR 2 • El sistema más sencillo es el denominado target-action • Se indica a la vista quien va a ser el objeto que reciba la acción y el método • [_button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventAllEvents];
  • 21. COMUNICACIÓN VISTA-CONTROLADOR 3 • Cuando la comunicación es más compleja se emplean protocolos • Generalmente son los delegate y los dataSource. • Losprotocolos Delegate proporcionan una lista métodos con los eventos que se puedan producir • Los protocolos DataSource proporcionan una lista métodos para proveer de información a la vista
  • 22. FIN

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n