• No se han encontrado resultados

Aplicaciones Móviles Web Apps

N/A
N/A
Protected

Academic year: 2021

Share "Aplicaciones Móviles Web Apps"

Copied!
18
0
0

Texto completo

(1)

Aplicaciones Móviles Web Apps

(2)

Sesión No. 7

Nombre: Objective C Contextualización

El lenguaje de programación Objective-c es uno de los 3 más comunes para la realización de aplicaciones de dispositivos móviles, en este caso, el presente sistema de programación se utiliza en los dispositivos iPhone e iPad, entre otros sistemas de los cuales dependen para funcionar correctamente.

Éste es un lenguaje de programación que se orienta a objeto, por lo que puede ser compatible con muchas de las aplicaciones disponibles del mercado, las cuales son disponibles para dispositivos móviles de nueva generación o teléfonos inteligentes.

(3)

Introducción al Tema

Los lenguajes de programación para los dispositivos móviles se han desarrollado a gran velocidad, presentando opciones de aplicaciones que antes no se consideraban, como por ejemplo, buscadores especializados de música, que con sólo un fragmento de una canción pueden dar la información sobre el nombre, el artista y el año, además de utilidades más robustas, como geo-localización o sistemas de detección de rostro para funcionar con medios de realidad aumentada.

Entre muchas funciones más que se pueden desarrollar gracias a estos medios de programación.

(4)

Explicación Objective C

¿Cuáles son los orígenes de Objective-c?

Este lenguaje se originó pensando en crear un subconjunto de C, éste fue desarrollado por Brad Cox y la corporación StepStone en los años 80. Tiempo después este mismo fue adoptado como lenguaje de programación para el compilador GCC. Hoy en día se utiliza como base para la programación de sistemas en Mac OS, iOS y GNUstep.

¿Cómo funciona este lenguaje de programación?

Funciona como lenguaje de programación orientada a objetos, lo que le permite funcionar correctamente como sistema operativo y gestionar la información necesaria dentro de los mismos.

Objective-C necesita de implementación en bloques de código separado, es decir, distribuir los elementos con los que éste funcionará en partes o paquetes de información para tener una estabilidad mayor.

Su interfaz se define por un archivo de cabecera, esto funciona cuando el archivo es nombrado con el mismo nombre de la clase en uso.

Introducción a Objective C

Este lenguaje de programación se basa en una orientación a objetos, por lo que se deben definir los mismos dentro de las líneas de código para así poder ligar las acciones a los elementos que se desean utilizar, incluyendo estructuras condicionales, lógicas, de relación o solamente realizar ciclos específicos.

Algunos de los elementos con los que cuenta Objective-C son:

• Clase.

• Herencia.

(5)

• Objeto.

• Método.

• Evento.

• Atributos.

• Mensaje.

Como todo lenguaje de programación, éste cuenta con varios elementos que pueden definirse como ventajas y otros como desventajas, por lo que siempre debemos considerar estos puntos al momento de diseñar o desarrollar cualquier aplicación para cualquier dispositivo móvil, pues de esta manera podremos tener un mejor resultado con el paradigma de programación más conveniente en cuanto a funcionalidad, rendimiento y diseño.

Ventajas

• Es una herramienta utilizada por Apple, por lo que las nuevas generaciones de dispositivos contarán con los sistemas basados en Cocoa y Objective-C.

• Es la base de la creación de aplicaciones para iPhone, iPad y Mac, por lo que la compatibilidad de dispositivos será amplia al igual que la retrocopatibilidad.

• Representa un costo de producción menor por ser un código abierto.

Desventajas

• Sólo sirve para crear aplicaciones en dispositivos de Apple.

• El desarrollo de inicio es más complicado que con otras plataformas de desarrollo de aplicaciones.

• Se requieren de conocimientos previos de programación para poder realizar una aplicación en éste.

(6)

Algunos de los datos básicos que podemos encontrar en este leguaje son:

• String: indica el uso de una cadena de caracteres.

• Public class: indica el tipo de clase al que pertenece la aplicación.

