“Sistema de control de proyectos para teléfonos móviles en la Empresa Constructora Jor Ltda.”

martes, 11 de junio de 2013

Introducción a los contenidos para el desarrollo



Apple iOS

    Es el sistema operativo móvil de Apple. Originalmente fue desarrollado para el iPhone, y posteriormente utilizado también en dispositivos como el iPod Touch, iPad y el Apple TV.

    La interfaz de usuario de iOS está basada en el concepto de manipulación directa, usando gestosmultitáctiles. Los elementos de control consisten de deslizadores, interruptores y botones. La respuesta a las órdenes del usuario es inmediata y provee de una interfaz fluida. La interacción con el sistema operativo incluye gestos como deslices, toques, pellizcos, los cuales tienen definiciones diferentes dependiendo del contexto de la interfaz.






    El Sistema Operativo de los dispositivos de Apple (iOS), está formado por un conjunto de capas, que conforman el conjunto de servicios ofrecidos por el dispositivo.


Arquitectura:

Cada capa de la arquitectura está compuesta por un conjunto de frameworks 
  • La capa Core OS es la base del sistema operativo. Se encarga de realizar la gestión de memoria, el sistema de ficheros, conexión a la red y procesos que interactúan con el hardware 
  • Core Services nos permite el acceso a los servicios básicos, tales como la agenda, el acceso a la base de datos, preferencias, conexión a servidores y procesamiento de URLs, etc... 
  • La capa Media nos permite la ejecución de tareas multimedia. Entre ella el acceso al Audio, OpenGL, Imágenes y PDF, Animaciones, etc... 
  • Cocoa Touch nos permite acceder al acelerómetro, los eventos y controles táctiles, la jerarquía de vistas, alertas, etc...gestiona la interacción visual con el usuario 



XCode

    Xcode es el entorno de desarrollo integrado de Apple Inc. y se suministra gratuitamente junto con Mac OS X. Xcode trabaja conjuntamente con Interface Builder, una herencia de NeXT, una herramienta gráfica para la creación de interfaces de usuario.

La versión de XCode con la que trabajaremos es la Versión 4.3.1 (4E1019).


• Xcode IDE

    Esta herramienta de desarrollo permite trabajar en un ambiente como eclipse o NetBeans, permitiendo programar, compilar y depurar cualquier aplicacion que use este programa. Además esta herramienta proporciona una gran facilidad para utilizar cualquiera de los frameworks incluidos en la API Cocoa Touch.

• Apple LLVM Compiler

    Este compilador es una version del compilador GNU, un compilador de codigo abierto compatible con C,C++,C#,Objective-C, Java, Fortran, Python, Ruby,etc. De este modo, en nuestro codigo programado en Objetive-C podremos añadir funciones adicionales y metodos escritos en otro lenguaje . Esta característica sera esencial para nosotros puesto que habrá parte del codigo que requeriremos utilizar C++ en vez de objective-C.

    No hay que olvidar de que dispone de un gran depurador el cual nos permite situar puntos de ruptura("breakpoints") en cualquier parte del codigo para comprobar el valor de todas las variables y que zona de la memoria estan alojadas. De esta forma encontraremos errores en nuestras aplicaciones de una forma facil y sencilla.

• Interface Builder

    Es una herramienta que fue incluida en el SDK un poco después de que surgiera el XCode IDE. Anteriormente la interfaz gráfica de las aplicaciones debía de crearse de forma manual programando todo el código. Esta herramienta nos facilita esta tediosa tarea. Con la ultima versión del XCode IDE, existe un archivo llamado .Storyboard que se encarga de gestionar la navegación entre los controladores de la aplicación, asi como la creación de las vistas de cada controlador.

• Simulador de iPhone

    Además de la herramientas descritas en la página anterior. El SDK de iPhone contiene un simulador integrado con el cual podemos testear y depurar el codigo de nuestras aplicaciones facilmente sin la necesidad de disponer del dispositivo físico.
    Sin embargo, el simulador posee algunas limitaciones. Por ejemplo, la arquitectura usada para compilar las aplicaciones esta basada en ARM7 o ARM6 , es decir , para que las aplicaciones funcionen en un intel X86 y no en dipositivos iPhone o iPad.

    Por otra parte, para depurar una aplicación de iPhone o iPad correctamente, es necesario que se use simultaneamente al simulador un depurador para encontrar los fallos. Usando ambas herramientas juntas podemos pausar la aplicación, volver a la instrucción anterior ejecutada, etc... con el fin de detectar fallos.


• API Cocoa Touch

    El SDK de iPhone mencionado anteriormente tambien incluye la API Cocoa Touch usada en Mac OS X.
    Cocoa Touch incorpora una asbstracción de ella misma (Mac OS X) pero enfocado al iOS. De este modo, nosotros tenemos acceso a las siguientes características:

1. Control de eventos y "Multi-Touch" 

2. Acelerometros.
3.Estructura organizada por vistas
4. Localización
5. Cámara 



    Muchos de estos frameworks estan agrupados en dos framework llamados UIKit y Foundation.
En UIKit, nosotros encontramos todos los accesorios como botones, tablas, etc. los cuales son identificados por las sigas "UI" al principio ,por ejemplo "UIButton".

    Por otra parte, Foundation ofrece todas las clases básicas personalizadas por Apple como NSString (tipico string en C), NSObject, y unas cuantas más. Todas ellas son identificadas por el prefijo "NS" al principio.

    Por último comentar, que La API Cocoa Touch esta programada en Objective-C




Objective-C

    Objective-C esta considerado como una extension de C, esto significa que nuestro compilador de objective-C puede compilar C sin ningun problema. La sintaxis es la misma que presentan los codigos orientados a objetos, usando la misma construcción de variables, expresiones, punteros, etc... que C, y recoge en gran parte el estilo de los mensajes de SmallTalk.

    Objective C se basa en enviar mensajes a instancias de objetos. La llamada a los metodos de un objeto se produce enviando un mensaje a la instancia de dicho objeto. Este envio, incluye enviar el nombre del metodo del objeto y este objeto es responsable de interpretar el mensaje en tiempo de ejecución.





Notificaciones PUSH

    Utilizaremos la tecnología que ofrece Apple, en concreto el servidor APNS (Apple Push Notification Service). Se trata de un servicio robusto y altamente eficiente para la propagación de información a dispositivos como iPhone, iPad y iPod touch. Cada dispositivo establece una conexión IP acreditada y cifrada con el servicio y recibe notificaciones través de esta conexión persistente. Si una notificación de una solicitud llega cuando dicha aplicación no se está ejecutando, el dispositivo avisa al usuario que la aplicación tiene datos esperando por ella.