• No se han encontrado resultados

DISEÑO DE HERRAMIENTAS MATEMÁTICAS PARA INGENIERÍA EN DISPOSITIVOS DE TELÉFONOS INTELIGENTES

N/A
N/A
Protected

Academic year: 2017

Share "DISEÑO DE HERRAMIENTAS MATEMÁTICAS PARA INGENIERÍA EN DISPOSITIVOS DE TELÉFONOS INTELIGENTES"

Copied!
127
0
0

Texto completo

(1)

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA

DISEÑO DE HERRAMIENTAS MATEMÁTICAS PARA INGENIERÍA EN

DISPOSITIVOS DE TELÉFONOS INTELIGENTES

TESIS

QUE PARA OBTENER EL TÍTULO DE INGENIERO:

EN COMUNICACIONES Y ELECTRÓNICA

PRESENTA

ROJAS ORDOÑEZ CARLOS ALBERTO

ASESORES:

ING. ARMANDO MANCILLA LEÓN

ING. ARELLANO GARCIA KARLA SANDRA

(2)
(3)
[image:3.612.87.530.103.745.2]

3

Índice

Tabla de Contenido

Índice de tablas ... 7

Índice de imágenes ... 7

Introducción ... 9

Objetivos Generales ... 11

Objetivos Particulares ... 11

Planteamiento del problema ... 12

Justificación ... 12

Estado del arte ... 13

Capítulo 1 Introducción a los teléfonos inteligentes ... 15

1.1 Definición: ... 16

1.2 Características Generales ... 16

1.3 Historia de los Smartphone ... 16

1.4 El Hardware de los Smartphone ... 17

1.4.1 Procesadores ARM ... 17

1.4.2 GPU y RAM... 18

1.5 Sistemas Operativos ... 18

1.5.1 Android ... 18

1.5.2 iOS ... 19

1.5.3 Symbian OS ... 19

1.5.4 BlackBerry OS ... 19

1.5.5 Firefox ... 19

1.6 Windows Phone 8 ... 20

1.6.1 Características del Windows Phone 8 ... 20

1.6.2 Windows 8 y el desarrollo de aplicaciones.... 20

1.6.3 Desarrollo de aplicaciones en Windows 8 ... 21

1.6.4 La plataforma Windows Phone 8 ... 21

1.6.5 APIs de desarrollo en Windows Phone 8 ... 21

.NET API ... 21

(4)

4

WIN32 & COM ... 22

1.6.6 Modelos de desarrollo de aplicaciones Windows Phone 8. ... 22

C# y XAML ... 22

XNA ... 23

Direct3D... 23

XAML/código administrado/código nativo ... 23

HTML5 ... 23

Capítulo 2 Tecnología .NET ... 25

2.1 Introducción a Tecnología .NET... 26

2.2 .NET Framework ... 27

2.2.1 Los componentes del .NET Framework ... 28

2.3 Common Language Runtime (CLR) ... 29

2.4 Conjunto de lenguaje de programación ... 29

2.5 Bibliotecas de clases de .NET Framework... 30

2.5.1 La Biblioteca de Clases Base se clasifica, en tres grupos clave: ... 30

Windows Form ... 31

ASP .NET ... 31

Visual Studio 2012 ... 31

Capítulo 3 Entorno de desarrollo ... 32

3.1 Entorno de desarrollo de software en Windows Phone 8 ... 33

3.2 Lenguaje de programación ... 33

3.3 Entorno de desarrollo ... 34

3.4 Herramientas para el desarrollador ... 35

3.4.2 Windows Phone Emulator ... 35

3.4.2.1 Requisitos para emulación ... 36

3.4.2.2 Redes en el emulador de Windows Phone 8 ... 37

3.4.2.8 Herramientas de emulación en tiempo real. ... 38

3.4.3 Correr aplicación en dispositivo ... 38

3.7 Aplicaciones para Windows Phone8 ... 39

3.7.1 Concepto de interfaz Metro. ... 39

3.7.2 Plantillas... 40

(5)

5

3.7.2.2 Aplicación de enlace de datos ... 41

3.7.2.3 Aplicación panorámica. ... 41

3.7.2.4 Aplicación dinámica ... 41

3.7.2.5 Aplicación XAML y Direct 3D. ... 41

Capítulo 4 Diseño y desarrollo de la aplicación ... 42

4.1 Análisis ... 43

4.2 Modelo en cascada ... 45

4.3 Ingeniería de requerimientos ... 45

4.4 Diseño y especificaciones generales ... 47

4.4.1 Evaluador de funciones ... 48

4.4.1.1 Diagrama de flujo del Evaluador de funciones... 48

4.4.1.2 Modelo matemático del Evaluador de funciones ... 48

4.4.2 Gráficas ... 49

4.4.2.1 Diagrama de Gráficas ... 50

4.4.2.2 Modelo matemático de Gráficas ... 50

4.4.3 Matrices ... 54

4.4.3.1 Diagrama de flujo de Matrices ... 54

4.4.3.1 Modelo matemático de Matrices ... 54

4.4.4 Calculo Booleano ... 56

4.4.4.1 Diagrama de flujo de Calculo Booleano ... 57

4.4.4.2 Modelo matemático de Calculo Booleano ... 57

4.4.5 Métodos numéricos ... 57

4.4.5.1 Diagrama de flujo de Métodos numéricos ... 58

4.4.5.2 Modelo numérico de Métodos numéricos. ... 59

4.5 Codificación... 59

4.5.1 Codificación XAML de Evaluador de funciones ... 60

4.5.2 Codificación del algoritmo de Evaluador de Funciones ... 61

4.5.3 Codificación XAML de Gráfica. ... 64

4.5.4 Codificación del algoritmo de Gráfica ... 67

4.5.5 Codificación del XAML de Matrices ... 71

4.5.6 Codificación del algoritmo de Matrices ... 72

(6)

6

4.5.8 Codificación de algoritmo de Calculo Booleano ... 75

4.5.9 Codificación del XAML de Métodos numéricos ... 77

4.5.10 Codificación de algoritmo de Métodos numéricos ... 77

Capítulo 5 Verificación, Entrega y Mantenimiento del software ... 81

5.1 Verificación ... 82

5.2 Entrega y mantenimiento... 87

5.3 Resultados... 88

Limitaciones y mejoras del proyecto ... 91

Conclusiones ... 93

Anexos ... 95

Anexo 1: Pasos para publicación de aplicación para Windows Phone 8 ... 96

Anexo 2: Código y bibliotecas ... 100

Anexo 3: Herramientas ... 112

Emulador Windows Phone 8 ... 112

3.4.2.4 Funciones en la emulación ... 112

Capacidades adicionales.... 114

Limitaciones del emulador. ... 114

Remote Device Acces. ... 116

Otras alternativas ... 117

Windows Azure ... 117

Uso de ayuda MSDN ... 118

Anexo 4: Gastos de proyecto ... 119

Glosario ... 121

Bibliografía ... 124

(7)

7

Índice de tablas

Tabla 1. Proporcionada por TIOBE index – Julio 2013... 33

Tabla 2. Tabla de requerimientos ... 45

Tabla 3. Tabla de cualidades ... 46

Tabla 4. Características del emulador de Windows Phone, proporcionada por Microsoft en MSN ... 112

Tabla 5. Funciones en emulación, proporcionada por Microsoft y Visual Studio. ... 112

Tabla 6. Capacidades de la emulación, proporcionada por Microsoft y Visual Studio ... 114

Tabla 7. Costos de herramientas de desarrollo físico. ... 119

Tabla 8. Costo total. ... 120

Índice de imágenes

Ilustración 1.Teléfono inteligente Windows Phone 8 de Microsoft y Nokia ... 15

Ilustración 2. Primer Smartphone Simon desarrollado por la marca IBM ... 17

Ilustración 3. Marca procesadores ARM ... 17

Ilustración 4. Smartphone Firefox, imagen obtenida de mozilla.org ... 20

Ilustración 5. Diagrama de APIs de Windows8 proporcionado por msdn.com ... 21

Ilustración 6. Diagrama capas Windows pone 8 por msdn.com ... 22

Ilustración 7. Diagrama decapas de Direc3Dproporcionado por msdn.com ... 23

Ilustración 8. Diagrama de capa de XAML/código administrador proporcionado por msdn.com .. 23

