domingo, 8 de marzo de 2015

Sprint 2 Backlog



Framework

Cocoa Touch
En Objective-C cada clase normalmente se encuentra separada en dos ficheros:
  • La declaración de la interfaz en un fichero .h y la implementación en un fichero .m
   Generalmente, el nombre del fichero no tiene que coincidir con el nombre de la clase, por lo que se pueden tener varias clases definidas en un mismo fichero y además se puede utilizar cualquiera de ellas siempre y cuando se importe el fichero .h correspondiente.
   Se deben agrupar en el mismo fichero aquellas clases, funciones, y elementos que estén relacionados entre sí. Las clases NSString y NSMutableString se definen en el fichero de NSString.h(m). Básicamente, la clase NSMutableString es una subclase de la clase NSString, la cual añade algunos métodos para poder modificar la cadena. Cuando se crea una App con la implementación de un framework también se debe crear un único fichero .h el cual se encarga de importar todos los elementos del framework. En nuestro caso, utilizamos el framework Cocoa Touch por lo que necesitamos importar CocoaTouch/CocoaTouch.h. A pesar de que las clases de esta librería se declaran en diferentes ficheros de cabecera.
   La forma de crear una nueva clase con Xcode es select File > New > New File... > Cocoa Touch > Objective-C class. Esto permitirá especificar la superclase, poniendo por defecto NSObject, la cual es la superclase en última instancia de todas las clases. Posteriormentese debe dar un nombre y una ubicación a la clase y así se guardarán los ficheros .h y .m correspondientes.

Clases Básicas de Cocoa Touch
   El equivalente de Cocoa Touch se llama UIKit, el cual proporciona mecanismos de control de eventos y se ocupa de dibujar en la pantalla. Casi todas las necesidades de interfaz de usuario se contabilizan en UIKit permitiendo que los desarrolladores puedan crear elementos de interfaz de usuario personalizada con mayor facilidad. El segundo framework de Cocoa Touch es Foundation, es la capa que abstrae muchos de los elementos subyacentes del sistema operativo tales como tipos primitivos, gestión de paquete, operacio es de archivos y la creación de redes de los objetos de la interfaz de usuario en UIKit. En pocas palabras, Foundation es la puerta de entrada a todo lo que no figure explícitamente en la interfaz de usuario.
   La clase principal que todos los objetos de Cocoa heredan es NSObject. El prefijo NS tiene sus raíces en los orígenes no son de Apple de Cacao en NeXT. La mayoría de las clases en Cocoa son subclases de NSObject y muchas clases asumen que NSObject es la base de los objetos que se pueden extender. Por ejemplo, la clase NSArray, que representa una colección de punteros, requiere que cualquier puntero almacene puntos en una subclase NSObject. Cualquier clase personalizada que se cree debería heredar de NSObject.

Clases en UIKit
   En UIKit todas las clases que responden a la entrada del usuario, heredan de UIResponder, que es una subclase de NSObject que proporciona funcionalidad alrededor de la entrada del usuario manipulación.
   Además de la jerarquía de clases UIResponder, UIKit incluye un conjunto de clases que actúan como objetos de valor, controladores lógicos y abstracciones de características de hardware.






Entorno de Desarrollo

   Are You In? está siendo desarrollada para dispositivos móviles con sistema operativo iOS. Para la misma se está utilizando XCode como entorno de desarrollo, generalmente con el framework Cocoa Touch, el cual es específico para iOS. El lenguaje utilizado es Objective-C y sobretodo bajo el paradigma Modelo- Vista-Controlador. Adicionalmente, la utilización de una Cloud DB para la gestión externa de datos consistentes. Generalmente, es un espacio donde se almacena de forma consistente la información relacionada con los usuarios de nuestra App. Dicho almacenamiento se utiliza con el servicio ofrecido por Parse de Cloud DB. Esta herramienta evita la implementación de una interfaz de consultas que funcione como intermediaria entre nuestra App y la Base de Datos. En cierto sentido, la App móvil se comunica de forma directa con la Cloud DB, la cual le suministra los datos que necesita.


Comunicación Estándar



Comunicación con Parse



   La interfaz iOS – Parse permite la comunicación e interacción de la App con la Cloud BD, la cual cuenta con una API específica para iOS del sitio web Parse.com y además ofrece una capa de abstracción sobre SQL. ¡Simplicidad!
   Dicho anteriormente, el IDE utilizado es Xcode junto con iPhone SDK de Apple para el desarrollo de software de iOS. Conjuntamente con Xcode Interface Builder es una herramienta gráfica que se aplica para la creación de interfaces de usuario.
   Con Objective-C (lenguaje de programación orientado a objetos) es posible compilar cualquier programa escrito en lenguaje C mediante un compilador de Objective-C. Adicionalmente, la interfaz e implementación de una clase se ubican en bloques de código separados. Cocoa Touch, el framework utilizado, proporciona una capa de abstracción al sistema operativo iOS que incluye una librería distinta para la interfaz de usuario y junto al Interface Builder generan la interfaz de usuario para la App. Todas las herramientas de desarrollo de aplicaciones que están basadas en Cocoa Touch se incluyen en el SDK de iOS.

Modelo Vista Controlador (MVC)
   Datos (Modelo), interfaz de usuario (Vista) y lógica de negocio (Controlador).
  1. El Modelo está compuesto por clases simples las cuales representarán de forma abstracta las entidades que se gestionarán en la aplicación.
  2. Las Vistas son construidas utilizando el Interface Builder.
  3. Finalmente, los Controladores son aquellas clases que extienden de alguna clase genérica incluida en el UIKit. Es un framework, contenido en Cocoa Touch que provee las clases necesarias para construir y gestionar interfaces de usuario en aplicaciones iOS.


   Cuando se vista mediante el Interface Builder y entrelazarla con el código del controlador se utilizan las propiedades Outlets. Por otro lado, la interacción del usuario con los elementos de la vista es por medio de los métodos llamados “Actions”.
   De esta manera, el controlador se comunica directamente con su modelo y con su vista.

Parse Cloud BD
   Como ya se dijo, Parse es una herramienta utilizada para persistencia remota de los datos de los usuarios de la App, mediante una API específica para iOS la cual debe ser integrada en la App. Además, permite gestionar estos datos a través del navegador web de una forma más simple desde el punto de vista visual y funcional.
   Por otro lado, Parse cuenta con una clase específica que sirve para gestionar los usuarios: PFUser. Con ella, permite registrar a los usuarios (log in). Adicionalmente, cuenta con una funcionalidad importante mediante la clase PFPush llo que permite crear notificaciones a usuarios predeterminados y enviarlas al servidor Parse para que este se comunique con el servidor de Apple (APNS) y así realice el envío a los dispositivos correspondientes.


Swift
   Es un lenguaje de programación multiparadigma, creado por Apple y está diseñado para integrarse con los el framework Cocoa Touch. Cabe destacar que puede usar cualquier librería programada en Objective-C y con ello llamar a funciones de C. En cuanto a los tipos de datos, estos se dividen en dos grupos:


  • Tipo de valor se guarda una copia de su contenido. Recomendado cuando se requiere copiar su información o se vaya a trabajar con multithreads.
  • Tipo por referencia se asigna una instancia compartida que es mutable aún si son usadas en constantes. Modificar una instancia se verá reflejado en todas las variables y constantes que la compartan. Recomendado cuando se requiera compartir datos mutables.