• Void: indica que puede aplicar elementos vacíos o no.

• Int: indica el uso de elementos enteros.

• {: es el indicador para abrir una nueva línea de código.

• }: cierra las líneas de código.

• Short: usa elementos de 2 bytes, sus valores comprenden desde 0 a 65,535.

• Unsigned char: elementos de 1 byte, sus valores van de 0 a 255.

• BOOL: valores que arrojan un resultado verdadero o falso.

• Unsigned: elementos de 1 byte, sus valores van de 0 a 255.

• Float: elementos de 4 bytes, sus valores van de 1.18e38 a 3.40e38.

• Double: elementos de 8 bytes, sus valores van de 2.23e-308 a 1.79e308.

• Long double: elementos de 10 bytes, sus valores van de 3.373-4932 a 1.18e4932.

• Const double: usa elementos de constante que dan como resultado un valor.

Arquitectura iOS

¿Qué es iOS?

Es un sistema operativo móvil que es desarrollado e implementado por Apple, se desarrolló inicialmente para uso del iPhone y posteriormente se aplicó a los nuevos dispositivos desarrollados por la misma compañía. Las características de este sistema operativo es la gestión del hardware del dispositivo que implementa las aplicaciones nativas, el sistema inicialmente se complementa con aplicaciones de teléfono inteligente, como, correo, navegación Web y servicios adicionales.

(7)

Las características de este sistema son:

• Derivado del sistema operativo de Mac OS X, el cual se basa en Darwin, un sistema desarrollado por Linux.

• La totalidad del sistema se encuentra en la partición“/root” y ocupa menos de 500 megas.

• Su interfaz se incluye:

o Manipulación directa.

o Interacción.

• Su respuesta es inmediata a lo que el usuario desea.

• Da soporte a sensores como; acelerómetro, giroscopio los cuales funcionan a partir del movimiento.

La arquitectura iOS es la forma en como se estructura una aplicación o sistema operativo para dispositivos Apple, este diseño de arquitectura se basa en capas, las cuales constan del desarrollo de diferentes elementos con lenguajes de programación compatibles para los mismo artículos, estas capas son;

• Cocoa Touch: es la capa de mayor importancia para el desarrollo de aplicaciones iOS, ésta posee un conjunto de Frameworks proporcionado por el API de Cocoa Touch, esta API existe en Mac. Esta capa se forma por dos Frameworks muy importantes:

o UIkit: contiene las clases necesarias para el desarrollo de la interfaz de usuario.

o Foundation Framework: define las clases básicas, accesos y manejos de objetos y servicios del sistema operativo.

• Media: es el controlador y proveedor de los servicios multimedia y gráficos a la capa superior. Dentro de los gráficos podemos encontrar una variedad que determina el tipo y función de los mismos.

o Core graphics (Quartz): maneja vectores en dos dimensiones y renderización de imágenes.

(8)

o Core animation: es parte del Quartz core framework, proporciona soporte avanzado para animaciones y contenidos.

o Open GL y GLKit: proporciona soporte para la renderización 2D y 3D.

o Core Text: ofrece un diseño y motor de texto.

o E/S estándar de imagen: proporciona interfaces para leer y escribir los formatos de imagen.

o Biblioteca Assets: proporciona acceso a las fotos y videos del usuario.

• Core services: contiene los servicios que usan todas las aplicaciones dentro del sistema. Permite al usuario acceder a todos los servicios y puede ser usado por aplicaciones creadas por terceros.

• Core OS: contiene las características de bajo nivel. Éste se encarga de cumplir con funciones específicas:

o Gestión de memoria virtual.

o Gestión de procesos, hilos, manejo de la memoria y comunicación.

o Gestión del sistema de archivos.

o Gestión de acceso a red de bajo nivel.

o Gestión de procesos de interacción con el hardware.

Este sistema provee interfaces basadas en lenguaje C, por lo que puede orecer:

• Threading o hilos POSIX.

• Red.

• Acceso a sistema de archivos.

• Manejo estándar de E/S.