Ilustración 9. Logotipo de la tecnología .NET de Microsoft ... 25

Ilustración 10. Estructura de la plataforma .NET ofrecida por msdn.com ... 26

Ilustración 11. Estructura de la plataforma .NET ... 29

Ilustración 12. Interfaz metro de los productos de Microsoft. ... 32

Ilustración 13. TIOBE index, Gráfica de evolución de C# ... 34

Ilustración 14.Visual Studio 2012, espacio de trabajo con aplicación para Windows Phone 8. ... 36

Ilustración 15. Error encontrado a la hora de arrancar el emulador de Windows Phone ... 37

Ilustración 16. Opciones del panel de simulación. ... 38

Ilustración 17.Herramienta para desbloquear dispositivos, Developer Registration ... 39

Ilustración 18. Interfaz de Windows Mobile 6.5 ... 40

Ilustración 19. Comparación entre los diseños topográficos y la interfaz Metro. ... 40

Ilustración 20. Anuncio de Microsoft para asociar cuentas de desarrollador para Windows 8 y Windows Phone ... 42

Ilustración 21. Matwhay, aplicación matemática para Android e iOS, proporcionada por GooglePlay... 43

Ilustración 22. Marketplace de Windows Phone, en la búsqueda de alguna aplicación de tipo i ge ie ía , o esultados po os fa o a les, ost a do u a al ulado a ge e al o u p e io elevado, imagen proporcionada por Microsoft ... 44

Ilustración 23.Diagrama en cascada del ciclo de vida del software. ... 44

(8)

8

Ilustración 25. Diagrama de Flujo del Evaluador. ... 48

Ilustración 26. Diagrama de flujo del Gráficador. ... 50

Ilustración 27. Gráfica de manera física. ... 51

Ilustración 28. Gráfica de manera física ... 51

Ilustración 29. Diagrama de flujo de Matrices ... 54

Ilustración 30. Diagrama de flujo de Booleana ... 57

Ilustración 31.Diagrama de flujo de Métodos ... 58

Ilustración 32. Diseño del evaluador. ... 61

Ilustración 33. Diagrama de clases del bloque Evaluador. ... 62

Ilustración 34. Solución de una expresión evaluada. ... 64

Ilustración 35. Acción del gesto PinchStarted, imagen proporcionada por Microsoft. ... 65

Ilustración 36.Acción del gesto Flick, imagen proporcionada por Microsoft. ... 66

Ilustración 37. Acción del gesto Tap, imagen proporcionada por Microsoft. ... 66

Ilustración 38. Acción del gesto DoubleTap, imagen proporcionada por Microsoft. ... 67

Ilustración 39. Diagrama de clase del bloque GraficaFX. ... 68

Ilustración 40. Aplicación de Gráficas. ... 70

Ilustración 41. Diagrama de clases del bloque Matrices. ... 72

Ilustración 42. Aplicación de Matrices ... 74

Ilustración 43. Diagrama de clases del bloque Booleana. ... 75

Ilustración 44. Aplicación Booleana. ... 77

Ilustración 45. Diagrama de clases del bloque Métodos Numéricos ... 78

Ilustración 46. Aplicación de métodos numéricos. ... 80

Ilustración 47. Marketplace de Windows Phone. ... 81

Ilustración 48. Página generada para la presentación de la aplicación en el Marketplace. ... 83

Ilustración 49. Muestra la gráfica de descargas de la aplicación en el Marketplace. ... 85

Ilustración 50. Muestra la respuesta de falla en el proceso de certificación. ... 86

Ilustración 51. Muestra la respuesta de falla en el proceso de certificación. ... 86

Ilustración 52. Muestra la selección de categorías a la que pertenece la aplicación. ... 87

Ilustración 53. Muestra el impacto de las aplicaciones en el Marketplace. ... 88

Ilustración 54. Aplicaciones certificadas y publicadas en el Marketplace. ... 89

Ilustración 55. Página de la aplicación final ESIME App. ... 90

Ilustración 56. Devcenter herramienta de administración de Windows Phone. ... 95

Ilustración 57. Muestra las opciones para crear una cuenta en Dreamspark de Microsoft. ... 97

Ilustración 58. Correo de aceptación y verificación. ... 97

Ilustración 59. Muestra la información para publicar la aplicación. ... 98

Ilustración 60. Muestra la manera de trabajar de Remote Device Acces, proporcionada por Nokia. ... 116

Ilustración 61. Dispositivo controlado remotamente con Device Remote Acces, proporcionada por Nokia. ... 117

(9)

9

Introducción

Los dispositivos móviles han causado un impacto importante en la vida de las personas, ahora poco a poco se han convertido en dispositivos de primer uso encontrando en ellos cualidades muy importantes y de mucha utilidad, el uso de los móviles no sólo se limita a utilizarlos cómo dispositivo de comunicación, encontramos que gracias a la evolución de sus componentes cada año van haciendo que sus capacidades sean cada vez más amplias, presentando un sistema operativo versátil. El desarrollador de aplicaciones puede hacer uso de estas facilidades para proporcionar software tanto para fines específicos como generales, entregando no sólo a un mercado especializado si no a uno general, aplicaciones en las que el desarrollo visual y funcional tendrá que trabajar juntos para ofrecer un buen producto.

Dentro de los dispositivos móviles, están los teléfonos inteligentes que, conociendo sus ventajas, se planea el utilizarlo com un centro de herramientas matemáticas de ingeniería, en donde los alumnos podrán hacer uso de él aprovechando todas las características de un dispositivo móvil inteligente, obteniendo resultados a los problemas matemáticos que ocasionan en muchos casos demasiado tiempo dedicado a resolverlos.

Observando también un ecosistema de desarrollo en los mercados de software para móviles, se tomarán en cuenta las características y requisitos de certificación en el mercado oficial de Windows Phone para el poder publicar la aplicación dentro de este espacio, y que la herramienta llegue con un mayor impacto a un público general.

Dentro del capítulo número 1 daremos un repaso a las características generales que conforman a los teléfonos inteligentes, conociendo sus ventajas y limitaciones, la tecnología que utilizan y la evolución que han presentado en las últimas décadas.

En el capítulo 2, se estudiará la ventaja de la tecnología .NET creada por Microsoft para el desarrollo de aplicaciones, las ventajas que se tiene con el uso de su Framework1, así como en manera general las herramientas de desarrollo que se utilizan.

Para el capítulo 3, se evalúan las características de la programación orientada a dispositivos Windows Phone, encontrando características en el entorno de desarrollo, el uso del Kit de desarrollo del dispositivo, así como los requisitos necesarios para poder empezar a desarrollar aplicaciones en el dispositivo.

Dentro del capítulo 4, se trabajará con el desarrollo del software, tomando en cuenta los requisitos necesarios para la certificación de aplicaciones en el Marketplace, se desglosará cada módulo del

(10)

10 programa, revisando con la ayuda de diagramas de flujo y mapa de clases, la implementación de cada uno.

(11)

11

Objetivos Generales

 Desarrollar software para solucionar operaciones matemáticas que brinden apoyo a profesionales y aquellos alumnos que estudian Ingeniería, diseñada para plataformas móviles Windows Phone 8 y presentada en el mercado de aplicaciones Marketplace.

Objetivos Particulares

 Estudiar e implementar la tecnología .NET bajo el lenguaje C#

 Utilizar la tecnología .NET de Microsoft para desarrollar aplicaciones para SmartPhone Windows Phone 8.

 Bridar aplicaciones útiles fáciles de manejar en el dispositivo móvil Windows Phone haciendo uso de sus características específicas.

 Hacer uso de las herramientas que brinda Microsoft para el desarrollo de aplicaciones en Windows Phone.

 Estudio del mercado de aplicaciones de Windows Phone 8, diseñando una aplicación que cumpla con los requisitos para ser publicada.

(12)

12

Planteamiento del problema