• Bonjour y servicios DNS.

• Información de entorno local.

• Asignación de memoria.

• Cálculos matemáticos.

(9)

Éste también utiliza objetos de bloque, los cuales son un lenguaje de construcción C, un bloque es una función anónima y son llamados cierre o lambda según el lenguaje que se utilice, sus funciones son:

• Reemplazo de funciones de retorno de llamadas.

• Implementación de controladores de finalización funciones.

• Realización de tareas asincrónicas con colas de envío.

El patrón MVC

¿Qué es el patrón MVC?

Éste es el modelo vista controlador, el cual se utiliza en diferentes entornos de desarrollo, los cuales son:

• Java Swing.

• Java Enterprise Edition.

• Xforms.

• GTK.

• ASP.NET MVC Framework.

• Google Web Toolkit.

• Apache Struts.

• Ruby on Rails.

Cada uno de estos modelos cuenta con su procedimiento específico en el que se establecen los movimientos a realizar dentro del sistema por parte del controlador.

Este patrón separa la lógica de negocio y la presentación, por tanto se consigue un mantenimiento más sencillo de las aplicaciones. El modelo se encarga de la abstracción de la lógica que se relaciona con los datos, permitiendo que la vista y las acciones sean independientes del tipo de gestor de base de datos o cualquier otro elemento externo a la aplicación.

(10)

La forma en que funciona este patrón es;

• Es usuario realiza una acción; el controlador busca el evento de entrada.

• El controlador notifica al modelo de acción del usuario.

• Se genera una nueva vista.

• La interfaz de usuario espera otra instrucción.

Las acciones que se pueden lograr con el uso de este elemento son:

• Programación simple.

• Uso de controladores.

• Uso de vistas.

• Manipulación de datos.

• Abstracción de la base de datos.

Por ser este modelo utilizado en varios lenguajes de programación, se tienen muchos elementos distintos con los cuales trabajar, pues puede que algunos funcionen de una manera directa y otros no, definiendo nuevas acciones y permitiendo que se tenga en consideración el desarrollo de elementos potenciales para la creación de nuevas vistas o modelos de programación lógica que para el usuario son muy importantes.

Este modelo es responsable de cumplir con varias especificaciones importantes para un usuario y la forma en que se opera un sistema, tanto en su interior como en su exterior:

• Accede a la capa de almacenamiento de datos.

• Define reglas del negocio.

• Mantiene un registro de las vistas y controladores del sistema.

• Notifica a las vistas, los cambios que se pueden producir en los datos por un agente externo.

Los elementos de que se encargan las vistas son:

• Recibir datos del modelo y mostrarlos al usuario.

(11)

• Mantener un registro de su controlador asociado.

• Dar servicio de actualización.

Los elementos de los que es responsable el controlador son:

• Recibe los eventos de entrada.

• Gestiona mediante reglas los eventos.

Ventajas:

• Clara separación entre interfaz lógica de negocio y de presentación.

• Sencillez para crear distintas representaciones.

• Facilidad para la realización de pruebas unitarias de los componentes.

• Reutilización de los componentes.

• Simplicidad en el mantenimiento de los sistemas.

• Facilidad para desarrollar prototipos.

• Los desarrollos pueden ser escalables.

Desventajas:

• Tener que cumplir con una estructura predefinida.

• La curva de aprendizaje de los nuevos diseñadores es mayor que la de modelos simples como Webforms.

• La distribución obliga a crear un mayor número de ficheros.

(12)

Conclusión

La evolución de los medios de programación y sistemas de aplicación han requerido de un trabajo muy importante para lograr que se mantengan vigentes, por lo que siempre se tienen que considerar el uso de herramientas alternativas, en el caso de iOS se puede apreciar que ha tenido una gran evolución, como hemos visto en sesiones anteriores, los cambios que presenta en sus sistemas operativos móviles son muy significativos, se ha tenido que aplicar nueva tecnología y lenguajes de programación para mejorar y aumentar la compatibilidad entre los dispositivos y los medios externos.

La importancia que tienen los sistemas no sólo operativos, sino de cualquier medio o entorno es que logren mantener siempre vigente lo que se desarrolló, también es el mejorar los procesos de comunicación entre el usuario y el dispositivo y completar los ciclos necesarios de aprendizaje entre estos dos actores.

La programación que usa Apple dentro de sus artículos es muy variada, por lo que debemos comprender algunos de los elementos más importantes, pues puede que sean los que crean la compatibilidad y soporte entre dispositivos, de esta manera se tiene una noción de cómo desarrollar un buen soporte que se aplique dentro de los sistemas sea funcional, con buen nivel de detalle y no afecte el rendimiento.

(13)

Para aprender más Objective-C

¿En este medio se presentan paradigmas de programación?

Todos los lenguajes de programación presentan paradigmas, pues no se crea uno por cada lenguajes, sino que se tienen por categoría, en este caso los que corresponden a la programación dirigida a objetos, sabemos que estos tienen elementos importantes que ayudan a realizar lo que solicita, por tanto se deben cumplir los requerimientos, no sólo para tener un buen producto, sino tener la calidad necesaria que puede o no perjudicar el dispositivo en el que se ejecuta.

Por ejemplo se deben cumplir los siguientes elementos;

• Objeto: éstos contienen variables, las cuales responden a métodos, tienen una dirección de memoria en la cual se almacenan, pertenecen a una clase definida y pueden ser implementados mediante protocolos.

• Clases: son elementos de pertenencia en las cuales se indican varios o un elemento el que puede hacer o tener información específica.

• Variables de instancia: los objetos pueden ser variables en sí mismos y pueden contener a otras varias, es lo que se conoce como anidado, las variables son diferentes en cada objeto pues éstas determinan sus atributos.

• Métodos de instancia: son funciones que se pueden ejecutar en una clase determinada. Cada clase determina su método de instancia, por lo que no siempre es lo mismo en la compilación.

• Métodos de clase: son funciones a las que se puede acceder desde una clase. Un método clásico es el alloc, éste sólo puede acceder desde una clase, nunca desde un objeto.

En Objective-C: las clases se definen por medio de dos archivos, NOMBRECLASE.h y NOMBRECLASE.m.

(14)

• Los archivos .h, contienen la interfaz de la clase.

• Los archivos .m contienen la implementación.

Cuando se definen objetos en este lenguaje de programación, se tienen que anteponer un asterisco (*) al nombre del objeto.

Los métodos se definen entre corchetes ({ }).

Se utiliza el guion (-) para preceder a los métodos de instancia.

Se utiliza la función NSLong para imprimir en la consola los valores de las variables.

En la siguiente página podrás encontrar ejemplos útiles en los que se aprecia la forma de uso de Objective-C http://brd.unid.edu.mx/introduccion-a-objective-c, con lo cual podrás poner en práctica el uso de sintaxis y elementos para el desarrollo de aplicaciones.

Esta herramienta no sólo se utiliza para esto sino que se vale de otra llamada Cocoa, con la que también se pueden desarrollar elementos importantes y funcionales para los dispositivos, además de que no sólo se pueden crear sistemas operativos mediante éstos, sino que también controladores para los dispositivos de hardware de la computadora o de los dispositivos móviles.

Un ejemplo de los códigos de ejecución de Objective-C es el siguiente:

public class computadora { String marca;

String precio;

-void rendimiento(int rendimiento){

} }

Tómese en cuenta que no sólo se pueden hacer aplicaciones de este tipo, sino también mucho más robustas y de uso condicional y ciclos sin un límite de

(15)

variables. Éste siempre aplica varios elementos diferentes para tener una amplia variedad de funciones, entre las cuales están:

Operadores Aritméticos:

• Suma +

• Resta -

• Multiplicación *

• División /

• Resto %

Operadores booleanos:

• Igualdad ==

• Mayor que >

• Menor que <

• Mayor o igual que >=

• Menor o igual que <=

• Distinto de !=

Lógicos:

• ! NOT

• && AND

• || OR