A través de las carreras de ingeniería, uno de los trabajos que se tiene en su estudio, es el desarrollo y solución de operaciones matemáticas, necesario para resolver problemas. Este desarrollo numérico dominado por los alumnos genera mucho tiempo invertido en él, acortando el tiempo dedicado para los siguientes temas, y creando en el alumno una carga de trabajo adicional. Actualmente existen herramientas electrónicas, como calculadoras que han quedado limitadas por su capacidad de cálculo y en su presentación interactiva e intuitiva para el usuario. De la misma forma, la computadora es utilizada como herramienta gracias a paquetería de software que se puede instalar, pero no todos los alumnos cuentan con alguna que cumpla con los requisitos en hardware para ejecutar la paquetería. Para ello es necesario el desarrollar una herramienta que desarrolle tales operaciones y que sea accesible para ellos. Tomando en consideración que el mercado de aplicaciones a dispositivos móviles ha tenido mucho impulso en los últimos años y decidiendo mostrar este nuevo entorno de trabajo a los alumnos de ingeniería.

Justificación

(13)

13

Estado del arte

La tecnología móvil ha tenido un gran impacto en la actualidad, hace no más de 10 años, resultaba difícil y un poco fantasioso el pensar en celulares que contaran con características muy similares a las que nos ofrecen las computadoras personales. Esta evolución en gran parte se debe al desarrollo de la arquitectura ARM, la cual está basada en RISC, los cuales han apostado por la filosofía de microprocesadores de baja potencia, con instrucciones sencillas, lo cual garantizó un costo menor en su fabricación. La evolución de estos procesadores ha podido implementar programas complejos, capaces de manejar diferentes tipos de datos, multimedia, servicios de redes y edición de imagen, sonido y video, entre otras cualidades.

Por estas condiciones, el desarrollo de software en plataformas móviles como Smartphone y tabletas ha crecido en los últimos 5 años. Con un público más abierto, las aplicaciones de diferentes categorías y con diferentes finalidades se han incrementado. Las empresas distribuidoras de los sistemas operativos de los diferentes teléfonos inteligentes han apoyado la constante evolución de este mercando brindando herramientas, paquetes de software para programar de manera más sencillas, soporte para emuladores, interfaces gráficas entre otros, esperando que el desarrollo de más aplicaciones, se vuelva en una característica importante para el teléfono inteligente y el sistema operativo que contiene. En este punto, hay que tener en mente que el desarrollo del software de las aplicaciones de los dispositivos móviles, se realiza en computadoras personales por su mayor capacidad.

Otras de las características que ha mejorado este desarrollo es la inclusión de sensores que vuelven más útil al dispositivos, los cuales son, sensores de movimiento, de presencia, giroscopios, acelerómetros, los cuales se convierten en dispositivos que el desarrollador puede usar para alguna aplicación en particular.

Por parte de empresas dedicadas a software para computadoras personales, ha sido muy lenta su intervención en este mercado, enfocándose en los servicios más comunes, como el desarrollo de gestor de archivos, gestor de correo electrónico, etc. Esto se ha convertido en una oportunidad para pequeñas empresas que, por lo general comienzan con un capital muy ajustado y con ideas muy concretas para desarrollar cierta aplicación, pero qué con constante mejoría y gracias a la utilidad y singularidad de su aplicación, logran ofrecer un producto de calidad y que los usuarios compran, convirtiéndose en una fuente de capital muy bien remunerado. Por otra parte, empresas de diferente función como por ejemplo de servicio público o de ventas de algún producto, así como las mismas empresas de desarrollo de software para computadoras personales, se han dado cuenta de las posibilidades de desarrollo y venta de software así como la publicidad que se puede ofrecer en este mercado, por ello es más común en este tiempo el encontrar solicitudes con necesidad de personal con experiencia en desarrollo de aplicaciones móviles.

(14)

14 estos, se da a conocer el alcance de la tecnología móvil, las capacidades y limitaciones que se tienen, la filosofía que se debe usar en este tipo de dispositivos, las herramientas de diseño que brinda la empresa, así como el uso de diferentes tecnologías de utilidad, como es el caso de la actualmente llamada nube.

Para el caso de diseño y desarrollo de software enfocado resolver cálculos matemáticos, ha sido una de las áreas solicitadas por los usuarios y trabajadas por los desarrolladores. Pero éste también se ha convertido en un problema, puesto que las matemáticas abordan muchos temas y enfocados en la ingeniería se expanden más, la mayoría de las aplicaciones que se encuentran en las tiendas, solamente resuelven temas en particulares y muchos de ellos limitados a cálculos básicos. Por otra parte, las aplicaciones mejor desarrolladas, resultan ser muy caras y poco asequible para los alumnos en cuestión. Esto hace que en el caso de necesitar alguna aplicación para resolver un problema de ingeniería, sea necesario buscar y probar muchas herramientas gratuitas y en ocasiones no logra resolver satisfactoriamente los problemas. Como las empresas de software en cuestión no buscan resolver problemas en particulares, se limitan a crear como mejor aplicación calculadoras generales que ofrecen solución a operaciones básicas, conversión de unidades y gráficos de una variable entre lo más común, esto se convierte en una limitante cuando algún estudiante busca graficar con más parámetros, graficar las derivadas, resolver matrices y operaciones más elaboradas que son usadas en ingeniería.

(15)

15

Capítulo 1 Introducción a los teléfonos inteligentes

(16)

16

1.1 Definición:

Smartphone (Teléfono Inteligente), es el nombre que recibe aquel teléfono móvil que cuenta con un sistema operativo propio, que ofrece capacidades computacionales avanzadas. Los primeros Smartphone nacieron al combinar las funciones de los PDA2 (asistentes personales digitales), teniendo así características como organizadores o gestor de cuenta de correo, entre otros.

1.2 Características Generales

Los Smartphone se encuentran en constante renovación incorporando nuevas tecnologías, que permiten mejorar sus capacidades. Actualmente el mercado se encuentra dividido en dos gamas, la gama media y la gama alta, las cuales se diferencian por el nivel de capacidad o tecnología que se implementa en él. Esto hace que los Smartphone cuenten con diferentes características, de las cuales en la mayoría de estos se pueden hallar:

 Gestor de archivos

 Administrador de cuenta de correo electrónico

 Acceso a internet por diferentes tipos de tecnología (WiFi,3G,4G3)  Agenda, reproducción multimedia

 Visor de contenido Web, de PDF

 Visor y editor de documentos de texto, hojas de cálculo y presentaciones.  Cámara con posibilidad de uso de video llamadas

 Sensores como acelerómetros, Giroscopio y GPS integrado etc.

1.3 Historia de los Smartphone

El Smartphone tiene marcada su historia en la telefonía, que vio la luz gracias al Alexander Bell quien realizó su primera llamada telefónica en el año 1878. Posterior a esto, en 1946 la empresa AT&T 4crearía la primera red inalámbrica, después de esto fue hasta 1980 cuando Motorola introdujo los primeros celulares al mercado. En el año de 1992 es presentado Simon el primer celular inteligente por parte de IBM5, comercializado por BellSouth, es considerado el primer Smartphone de la historia. El Simon presentaba como característica principal el uso de una interfaz basada en una pantalla táctil, la cual permitía acceder a todas sus funciones sin necesidad de presionar botones físicos. Comparándose con el Apple Newton, otro dispositivo que utilizaba las opciones táctiles, el teléfono de IBM y BellSouth no necesitaba ser operado por un lápiz, esté utilizaba los pulsos por dedos, para que el dispositivo reconociese los comandos seleccionados.

2 PDA: Asistente Personal Digital.

3 WiFi: Mecanismo con el que los dispositivos electrónicos se conectan a red inalámbricamente.

G: A e ia ió de te e a ge e a ió , se efie e a la t a s isió de oz datos po edio de la telefo ía móvil, mediante el servicio internacional de telecomunicaciones móviles.

G: A e ia ió de ua ta ge e a ió de te ología ó il, es a tual e te o ada LTE, po esta asada e su te ología Lo g Te E olutio o E olu ió a La go Plazo.

4

AT&T:

American Telephone and Telegraph.

(17)

17 Ilustración 2. Primer Smartphone Simon desarrollado por la marca IBM

1.4 El Hardware de los Smartphone

La evolución de los Smartphone ha avanzado paralelamente al desarrollo y mejora de los componentes electrónicos, donde la principal meta es construir componentes cada vez más pequeños y delgados, con una velocidad cada vez más rápida y con ahorro de consumo de energía. Un teléfono inteligente tiene ahora los mismos componentes internos de una computadora, con la única diferencia de que son especialmente diseñados para ahorrar energía y con capacidades un poco limitadas, a continuación se explicará los más importantes de ellos.

1.4.1 Procesadores ARM

La marca ARM nació en el año 1983, donde comenzó a plasmar la idea de desarrollar una arquitectura que tuviera su mismo nombre, y que vería sus frutos con el desarrollo de los procesadores ARM6 los cuales estaban basados en la arquitectura RISC7 de 32 bits.

Ilustración 3. Marca procesadores ARM

La principal característica que han mostrado los procesadores de la familia ARM son la de ofrecer un control en el consumo energético, teniendo la filosofía de ahorro de la misma. Esto vendría a dar un gran impulso a los dispositivos móviles, puesto que como su nombre lo menciona, son dispositivos que se caracterizan en poder transportarlos y tener una autonomía con ellos en un periodo de tiempo considerable. Gracias a estos procesadores, se ha podido dotar a los teléfonos inteligentes de capacidades computacionales muy significativas, ofreciendo un ahorro de energía importante.

6 ARM: Advanced RISC Machine.

(18)

18

1.4.2 GPU y RAM

La GPU8 en los dispositivos móviles funciona de la misma manera que en su similar para computadoras, se encarga principalmente de tratar imágenes en 3D y 2D, para lo cual, es usado para la reproducción de videos, para ejecutar programas de edición de imagen y fotos o para aplicaciones de entretenimiento en videojuegos. Todas estas características han sido añadidas en la actualidad a los dispositivos móviles, por ello es más común encontrar software para ellos, con todas estas características, en ciertos procesos algo limitados, pero con un gran avance, gracias a los componentes internos y su evolución.

La RAM9 (memoria de acceso aleatorio), al igual que en las computadoras, cumple el trabajo de ser utilizada para albergar los programas o procesos tanto del sistema operativo, como del software que se esté ejecutando en ese momento. Este dato es muy importante para los desarrolladores, en ocasiones los programas llegan a exigir una cantidad muy alta de memoria para poder trabajar establemente, pero muchos dispositivos de gama media no cumplen con esta condición. A la hora de diseñar la aplicación móvil, se tiene que tener en cuenta el espacio de memoria disponible y que la utilizada, no genere conflictos con aplicaciones en segundo plano.

1.5 Sistemas Operativos

El sistema operativo será el encargado de fungir como gestor, trabajando tanto con una interfaz para el usuario, como traductor de las órdenes que reciba del dispositivo e interpretándolas con el software al que se dirija. Hasta hace tiempo, los fabricantes de los teléfonos inteligentes diseñaban su propio sistema operativo, incorporando en ellos lo que se consideraba como elemental y necesario para estos dispositivos y al mismo tiempo elementos que lo hacían especial frente a la competencia, muestra de ello es el popular Symbian10. Fue en el año 2002 cuando Microsoft lanzaría al mercado PocketPc11 2002 que es el precursor de Windows Phone, basado en Windows CE12 .

1.5.1 Android

Hasta hace poco tiempo, el sistema operativo dominante en los Smartphone había sido Symbian, que era utilizado no sólo por aparatos de la marca Nokia, pero esto cambiaria con el surgimiento del sistema operativo Android. Android surgió como un proyecto de sistema operativo de móvil basado en sistemas Linux, por la empresa homónima, que posteriormente seria comprada en el 2005 por Google. Android es un sistema operativo móvil basado en Linux, fue desarrollado inicialmente por Android Inc., la cual sería comprada por Google en año 2005. Android ha tenido una sorprendente evolución y aceptación por parte de los usuarios, se tiene dato de que informa

8 GPU: Unidad de Procesamiento Grafico. 9 RAM: Memoria de Acceso Aleatorio

10 Symbian: Sistema operativo para dispositivos móviles.

11 PocketPC: Ordenador de bolsillo, también llamado PDA (Asistente Personal Digital).

(19)

19 que en el tercer trimestre del año 2012, Android logro ocupar las tres cuartas partes del mercado de los Smartphone. Android recibe actualizaciones de esta forma por parte de Google, pero existe un problema con las aplicaciones, puesto que los desarrolladores informaron de la dificultad de mantenerlas actualizadas por la fragmentación que conlleva la evolución de Android.

1.5.2 iOS

iOS es el sistema operativo de los Smartphone Iphone diseñados por la compañía Apple, actualmente están siendo utilizado por otros dispositivos de la misma familia, como el iPod Touch, iPad y el Apple TV. La principal novedad que ofrece en un primer momento iOS es el diseño de una interfaz basada en la interpretación de gestos táctiles. Los elementos que se presentan son de botones digitales con control al deslizarlos. Tiene un tiempo de respuesta muy rápida lo cual provee de una interfaz fluida que el usuario puede disfrutar. Una de las características más importantes que mantiene la empresa, es su estabilidad y variedad de ecosistema en cuanto a software para el dispositivo, en abril de 2010 se estimaba que se habían desarrollado 185,000 aplicaciones para iPhone OS13.

1.5.3 Symbian OS

Symbian seria reconocido antes de la llegada de Android como el sistema operativo de teléfonos con gran dominio en el mercado, nacería por la unión de varias empresas de telefonía móvil (entre ellas Nokia), con el propósito de dar evolución a el sistema utilizado en las PDA´s, el conocido EPOC32. Nacería con el objetivo de poder satisfacer la necesidad de un sistema operativo en común, que pudiera ser utilizado en diversos dispositivos, y poder competir en el mercado contra el Windows Mobile 6.X. Posteriormente seria comprado totalmente por la compañía Nokia.

1.5.4 BlackBerry OS

BlackBerry OS es un sistema operativo móvil desarrollado para los dispositivos homónimos, su característica de código cerrado lo hace sólo utilizable para estos dispositivos. Nació gracias a la empresa Research In Motion (RIM). Aunque fue muy novedoso en su tiempo, actualmente ha ido a la baja en el mercado, en especial por sus políticas de desarrollo de software muy estrictas, y por el cobro de licencias muy caras. Entre las novedades que presentaba este sistema era el uso de multitarea y contar con soporte para diferentes métodos de entrada, ente las que se encontraba el uso de la pantalla táctil, el panel táctil (touchpad), la trackwheel14, y el trackball15.

1.5.5 Firefox

Recientemente nuevas compañías se aventuran a la publicación de su propio sistema operativo para dispositivos Smartphone, uno de ellos es el Firefox OS.

13 Abril 8 2010 Apple Inc. http://www.apple.com/pr/library/2010/04/08Apple-Previews-iPhone-OS-4.html 14 Tracwheel: Pequeño deslizador que se colocó en los laterales de los dispositivos Blackberry

(20)

20 Firefox OS es un nuevo sistema operativo móvil desarrollado por el proyecto de Mozilla Boot to Gecko (B2G).16

Entre las características que remarca el proyecto es el uso de núcleo Linux y corre bajo un motor de tiempo de ejecución basado en Gecko, permitiendo a los usuarios el ejecutar aplicaciones desarrolladas enteramente usando HTML, JavaScript, y otras APIs de aplicaciones de web abierta. El proyecto actualmente se encuentra en desarrollo.

1.6 Windows Phone 8

Windows Phone es el sistema operativo móvil desarrollado por la compañía Microsoft, surge como el sucesor directo de la plataforma Windows Mobile. La idea principal de Windows Phone y a la vez, su objetivo, es el de cambiar su propia filosofía empresarial. Pues hasta el momento, Microsoft se había dedicado a fabricar un sistema operativo para un sólo sector de la población, para todo aquel que estuviera familiarizado con herramientas administrativas, ofreciendo de esta forma, herramientas para hoja de cálculo por ejemplo. Su único sector era el empresarial. Con la llegada de la competencia, con productos como Android e iOS, se dieron cuenta que el mercado generalista mostraba una buena respuesta a estos dispositivos. Con esto en mente, se diseñó Windows Phone con características más fluidas.

1.6.1 Características del Windows Phone 8

El teléfono con sistema operativo Windows Phone 8 cuenta con características únicas que integran al usuario de manera sencilla, intuitiva y rápida. La integración con todas las plataformas de Microsoft permite tener todo bien organizado, el Smartphone integra la cuenta de Microsoft, una vez iniciada la sesión en el teléfono, se podrá obtener aplicaciones, juegos, música en la tienda, probar videojuegos de Microsoft Xbox con amigos. Estas opciones, pretenden ser el principal atractivo que Microsoft.

1.6.2 Windows 8 y el desarrollo de aplicaciones.