• ^ XOR

(16)

Actividad de Aprendizaje

Instrucciones

Con la finalidad de reforzar los conocimientos adquiridos a lo largo de esta sesión, ahora tendrás que realizar una actividad en la cual a través de un listado de 7 elementos indiques tus actividades diarias y las relaciones con los elementos de programación vistos en esta sesión o cualquier otra, por ejemplo, una actividad que da como resultado un valor booleano (sí/no), puede ser responder una pregunta sencilla, ¿te gusta salir a comer a un restaurante? Sí/no.

Diario me lavo los dientes a las 7 a.m. y veo la T.V, éste es una estructura DO WHILE, o cualquier otra actividad que desees.

Puedes realizarlo en cualquier programa, al final tendrás que guardarlo como un documento de texto para subirlo a la plataforma de la asignatura.

(17)

Referencias

• Ávila, R. (2012). Objective-C, el lenguaje nativo de iOS. Consultado en: http://rubiko.mx/objective-c-el-lenguaje-nativo-de-ios/

• Campoche, J. (2013) iOS. Consultado

en: http://jcampohucn.blogspot.mx/2013/05/arquitectura.html

• Noemí (2010). Introducción a Objective-C. Consultado en: http://helloworldiphone.blogspot.mx/2010/04/introduccion-objetive- c.html

• Pavón, M. (2008) El patrón modelo-vista-controlador. Consultado en: http://www.fdi.ucm.es/profesor/jpavon/poo/2.14.mvc.pdf

• Porras, E. (2012) Sistema operativos iOS. Consultado en: http://eve- ingsistemas-u.blogspot.mx/2012/04/sistemas-operativos-moviles-ios.html

• PynSoftware. (2013). Introducción a Objective-C. Consultado en: https://sites.google.com/site/pynsoftware/tutorials-3/spanish- version/introduccionaobjective-c

• s/a. (2012) Lenguaje de programación iPhone y herramientas para programación de Apps para iPhone e iPad. Consultado en: http://www.cocoaosx.com/2012/01/27/lenguaje-programacion-iphone/

• s/a. (2013) El patrón MVC. Consultado

en: http://librosweb.es/symfony_1_2/capitulo_2/el_patron_mvc.html

• s/a. (2010) El patrón MVC (Modelo Vista Controlador). Consultado en: http://prestashop5estrellas.wordpress.com/2010/03/29/el-patron-mvc- modelo-vista-controlador/

• s/a. Tecnología iOS. Consultado

en: https://sites.google.com/site/tecnologiaiostm/desarrollo-de- aplicaciones/arquitectura-ios

• Seven Days. (2012). Introducción a Objective-C iOS. Consultado en: http://7-days.es/introduccion-a-objective-c-ios-5/

(18)

• Ulzurrum, L. (s.f.) Introducción a Objective-C: el paradigma de la POO.

Consultado en: http://sumolari.com/introduccion-a-objective-c-el- paradigma-de-la-poo/

Referencias

Documento similar

El contar con el financiamiento institucional a través de las cátedras ha significado para los grupos de profesores, el poder centrarse en estudios sobre áreas de interés

En cuarto lugar, se establecen unos medios para la actuación de re- fuerzo de la Cohesión (conducción y coordinación de las políticas eco- nómicas nacionales, políticas y acciones

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

You may wish to take a note of your Organisation ID, which, in addition to the organisation name, can be used to search for an organisation you will need to affiliate with when you

Where possible, the EU IG and more specifically the data fields and associated business rules present in Chapter 2 –Data elements for the electronic submission of information

The 'On-boarding of users to Substance, Product, Organisation and Referentials (SPOR) data services' document must be considered the reference guidance, as this document includes the

D) El equipamiento constitucional para la recepción de las Comisiones Reguladoras: a) La estructura de la administración nacional, b) La su- prema autoridad administrativa

Este trabajo de fin de grado trata sobre la integración de las gafas de realidad aumentada Epson Moverio Bt-200 en la plataforma multimodal de Vocalia N-Terac, que consta de una