Windows Phone es la apuesta de Microsoft por lograr entrar al mercado de teléfonos inteligentes y poder ser competencia frente a sus semejantes, a pesar de haber tardado tanto tiempo en llegar a él. Como sistema, esté brinda innovación y facilidad de uso, con una interfaz sencilla y minimalista, con lo cual se ha logrado situar actualmente como el tercer candidato en la guerra de los sistemas

16 Descripción de Firefox OS http://www.mozilla.org/es-MX/firefox/os/

(21)

21 operativos móviles. A inicios del 2013, se han tomado cifra de 130,000 aplicaciones publicadas en la tienda virtual del dispositivo, y en la cual, para el desarrollador representa una gran oportunidad, quienes ven cada vez más difícil innovar e impactar con sus aplicaciones en mercados tan saturados como los de la competencia.

1.6.3 Desarrollo de aplicaciones en Windows 8

Windows Phone 8 es la plataforma más reciente de Microsoft, y dado el cambio, el mercado de aplicaciones aún se encuentra muy joven, para competir contra Android e iOS, Microsoft pretende dar herramientas a los desarrolladores para que puedan crear aplicaciones útiles y novedosas, que se aprovecharan en este dispositivo, creando de esta forma un atractivo adicional al dispositivo. En el nuevo sistema operativo el Windows 8, en la cual se ve reflejada la idea de unificar toda la filosofía en un sólo concepto. Este concepto también es compartido por la plataforma de videojuego que presento Microsoft, XBOX ONE. Microsoft busca logra familiariza a todos los usuarios con este ambiente, quien pueda utilizar una computadora con Windows 8, se sienta identificado con un dispositivo Windows Phone 8.

1.6.4 La plataforma Windows Phone 8

Representa una gran ventaja el hecho de que las plataformas compartan un mimo nucleó, para el desarrollador, ahora es relativamente sencillo el compartir conceptos de diseño y código de programación entre aplicaciones para sus diferentes plataformas.

1.6.5 APIs de desarrollo en Windows Phone 8

En desarrollo de software se conoce como API al conjunto de funciones y procedimientos que se encapsulan en bibliotecas para el uso del desarrollador. En estas interfaces de programación se pueden encontrar por ejemplo, métodos en la programación orientada a objetos. Para el caso de Windows Phone 8, Microsoft nos proporciona las siguientes APIs:

Ilustración 5. Diagrama de APIs de Windows8 proporcionado por msdn.com

.NET API

(22)

22 necesarias para realizar aplicaciones con tecnología .NET, compatible con Visual Studio, y la cual contiene los lenguajes en C#17, C++ 18y Visual Basic19.

Ilustración 6. Diagrama capas Windows pone 8 por msdn.com

Windows Phone Runtime

Dentro de los dispositivos móviles con sistema operativo de Microsoft, se utiliza esta API como una versión reducida del WinRT20, el cual es dirigida a dispositivos de sobremesa y que fue presentado en el 2011, con la finalidad de facilitaría la creación de aplicaciones con estilo UI, basándose en la filosofía actual de Microsoft utilizado para el sistema operativo Windows 8 y Windows Phone (como Windows Phone Runtime, en una versión reducida). La ventaja de WinRT es que soporta los lenguajes de programación ya mencionados, además de poder ser usado para diseñar aplicaciones para procesadores de Intel o para la arquitectura ARM, los cuales como se mencionó, son usados para los teléfonos inteligentes. Para el caso del Windows Phone Runtime, añade además características útiles para estos dispositivos, como la síntesis de voz.

WIN32 & COM

Esta API se encarga de concentrar principalmente el código nativo, capas de poder utilizar las interfaces externas o dispositivos añadidos al procesador, en el caso de los teléfonos inteligentes, encontramos que con esta API se puede hacer uso de la cámara, comunicación por interfaces.

1.6.6 Modelos de desarrollo de aplicaciones Windows Phone 8.

C# y XAML

Para desarrollar una aplicación en Windows Phone, se necesita desarrollar la interfaz gráfica y el algoritmo del programa en conjunto, Microsoft brinda soporte en este caso al desarrollo de la

17 C#: Lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET

18 C++: Lenguaje de programación diseñado a mediados de los años 1980, evolución del lenguaje C, que permitía la manipulación de objetos

(23)

23 interfaz en lenguaje XAML y para el lenguaje del programa en C# o Visual Basic, puesto que son lenguajes de programación orientados a objetos, y en el caso de C#, gracias a su evolución y facilidad que le da al usuario. En conjunto, tendremos acceso a las APIs .NET de Windows Phone y Windows Phone Runtime con código administrado.

XNA

XNA es el lenguaje introducido por Microsoft específicamente para el desarrollo de aplicaciones con uso de gráficos, contiene un gran número de bibliotecas dedicadas a este tema, conteniendo principalmente el Kit de desarrollo para el sistema de videojuego XBOX.

Direct3D

Direct3D también es utilizada para desarrollo de aplicaciones gráficas, como en el caso de videojuegos, utiliza código nativo para el ambiente gráfico, y con ayuda del Runtime e Windows Phone, da la facilidad de exportar un juego para computadora con Windows 8 a un dispositivo Windows Phone.

Ilustración 7. Diagrama decapas de Direc3Dproporcionado por msdn.com

XAML/código administrado/código nativo

Este modelo da la ventaja de poder trabajar con librerías nativas. Para ello, se puede añadir tanto componentes Windows Phone Runtime como librerías C++ de tipo Dynamic Link Library. El modelo es utilizado cuando la aplicación que se desarrolla hace uso de una gran cantidad de procesamiento computacional por parte del dispositivo, para ello se ofrece el uso de estas librerías, lo cual al momento de programar, se tornara un poco más difícil, pero el diseñador obtendrá una mejora de rendimiento.

Ilustración 8. Diagrama de capa de XAML/código administrador proporcionado por msdn.com

(24)
(25)

25

Capítulo 2 Tecnología .NET

(26)

26

2.1 Introducción a Tecnología .NET

Desde hace unos años .NET se ha convertido en la estrategia de desarrollo de software básica de Microsoft. Contiene principalmente el .NET Framework21, el cual se convertiría en el principal fundamento para el correcto desarrollo y la ejecución de potentes programas. La base de la tecnología .NET se orienta en la comunicación de software y al uso de estándares abiertos como el XML y los servicios Web.

.NET nació como la respuesta de Microsoft y frente la necesidad de crear una nueva plataforma de desarrollo de software que se basara en la transparencia entre sistemas, y la cual presenta la ventaja de tener independencia respecto a la plataforma y que permitirá un rápido desarrollo de aplicaciones. Con .NET, lo que Microsoft pretende es el desarrollar una estrategia que englobe todos los productos, objetivo que poco a poco parece tener impacto, reflejado principalmente entre los actuales dispositivos y servicios que ofrece.

Ilustración 10. Estructura de la plataforma .NET ofrecida por msdn.com

La idea de Microsoft es proporcionar ventajas de desarrollo, con lo que empresas e instituciones se han unido a Microsoft para el desarrollo y fortalecimiento de la plataforma .NET. Como ejemplo, se encuentra el proyecto Mono, que pretende hacer al C#, el principal lenguaje de programación de .NET, el C# utilizable para otras plataformas.

Así, la tecnología .NET ofrece a los desarrolladores una forma muy cómoda, eficaz y económica pero a la vez segura y robusta, una forma unificada de desarrollar aplicaciones para cualquier tipo de dispositivo. En .Net Framework (marco de trabajo .NET) se reúnen una serie de normas diseñadas por Microsoft y las compañías o instituciones anexas como IBM, Fujitsu Software, por mencionar algunas. Algunas de estas normas son las siguientes:

La norma que define las reglas que debe seguir un lenguaje de programación para ser considerado compatible con el marco de trabajo .NET (ECMA-335, ISO/IEC 23271)22

21 Framework: conjunto estandarizado de conceptos, prácticas y criterios para enfocar un tipo de problemática particular que sirve como referencia, para enfrentar y resolver nuevos problemas de índole similar.

(27)

27 Por medio de esta norma se garantiza que todos los lenguajes desarrollados para la plataforma ofrezcan al programador un conjunto mínimo de funcionalidad, y compatibilidad con todos los demás lenguajes de la plataforma.

La norma que define el lenguaje C# (ECMA-334, ISO/IEC 23270) 23

Este es el lenguaje insignia del marco de trabajo .NET, y pretende reunir las ventajas de lenguajes como C/C++ y Visual Basic en un sólo lenguaje.

La norma que define el conjunto de funciones que debe implementar la librería de clases base (BCL por sus siglas en inglés) (incluido en ECMA-335, ISO/IEC 23271) 24

2.2 .NET Framework

.NET Framework es el Framework de Microsoft que contiene una gran cantidad de librerías que permite la interoperabilidad entre lenguajes. Esté trabaja como un entorno de ejecución administrado con lo que da la posibilidad de brindar diversos servicios a las aplicaciones que se ejecutan. El .NET Framework se forma por dos componentes principales.

El primer de ellos conocido como el Common Language Runtime (CLR), trabaja como motor de ejecución, ya que se encarga de controlar las aplicaciones en ejecución y en segunda parte las bibliotecas de clases .NET Framework, estás brindan código probado y reutilizable en forma de bibliotecas, el cual puede ser utilizado por los programadores para las aplicaciones que se desarrollen. La idea de encapsular métodos y programas de uso general, hace que el trabajo del desarrollador se torne más sencillo, al recurrir a alguna biblioteca nativa del .NET Framework.

.NET Framework, ofrece los siguientes servicios:

 Administración de la memoria. En algunos lenguajes de programación, al diseñar alguna aplicación, se tenía que tener en cuenta la cantidad de memoria que se utilizaba, se asignaba memoria libre y se liberaba al terminar el ciclo de vida de la aplicación, este trabajo terminó, gracias a que el .NET Framework y el CLR proporcionan este servicio de manera automática.  Sistema de tipos comunes. Originalmente en la programación tradicional, el compilador tenía el trabajo de definir los tipos básicos, esto provocaba que existiera problemas en la interoperabilidad entre lenguajes. En este caso con .NET Framework, los tipos básicos se definen según el sistema de tipos de .NET Framework y son comunes para todos los lenguajes cuyo destino es .NET Framework.

 Biblioteca de clases extensa. Esto presenta una facilidad al poder incluir bibliotecas para el control de algún proceso en concreto, y evita el crear un programa con un código extenso, con la encapsulación de este código, se puede hacer uso de los miembros de las bibliotecas por las clases de .NET Framework.

(28)

28  Frameworks y tecnologías de desarrollo. Una importante ayuda que incluye .NET Framework es el uso de las bibliotecas, estas se encuentran separadas por categorías con fines específicos, un ejemplo de esto son las bibliotecas de ASP.NET 25 que sirve para aplicaciones web, ADO.NET para el acceso a los datos y Windows Communication Foundation para las aplicaciones orientadas a servicios.

 Interoperabilidad de lenguajes. Al tener la necesidad de generar una tecnología que lograra la interoperabilidad entre los lenguajes de programación, se desarrolló que los compiladores de .NET Framework tuvieran la capacidad de generar un código intermedio conocido como Lenguaje intermedio común (CIL), esté es compilado en el tiempo de ejecución del CLR. Brindando la capacidad de que otros lenguajes puedan acceder a las rutinas escritas en otros.

 Compatibilidad de versiones. Se desea evitar la fragmentación de programas, por ello se garantizó la compatibilidad entre versiones diferentes de .NET Framework, aunque no se ha logrado totalmente, si la gran mayoría de las librerías mantienen esta característica.  Ejecución en paralelo. Buscando garantizar la compatibilidad entre versiones, se permite

ahora que existan más de una versión de Common Language Runtime, lo que significa que se puede poseer diferentes versiones, con lo que las aplicaciones puedan ser ejecutadas con la versión .NET Framework con la que se compilo.

 Compatibilidad con múltiples versiones (multi-targeting). Al usar la Biblioteca de clases portable de .NET Framework, se puede hacer uso de todos los ensamblados para diferentes versiones de .NET Frameworks, en dispositivos como Windows 8, Windows Phone y XBOX.

La tecnología .NET fue diseñada de esta forma para cumplir principalmente con los siguientes objetivos:

 Ofrecer de manera coherente un entorno de programación totalmente orientado a objetos, garantizando de esta manera que el código de dichos objetos se podrían almacenar y posteriormente ejecutar de manera local y de esta forma, pudieran ser distribuidos a través de internet. Garantizando la compatibilidad de código entre versiones

 Garantiza la seguridad de código, incluso del creado por terceras personas.

Elimina el uso de scripts o interprete de comandos, lo cual generaba problemas de

rendimiento.

2.2.1 Los componentes del .NET Framework

Los principales componentes del .NET Framework son:

 El Entorno Común de Ejecución para Lenguajes o CLR por sus siglas en inglés.  El conjunto de lenguajes de programación

 La Biblioteca de Clases Base o BCL

(29)

29

2.3 Common Language Runtime (CLR)

Anteriormente se trataron las ventajas de utilizar código administrado, a continuación se explicará la manera en que se trabaja y su objetivo.

El .NET Framework contiene un motor en tiempo de ejecución el cual tomara el papel de agente administrador del código, con la ventaja de que ofrecerá servicios como la administración de memoria, de subprocesos y la comunicación remota, al mismo tiempo en que aplica seguridad dentro del código, lo cual promoverá la seguridad y solidez de la ejecución. Éste se convierte en el principal objetivo del motor en tiempo de ejecución. El código que es tratado por el motor de ejecución es conocido como código administrado, a diferencia del resto de código, que se conoce como código no administrado.

Se puede observar en la ilustración 11 la forma en que el Common Language Runtime se relaciona con la biblioteca de clases y a la vez con las aplicaciones, creando el sistema en general. Igualmente representa el funcionamiento del código.

Ilustración 11. Estructura de la plataforma .NET

2.4 Conjunto de lenguaje de programación

Actualmente la tecnología .NET soporta más de 20 lenguajes de programación. Este hecho facilita a los desarrolladores el diseñar aplicaciones con soporte a multi plataformas, además de eliminar las diferencias que existían entre los lenguajes.

(30)

30

2.5 Bibliotecas de clases de .NET Framework

La biblioteca de clases está conformada por una colección de paquetes orientados a objetos, los cuales se caracterizan por ser de tipo reutilizable, lo que significa que los desarrolladores pueden hacer uso de estos para aplicaciones propias, estas bibliotecas pueden están conformadas por ejemplo de herramientas de interfaz gráfica o de líneas de comandos para manejo de otros tipos de formularios, como lo son para ASP.NET, Web Forms o los servicios Web XML.

Los paquetes de elementos reutilizables se integran estrechamente con el CLR, y el que estén orientados a objetos, hace más sencillos el utilizarlos y reducir el tiempo asociado con el aprendizaje de las nuevas características de .NET Framework. Las bibliotecas, permiten entre diversas cosas lo siguiente:

 Interactuar con dispositivos periféricos.  Manejo de datos conocida como ADO.NET  Administración de memoria

 Cifrado de datos

 Manejo y administración de excepciones  Manejo del sistema de ventanas

 Herramientas de despliegue de gráficos (GDI+)

 Herramientas de seguridad e integración con la seguridad del sistema operativo  Manejo de tipos de datos unificado

 Interacción con otras aplicaciones  Aleatoriedad

 Generación de código  Manejo de idiomas

2.5.1 La Biblioteca de Clases Base se clasifica, en tres grupos clave:

 ASP.NET y Servicios Web XML

 Windows Forms  ADO.NET

Los ensamblados son construidos con formato EXE o DLL estos tiene la característica de contener todas las acciones de la aplicación y manejarla en forma encapsulada, otra ventaja con este tipo de archivo es que ya no es necesario el registrar algún componente adicional a la aplicación, pues todo lo necesario es contenido en él. Además de estas tareas habituales, la biblioteca de clases incluye escenarios de desarrollo especializados que se mencionan a continuación:

 Aplicaciones para consola.

 Aplicaciones GUI de Windows (Windows Forms).

 Aplicaciones de Windows Presentation Foundation (WPF).  Aplicaciones de ASP.NET

(31)

31

Windows Form

Es el nombre que recibe la interfaz de programación gráfica, los formularios son la unidad básica de una aplicación. Un formulario es, en última instancia, una hoja en blanco que el desarrollador coloca controles, para crear una interfaz de usuario, y con código, para procesar los datos. Para éste fin, Visual Studio el IDE26 de Microsoft proporciona un entorno que ayuda a diseñar el código, así como un completo conjunto de controles escrito con .NET Framework.

ASP .NET

ASP.NET es un .NET Framework dedicado específicamente para construir aplicaciones web. Por ello es utilizado para el diseñar sitios web con características dinámicas, servicios web del tipo XML. Fue lanzado en el 2002 con la versión 1.0 del .NET Framework, y es la tecnología sucesora de Active Server Pages (ASP). ASP.NET está construido sobre el Common Language Runtime, lo que brinda las características a los desarrolladores de software de escribir código ASP.NET usando cualquier lenguaje admitido por el .NET Framework, actualmente se encuentra en su versión 4.5.

Visual Studio 2012

Visual Studio 2012 es una familia de productos, herramientas y tecnologías que puede ser utilizada para compilar aplicaciones con eficacia y brindando un alto rendimiento. En esta versión de Visual Studio es posible crear aplicaciones para la Tienda Windows, además de aplicaciones para equipos de escritorio, web, Windows Phone, Xbox 360 y Xbox ONE. Ofrece las herramientas de administración del ciclo de vida de las aplicaciones que se necesita para derribar las barreras entre equipos y reducir los tiempos de prueba y ejecución. Soporta varios lenguajes de programación como lo es el C#, Visual Basic, C++, J# entre otros. En el siguiente capítulo se abarcara con más detalle las ventajas que brinda con respecto al desarrollo de una aplicación para Windows Phone.

(32)

32

Capítulo 3 Entorno de desarrollo

(33)

33

3.1 Entorno de desarrollo de software en Windows Phone 8

Actualmente existe un mercado amplio referente a las aplicaciones que podemos encontrar para nuestros dispositivos móviles. En un principio, las empresas de software enfocaban su atención para realizar aplicaciones útiles para el usuario profesional, cuyo software solucionará algún problema en particular y sólo aplicable en un sector. La gran expansión de los dispositivos móviles provoco que la gente común interactuara de manera más directa, solicitando software que se pudiera utilizar en situaciones más comunes y en la que cualquier persona pudiera entender el cómo utilizar. Para el desarrollador es necesario entonces, el pensar en una aplicación que solucione algún tipo de problema y que sea vistosamente agradable e intuitiva para el usuario final.

3.2 Lenguaje de programación

[image:33.612.156.458.327.602.2]

Actualmente existe un buen número de lenguajes de programación, los cuales se prestan para diferentes enfoques y que los ingenieros en desarrollo de software utilizan ya sea por su facilidad o características que brindan para la tarea a solucionar.

Tabla 1. Proporcionada por TIOBE index – Julio 2013

TIOBE index27 es una página dedicada a realizar un conteo estadísticos de los lenguajes de programación, basa sus números en la cantidad de búsquedas de consultas que se realizan acerca del lenguaje de programación en los buscadores más populares (Google, Google Blogs, MSN, Yahoo, Baidu, Wikipedia, YouTube). La idea del grupo de TIOBE index no es encontrar el lenguaje de

(34)

34 programación más popular o usado, si no encontrar una relación entre las paginas donde se hace mención de estos lenguajes, con el número de ingenieros calificados, cursos y puestos de trabajo que se ofrecen al momento de realizar dicho conteo. Esta estadística se realiza cada mes, por ejemplo en la siguiente tabla encontramos los números arrojados del mes de Julio. En este caso nos enfocaremos en el lenguaje C#, cuyas características y soporte ayudaran al realizar el trabajo en la plataforma móvil Windows Phone. Se ha optado por escoger este lenguaje, dado estas características y revisando el avance y la constante tendencia de este lenguaje en el mercado.

Entre las ventajas que muestra C#, se encuentran las siguientes:

 Contiene un amplio rango de tipos de datos, lo cual permite utilizarlos para diferentes aplicaciones.

 Su sintaxis es muy similar a la del lenguaje Java, el cual es un lenguaje muy usado hasta ahora.

 Existe un proyecto muy bien fundado y dirigido de volver a C# en el lenguaje definitivo para diseñar aplicaciones en diferentes plataformas (Linux, Mac), conocido como Xamarin.

Ilustración 13. TIOBE index, Gráfica de evolución de C#

3.3 Entorno de desarrollo

El entorno de desarrollo es una parte muy importante a la hora de diseñar el software, éste nos ayudará ofreciéndonos soporte y herramientas como el diseñador y emulador que permitirán preparar la aplicación de la mejor manera posible. Para este caso se ha optado por el uso del IDE Microsoft Visual Studio 2012, el cual entre sus características más relevantes se encuentra el soporte a múltiples lenguajes de programación, entre ellos C#, C++, j#, Visual Basic .NET. Y el cual ofrece también un soporte para el SDK28 oficial de Windows Phone 8.

(35)

35 Entre las otras muchas novedades que nos ofrece Visual Studio 2012 se encuentran las plantillas de diseño que ofrecen como punto inicial a la hora de trabajar para aplicaciones basadas para el nuevo sistema operativo Windows 8 y para su semejante en teléfono inteligente Windows Phone 8, herramientas de diseño y depuración inteligentes, en los cuales nos mostraran en tiempo real los posibles errores, los flujos de datos que se manejen y la cantidad de memoria que se utilice. Otro recurso importante es la incorporación de un gestor de paquetes y bibliotecas llamado Nuget, el cual se encarga de tener contacto con todas las bibliotecas libres que se distribuyen entre desarrolladores y que pueden ser utilizados en diferentes proyectos. Dado que es imposible que Microsoft adjunte todas las bibliotecas existentes en el IDE, utiliza este gestor para que los desarrolladores tengan contacto y puedan elegir que biblioteca es más conveniente usar, brindando también un control de compatibilidad en el que el gestor se encarga de revisar las dependencias y elegir si es completamente compatible con la arquitectura del proyecto que se realiza, además de brindar un control de actualizaciones para las bibliotecas que se deseen utilizar.

3.4 Herramientas para el desarrollador

A la hora de desarrollar la aplicación para Windows Phone y gracias a Visual Studio, contamos con importantes herramientas de desarrollo, que permitirán hacer nuestra aplicación más segura y funcional.

3.4.2 Windows Phone Emulator

Cuando se programa para alguna arquitectura es importante el tener una visión de cómo el usuario final percibirá el trabajo de la aplicación en tiempo real, con ello se puede apreciar la funcionalidad y el nivel de facilidad que tiene esté al usar la aplicación. A pesar de que Visual Studio con ayuda del SDK cuenta con las plantillas y un visor gráfico de la aplicación, es de mucha ventaja observar como el programa trabajar en un uso real, para ello el SDK de Windows Phone provee de herramientas para ejecutar el programa, uno de ellos es un emulador de dicha arquitectura llamado Windows Phone Emulator.

Windows Phone Emulator es una aplicación para escritorio de la familia Microsoft, que logra emular la mayoría de las características de un dispositivo físico. Entre las principales ventajas que tiene dicha aplicación es el de crear un entorno virtual completamente similar al de un dispositivo con Windows Phone 8 y la de crear dicha unidad virtual de manera aislada a el entorno de la computadora que arranque dicha aplicación, con lo que se podrá, arrancar las aplicaciones que se desarrollen, depurarlas sin algún tipo de riesgo de por medio.

(36)

36 importancia, puesto que una aplicación puede consumir una cantidad mayor de memoria que la que puede proporcionar el dispositivo, haciendo que no funcione en dispositivos con estas limitaciones, o quizás que tenga conflictos por el uso de memoria frente a otras aplicaciones que se ejecuten en segundo plano. De la misma forma, la resolución de la pantalla afectara al usuario final en la forma en que percibe el diseño final del programa.

Ilustración 14.Visual Studio 2012, espacio de trabajo con aplicación para Windows Phone 8.

3.4.2.1 Requisitos para emulación

Algo importante que hay que mencionar son las características necesarias que necesita tener nuestra computadora para lograr cargar el emulador. Con la salida del SDK de Windows Phone 8, para dar un mayor grado de realismo y que el desarrollador pudiera probar su aplicación en interaccionan con las aplicaciones nativas de Windows Phone 8, el emulador corre completamente una terminal con la gran mayoría de las características de una terminal autentica. Para lograr esto hace falta justamente que la computadora presté gran cantidad de recursos. Dentro de los requisitos necesarios para correr correctamente el emulador se encuentran las siguientes:

Contar con un sistema operativo nativo de 64 bits. El SDK de Windows Phone solamente es compatible con la versión 2012 de Visual Studio, por ello si se cuenta con otra versión, es recomendable actualizarla.

En la siguiente lista se mencionan los requisitos necesarios:

Requisitos del sistema

 Requisitos en BIOS.

o Virtualización asistida por hardware. o Traducción de direcciones a nivel LAMA.

o Hardware basado en la prevención de ejecución de datos (DEP).

 4 GB o más de RAM.

 Windows 8 PRO con versión de 64 bits.

Requisitos de la red

 DHCP (Protocolo de configuración dinámica de host)

(37)

37 A continuación se mencionan las características necesarias del BIOS.

Hardware- Assisted Virtualization.

Esta característica avala que nuestra computadora cuenta con herramientas de visualización, los equipos más recientes a partir de la gama media, en su gran mayoría cuentan con esta característica, en algunas ocasiones deshabilitadas. Cuando tenemos problema de éste tipo, al correr el emulador encontraremos un mensaje como el siguiente:

Ilustración 15. Error encontrado a la hora de arrancar el emulador de Windows Phone

SLAT (Second Level Addres Translation).

Se trata de una característica de virtualización asistida por hardware desarrollada por Intel, pero éste es también soportada por AMD gracias a su tecnología Rapid Virtualización Indexing (RVI)

DEP (hardware-based Data Execution Prevention)

Esta es una herramienta de seguridad, para prevenir que alguna aplicación o servicio de ejecución utilice regiones de memoria no ejecutables. Éste se encuentra habilitado en los sistemas operativos más actuales, en el caso de Windows, también se puede encontrar.

3.4.2.2 Redes en el emulador de Windows Phone 8

El emulador utiliza los recursos de red del sistema donde se está corriendo el programa, la conexión que genera el emulador se comporta como un dispositivo diferente dentro de la red local.

(38)

38 Ilustración 16. Opciones del panel de simulación.

3.4.2.8 Herramientas de emulación en tiempo real.

Una vez terminado el proyecto y haberlo compilado, se importa dicho paquete al emulador, el cual se encarga de instalarlo e iniciarlo. Junto al emulador se crean nuevas opciones que el desarrollador puede usar para configurar el dispositivo y revisar el cómo se manejará en diferentes situaciones. Estas funciones son el control de GPS en el cual podemos dar una dirección propuesta o configurarla y revisar el como el programa maneja dicha entrada en el caso de que se use señales de GPS. La segunda opción es el controlar el sensor del giroscopio.

3.4.3 Correr aplicación en dispositivo

Otra de las opciones que nos ofrece el SDK de Windows Phone, es la posibilidad de cargar nuestra aplicación en algún dispositivo con el Sistema operativo para el cual se está desarrollando. Para esto hay que tener una serie de condiciones realizadas previamente. Para trabajar con una terminal física y probar las aplicaciones en ella, dicha terminal tiene que estar registrada como dispositivo de desarrollo. Para realizar esto, al momento de instalar el SDK de Windows Phone 8, se instala automáticamente una herramienta de desbloqueo, la cual es llamada Phone Developer Phone Registration.

(39)

39 Ilustración 17.Herramienta para desbloquear dispositivos, Developer Registration

3.7 Aplicaciones para Windows Phone8

Microsoft dio nacimiento a una nueva interfaz de usuario desde la salida de Windows Phone 7 en el 2010, caracterizado por su simplicidad visual y fácil manejo, bautizándola con el nombre Interfaz

Met o . La pa talla p i ipal de la te i al o ta a o osai os de o i ados Li e Tiles ue

toman la función de servir como accesos a las aplicaciones más usadas y a la vez servir como método de información al recibir notas de las aplicaciones asociadas. Todas estas nuevas características están al alcance de los desarrolladores por medio del último kit de desarrollo de aplicaciones Windows Phone 8.

3.7.1 Concepto de interfaz Metro.

(40)

40 Ilustración 18. Interfaz de Windows Mobile 6.5

Pese a todos los cambios realizados Microsoft llegaría a perder gran mercado por la fuerte competencia y por las ideas de abarcar un público no particular brindando terminales fáciles de usar, dicha competencia encabezada por IOS y Android.

Seria en el 2010, cuando Microsoft sacaría al mercado el primer dispositivo Windows Phone y en el cual por primera vez crearía una interfaz nueva e innovadora, la llamada interfaz metro. Esta vendría acompañada del nuevo concepto de brindar al usuario un espacio sencillo y caracterizado por mosaicos que servirían como accesos directos para aplicaciones y que brindarían en tiempo real información importante de dicha aplicación. La decisión de apostar por el concepto de mosaicos vendría del estudio que se realizaron a las señalizaciones y al lenguaje visual que se utiliza en los aeropuertos y sistema de metros del mundo, la cual se basaría en topografías sencillas y claras, qué brindarían información importante y con mucha fluidez.

Ilustración 19. Comparación entre los diseños topográficos y la interfaz Metro.

El concepto Metro sería utilizado nuevamente para el nuevo sistema operativo de sobremesa de Microsoft, Windows 8, el cual se renombraría como interfaz modern UI.

3.7.2 Plantillas

(41)

41

3.7.2.1 Aplicación de Windows Phone

Es la plantilla por default que ofrece el kit de desarrollo, cuenta sólo con una pantalla de color negro, con opción para cambiar a blanco, un título y un contenedor para información, en él se puede colocar otros contenedores u otras herramientas que se deseen utilizar en la aplicación.

3.7.2.2 Aplicación de enlace de datos

Presenta un diseño general acompañado con un control de lista, que pretende mostrar información más extensa y que el usuario puede leer o escoger, dependiendo del uso que se le dé a dicha herramienta. Es usado generalmente como interfaz de menú para aplicaciones con mucha configuración o con diferentes usos.

3.7.2.3 Aplicación panorámica.

Esta plantilla ofrece el control panorama el cual crea diferente plantillas continuas, ofreciendo al usuario una sensación de panorama, es una forma muy interesante de percibir la información por parte del usuario, puesto que en cada plantilla puede acceder a diferentes tipos de funciones, por ejemplo en la primera se da un menú general en las siguientes se presenta una lista de funciones y en la ultima la información a mostrar. Generalmente esta plantilla se usa para aplicaciones más robustas o con mucha información para mostrar, el diseñador tiene que saber el cómo acomodar sus datos e información que muestra al usuario, para no abusar de este control y hacerlo muy tedioso al usarlo.

3.7.2.4 Aplicación dinámica

Parecida en concepto a la plantilla panorámica a diferencia de que en está, se puede configurar el diseño de cada plantilla consiguiente, dando una sensación de diferencia en cada página. Es utilizada generalmente para mostrar información de diferentes enfoques y en aplicaciones que tienen mucho que mostrar.

3.7.2.5 Aplicación XAML y Direct 3D.

Esta plantilla llama todas las bibliotecas necesarias para realizar aplicaciones gráficas con las que generalmente se generan proyectos como juegos.

Windows Phone incorpora la última versión estable de Internet explore, el cual provee de compatibilidad absoluta con los nuevos formatos de estándar HTML5, con ello, provee de herramientas para lenguajes de internet que el desarrollador puede implementar en esta opción.

Para ello en esta plantilla se genera un control de internet, el cual puede ser utilizado para visualizar una página de internet o contenido de código HTML5.

(42)

42

Capítulo 4 Diseño y desarrollo de la aplicación

Figure

Tabla de Contenido
Tabla 1. Proporcionada por TIOBE  index – Julio 2013
Tabla 2. Tabla de requerimientos
Tabla 3. Tabla de cualidades
+6

Referencias

Documento similar

[r]

[r]

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

E Clamades andaua sienpre sobre el caua- 11o de madera, y en poco tienpo fue tan lexos, que el no sabia en donde estaña; pero el tomo muy gran esfuergo en si, y pensó yendo assi

[r]

Por PEDRO A. EUROPEIZACIÓN DEL DERECHO PRIVADO. Re- laciones entre el Derecho privado y el ordenamiento comunitario. Ca- racterización del Derecho privado comunitario. A) Mecanismos

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