Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Investigación de La Unidad 5
Investigación de La Unidad 5
INSTITUTO TECNOLÓGICO DE
ORIZABA
INVESTIGACIÓN UNIDAD 5.
Programación de dispositivos móviles.
INTEGRANTES:
2 6:00-7:00 pm.
TEMA PAGINA
Introducción………………………………………………………………………….....3
antecedentes……………………………………………………………………..…….4
Glosario……………………………………………………………………….…….....63
Conclusión……………………………………………………………………………..67
Bibliografía……………………………………………………………………………..68
INTRODUCCIÒN
3
La tecnología móvil ha tenido un impacto significativo en nuestra vida diaria en las
últimas décadas. La capacidad de conectarnos y comunicarnos con otros desde
cualquier lugar en cualquier momento ha cambiado la forma en que trabajamos,
socializamos y nos entretenemos. La programación de dispositivos móviles es una
habilidad vital en el mundo actual de la tecnología y la información.
Estos dispositivos nos permiten estar conectados con el mundo, realizar tareas,
jugar juegos y mucho más, todo desde la comodidad de nuestras manos. Como
resultado, el desarrollo de aplicaciones móviles se ha convertido en una industria en
constante crecimiento.
4
implementación, para que los lectores puedan estar al tanto de las últimas
tendencias en esta industria en constante evolución.
ANTECEDENTES
A medida que los teléfonos móviles se volvieron más populares, también lo hicieron
las aplicaciones móviles.
Hoy en día, los dispositivos móviles se han convertido en una parte integral de la
vida diaria, con una amplia variedad de aplicaciones disponibles para realizar
tareas como la comunicación, el entretenimiento, el comercio electrónico y la
productividad.
5
Sin embargo, con la introducción del iPhone de Apple en 2007, la programación
móvil cambió para siempre.
Sin embargo, hay algunos antecedentes históricos importantes que han contribuido
al desarrollo de la programación de dispositivos móviles, los cuales incluyen:
6
volvían más populares, surgieron diferentes plataformas móviles, como
Android, iOS y Windows Mobile. Cada plataforma requería diferentes
lenguajes de programación y herramientas de desarrollo.
El desarrollo híbrido combina tecnologías web y nativas para crear aplicaciones que
pueden ser ejecutadas en múltiples plataformas. Las herramientas de desarrollo
híbridas, como PhoneGap y Xamarin, permiten que los desarrolladores creen una
sola base de código que se pueda utilizar en múltiples plataformas.
7
El desarrollo web, por otro lado, implica la creación de aplicaciones que se ejecutan
en un navegador móvil. Esto puede ser más fácil y más económico que el desarrollo
nativo, pero puede tener limitaciones en términos de funcionalidad y rendimiento.
8
Hoy en día podemos encontrar una multitud de dispositivos móviles, donde los
teléfonos móviles y los PDAs son los tipos de dispositivos más utilizados y conocidos
en la actualidad, los que ofrecen mayor variedad de aplicaciones multimedia y los
que más posibilidades de evolución presentan en este sentido.
Una característica importante es el concepto de movilidad, los dispositivos móviles
son pequeños para poder portarse y ser fácilmente empleados durante su
transporte. En muchas ocasiones pueden ser sincronizados con algún sistema de la
computadora para actualizar aplicaciones y datos con algunas capacidades de
procesamiento, con conexión permanente o intermitente a una red, con memoria
limitada, diseñados específicamente para una función pero que pueden llevar a cabo
otras más generales. La mayoría de estos aparatos pueden ser transportados en el
bolsillo del propietario y otros están integrados dentro de otros mayores, controlando
su funcionalidad (como puede ser el ordenador integrado en una lavadora). un
dispositivo móvil no solamente son celulares.
9
Es el conjunto de conocimientos técnicos, ordenados científicamente, que permiten
diseñar y crear bienes y servicios que facilitan la adaptación al medio ambiente y
satisfacer tanto las necesidades esenciales como los deseos de las personas.
Coins
Aplicación que permite llevar la cuenta de las monedas de cada denominación
almacenadas en una alcancía, así como el total acumulado.
Books.
Aplicación que permite registrar los libros de una biblioteca personal.
Music.
Aplicación que permite registrar los discos de una colección personal
10
Dispositivo Móvil de Datos Limitados
Dispositivos que tienen una pantalla pequeña, principalmente basada en pantalla de
tipo texto con servicios de datos generalmente limitados a SMS.
11
Los recientes avances de las tecnologías de hardware, software y
telecomunicaciones, están alimentando una nueva generación de sistemas o
herramientas tecnológicas que están generando un gran impacto dentro del sector
empresarial. Estas nuevas herramientas permiten a usuarios con dispositivos
móviles conectarse a Internet a gran velocidad a través de la propia red de
comunicación móvil o a través de redes locales inalámbricas.
Estos avances tecnológicos han impulsado a la Sociedad actual a inclinarse con una
confianza creciente hacia las distintas posibilidades de explotar servicios antes
desconocidos, como puede ser el comercio electrónico, el cual está demostrando las
innumerables ventajas que este puede aportar al crecimiento económico. El
requerimiento de la población de la sociedad en cuanto al acceso remoto a la
información contenida en bases de datos también ha mostrado una evolución
creciente, por lo tanto es de interés estudiar y aportar soluciones a medida para
brindar servicios que permitan satisfacer estos requerimientos de información.
12
Existen muchas herramientas y tipos de dispositivos móviles que permiten el acceso
a la web:
Los teléfonos móviles cada vez incluyen más funciones, además de la telefonía y el
envío de mensajes de texto, como juegos, aplicaciones, cámara de fotos,
conectividad web, música. Se caracterizan, de forma general, por tener pantallas
pequeñas y teclados no qwerty, aunque las diferencias entre unos aparatos y otros
pueden llegar a ser muy grandes.
Smartphones (móviles con sistema operativo, lo que les habilita para ejecutar
programas) y PDAs (pequeños ordenadores que funcionan a modo de agenda)
ofrecen mayores prestaciones que los anteriores: pantallas táctiles y de mayor
tamaño, algunos incorporan teclado alfanumérico y conectividad WiFi. La aparición
del iPhone de Apple en el mercado supuso una revolución para esta familia de
dispositivos, que se han popularizado enormemente en los últimos años. Muchos de
los nuevos smartphones tienen un diseño similar al iPhone, incorporan pantalla táctil
y la posibilidad de incorporar aplicaciones.
MID (Mobile Internet Device) y PC ultra-móvil son los términos más frecuentes para
designar a los pequeños ordenadores de mano pensados para la navegación. Las
nuevas tablets o tabletas, de las que tanto se está hablando este año con el
lanzamiento del iPad de Apple y otros aparatos muy similares de otras compañías,
prometen popularizar estos dispositivos y dotarlos de más funcionalidades.
13
Algunos lectores de libros electrónicos incorporan conectividad WiFi con la finalidad
principal de descargar libros, RSS o noticias.
Otros dispositivos, como el iPod Touch de Apple, similar al iPhone pero sin opciones
de telefonía.
TECNOLOGÍAS EMERGENTES
Estos días, usted puede encontrar muchas empresas móviles entra en la imagen
que utilizan estas tecnologías móviles en conseguir de orden más clientes y
haciendo nuestro nivel de comunicación más fácil y menos molestia.
Una de las principales ventajas ofrecidas por estas tecnologías móviles es que ha
conseguido que nuestros medios de comunicación más fácil que nunca y no lo ha
permanecido como intenta ponerse en contacto con alguien a través de teléfonos
fijos.
Esto también ha creado muchas oportunidades de empleo para este mundo.
debido a la creciente demanda de tecnologías móviles, muchas empresas están
uniendo ahora a este negocio y esto es lo que propulsa para contratar personas
calificadas y con experiencia para mantener todo el sistema mejor.
Debido a esto también se crean muchas oportunidades de empleo por las
tecnologías móviles.
Windows media para archivos de vídeo.
Archivos de vídeo de diferentes tipos podrían ser escuchados a través de windows
media.
Este programa es capaz de soportar muchos tipos de formatos para que los
usuarios pueden disfrutar de los vídeos de su elección.
Usuario es capaz de detener la película, para tomar un descanso.
Reenvío y backwarding también están disponibles a través de windows media para
obtener resultados eficaces.
Todas las funciones básicas y avanzadas están disponibles para los usuarios de
este programa.
Muchos temas están disponibles en este programa para que los amantes del cine
podrían utilizar los atractivos temas de su elección.
23
Windows media es útil para la reproducción de un lote de archivos de vídeo que se
puede disfrutar cuando sea necesario sin ningún tipo de problemas.
También, hay algo muy nuevo y chocante conseguir desarrollado y será la gama de
anticipado “Google Glass” a la manera de montar más procesadores en el
dispositivo móvil.
Ventajas:
Desventajas:
24
5.2 Clasificación y aplicaciones de los dispositivos móviles.
Los dispositivos móviles son una categoría amplia que incluye una variedad de
dispositivos electrónicos portátiles, como teléfonos inteligentes, tabletas, relojes
inteligentes y dispositivos de realidad aumentada. Estos dispositivos están
diseñados para permitir a los usuarios acceder a la información, comunicarse,
realizar transacciones y llevar a cabo una amplia gama de tareas mientras se
mueven.
Tabletas: las tabletas son dispositivos móviles más grandes que los teléfonos
inteligentes y se utilizan principalmente para la lectura, la navegación por internet,
la visualización de medios y la realización de tareas ligeras. Las tabletas tienen una
pantalla más grande y un procesador más rápido que los teléfonos inteligentes.
25
Los dispositivos móviles se utilizan en una amplia variedad de aplicaciones, desde
la comunicación y el entretenimiento hasta la salud y la educación. Algunas de las
aplicaciones más comunes de los dispositivos móviles incluyen:
Salud y forma física: los dispositivos móviles se utilizan cada vez más para el
seguimiento de la salud y la forma física, como la medición de la frecuencia
cardíaca, el seguimiento de la actividad física y el monitoreo del sueño.
Existen diferentes formas y criterios para clasificar los distintos dispositivos móviles
que existen, una de estas formas de clasificación, es la de agruparlos según la
función que desempeñan. La clasificación es la siguiente:
o Dispositivos de comunicación:
o Dispositivos de Computación:
26
Tienen mayor capacidad de procesamiento de datos y tienen una pantalla y un
teclado más parecido al de una computadora tradicional. En esta categoría entran
los PDA, laptops y netbooks.
o Reproductores Multimedia:
Diseñado para que el usuario pueda reproducir una gran cantidad de formatos
multimedia. Son los de más reducido tamaño. En esta categoría entran los
reproductores mp3, DVD portátiles, eBooks, entre otros.
o Consola Portátil:
27
o Dispositivo Móvil de Datos Limitados:
Tienen una pantalla pequeña generalmente solo de texto, los servicios de datos se
limitan a SMS y WAP.
28
Pantallas grandes, navegación por medio de pantalla táctil, mismos servicios que el
de datos básicos pero con más aplicaciones nativas y corporativas.
En el cual entran teléfonos móviles, teléfonos fijos, PDAs, Blackberries, entre otros.
y muchos más dispositivos en un futuro. Estos dispositivos que permiten al usuario
comunicarse con otras personas a través de voz, texto, y otros métodos.
Estos son los relojes, iPods, Gameboys, cajeros automáticos, etc. Estos
dispositivos se centran en ofrecer una experiencia específica para el usuario, y si
tiene funciones adicionales, los elementos son muy secundarios. Por ejemplo, un
iPod tiene un calendario en ella, pero de ningún modo interfiere con el uso del
dispositivo como un reproductor de música.
30
NetBeans es un proyecto de código abierto de gran éxito con una gran base de
usuarios, una comunidad en constante crecimiento, y con cerca de 100 socios en
todo el mundo. Sun MicroSystems fundó el proyecto de código abierto NetBeans en
junio de 2000 y continúa siendo el patrocinador principal de los proyectos
(Actualmente Sun Microsystems es administrado por Oracle Corporation).
La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de
un conjunto de componentes de software llamados módulos. Un módulo es un
archivo Java que contiene clases de java escritas para interactuar con las APIs de
NetBeans y un archivo especial (manifest file) que lo identifica como módulo. Las
aplicaciones construidas a partir de módulos pueden ser extendidas agregándole
nuevos módulos. Debido a que los módulos pueden ser desarrollados
independientemente, las aplicaciones basadas en la plataforma NetBeans pueden
ser extendidas fácilmente por otros desarrolladores de software.
El NetBeans IDE soporta el desarrollo de todos los tipos de aplicación Java (J2SE,
web, EJB y aplicaciones móviles). Entre sus características se encuentra un sistema
de proyectos basado en Ant, control de versiones y refactoring.
El NetBeans IDE soporta el desarrollo de todos los tipos de aplicación Java (J2SE,
web, EJB y aplicaciones móviles). Entre sus características se encuentra un sistema
de proyectos basado en Ant, control de versiones y refactoring.
NetBeans IDE 6.5.2, la cual fue publicada el 19 de noviembre de 2008, extiende las
características existentes del Java EE (incluyendo Soporte a Persistencia, EJB 3 y
JAX-WS). Adicionalmente, el NetBeans Enterprise Pack soporta el desarrollo de
Aplicaciones empresariales con Java EE 5, incluyendo herramientas de desarrollo
visuales de SOA, herramientas de esquemas XML, orientación a web servicies (for
31
BPEL), y modelado UML. El NetBeans C/C++ Pack soporta proyectos de C/C++,
mientras el PHP Pack, soporta PHP
Modularidad. Todas las funciones del IDE son provistas por módulos. Cada módulo
provee una función bien definida, tales como el soporte de Java, edición, o soporte
para el sistema de control de versiones. NetBeans contiene todos los módulos
necesarios para el desarrollo de aplicaciones Java en una sola descarga,
permitiéndole al usuario comenzar a trabajar inmediatamente.
Sun Studio, Sun Java Studio Enterprise, y Sun Java Studio Creator de Sun
Microsystems han sido todos basados en el IDE NetBeans.
Desde julio de 2006, NetBeans IDE es licenciado bajo la Common Development and
Distribution License (CDDL), una licencia basada en la Mozilla Public License (MPL).
En octubre de 2007, Sun anunció que NetBeans desde entonces se ofrecerá bajo
licenciamiento dual de Licencia CDDL y la GPL versión 2.
32
Eclipse fue desarrollado originalmente por IBM como el sucesor de su familia de
herramientas para VisualAge. Eclipse es ahora desarrollado por la Fundación
Eclipse, una organización independiente sin ánimo de lucro que fomenta una
comunidad de código abierto y un conjunto de productos complementarios,
capacidades y servicios.
Eclipse fue liberado originalmente bajo la Common Public License, pero después fue
re-licenciado bajo la Eclipse Public License. La Free Software Foundation ha dicho
que ambas licencias son licencias de software libre, pero son incompatibles con
Licencia pública general de GNU (GNU GPL).
ArquitecturaLa base para Eclipse es la Plataforma de cliente enriquecido (del inglés
Rich Client Platform RCP). Los siguientes componentes constituyen la plataforma de
cliente enriquecido:
33
El Standard Widget Toolkit (SWT) – Un widget toolkit portable.
JFace – manejo de archivos, manejo de texto, editores de texto
El Workbench de Eclipse – vistas, editores, perspectivas, asistentes
Los widgets de Eclipse están implementados por una herramienta de widget para
Java llamada Standard Widget Toolkit, a diferencia de la mayoría de las aplicaciones
Java, que usan las opciones estándar Abstract Window Toolkit (AWT) o Swing.
La interfaz de usuario de Eclipse también tiene una capa GUI intermedia llamada
JFace, la cual simplifica la construcción de aplicaciones basadas en SWT.
El entorno de desarrollo integrado (IDE) de Eclipse emplea módulos (en inglés plug-
in) para proporcionar toda su funcionalidad al frente de la plataforma de cliente
enriquecido, a diferencia de otros entornos monolíticos donde las funcionalidades
están todas incluidas, las necesite el usuario o no.
35
Sin embargo, Spring Framework también fue duramente criticado en 2004 y sigue
siendo el tema de acalorados debates. Al tiempo en que se daba su primer gran
lanzamiento muchos desarrolladores y líderes de opinión vieron a Spring como un
gran paso con respecto al modelo de programación tradicional; esto era
especialmente cierto con respecto a Enterprise JavaBeans. Una de las metas de
diseño de Spring Framework es su facilidad de integración con los estándares J2EE
y herramientas comerciales existentes. Esto quita en parte la necesidad de definir
sus características en un documento de especificación elaborado por un comité
oficial y que podría ser criticado.
Spring Framework comprende diversos módulos que proveen un rango de servicios:
Contenedor de inversión de control: permite la configuración de los componentes de
aplicación y la administración del ciclo de vida de los objetos Java, se lleva a cabo
principalmente a través de la inyección de dependencias.
Programación orientada a aspectos: habilita la implementación de rutinas
transversales.
Acceso a datos: se trabaja con RDBMS en la plataforma java, usando Java
Database Connectivity y herramientas de Mapeo objeto relacional con bases de
datos NoSQL.
Gestión de transacciones: unifica distintas APIs de gestión y coordina las
transacciones para los objetos Java.
Modelo visto controlador: Un framework basado en HTTP y servlets, que provee
herramientas para la extensión y personalización de aplicaciones web y servicios
web REST.
Framework de acceso remoto: Permite la importación y exportación estilo RPC, de
objetos Java a través de redes que soporten RMI, CORBA y protocolos basados en
HTTP incluyendo servicios web (SOAP).
Convención sobre Configuración: el módulo Spring Roo ofrece una solución rápida
para el desarrollo de aplicaciones basadas en Spring Framework, privilegiando la
simplicidad sin perder flexibilidad.
36
Mensajes: Registro configurable de objetos receptores de mensajes, para el
consumo transparente desde la a través de JMS, una mejora del envío de mensajes
sobre las API JMS estándar.
Intel XDK Es un kit de desarrollo creada por Intel para crear aplicaciones nativas
para los teléfonos celulares y las tabletas que utilizan tecnologías de la web como
HTML5, CSS y Javascript.Las aplicaciones están compiladas vía on-line en la
plataforma Cordova para hacer aplicaciones cross-platform. Está disponible para
descargarse gratuitamente para Windows, OS X y Linux (32-bit y 64-bit).
Las aplicaciones están compiladas vía on-line en la plataforma Cordova para hacer
aplicaciones cross-platform. Está disponible para descargarse gratuitamente para
Windows, OS X y Linux (32-bit y 64-bit).
Características
Pistas de código
Conclusión de código
Emulador
Pruebas de dispositivo móvil vía Intel App Preview
Soporte de plugins Third Party
Soporte de plantillas
Drag-nDrop UI
Soporte para APIs de expansión de dispositivo
Soporte de plataforma móvil
iOS
Windows 8
Windows Phone 8
Chrome OS
Firefox OS
Tizen OS
Ventajas:
37
La clasificación de los dispositivos móviles puede ayudar a los
desarrolladores a entender mejor las especificaciones técnicas de los
dispositivos y cómo optimizar sus aplicaciones para ellos.
La comprensión de las diferentes aplicaciones de los dispositivos móviles
puede ayudar a las empresas a desarrollar estrategias de marketing y
publicidad más efectivas.
Desventajas:
El sistema operativo móvil es uno de los componentes más importantes del entorno
operativo de las aplicaciones móviles. Los sistemas operativos móviles son
específicos para dispositivos móviles y se utilizan para controlar el hardware y
permitir a las aplicaciones móviles acceder a los recursos del dispositivo, como la
pantalla, la cámara, el micrófono y la conectividad inalámbrica. Algunos de los
sistemas operativos móviles más populares incluyen Android, iOS, Windows Mobile
y BlackBerry OS.
38
La capa de abstracción de hardware es una capa de software que se encuentra
entre el sistema operativo y el hardware del dispositivo móvil. La capa de
abstracción de hardware proporciona una interfaz de programación de aplicaciones
(API) unificada que permite a las aplicaciones móviles acceder a los recursos de
hardware del dispositivo, independientemente del fabricante o modelo del
dispositivo. La capa de abstracción de hardware también se utiliza para mejorar el
rendimiento de las aplicaciones móviles y la duración de la batería del dispositivo.
Bibliotecas de software
Herramientas de desarrollo
Las herramientas de desarrollo son software utilizado por los desarrolladores para
crear y depurar aplicaciones móviles. Las herramientas de desarrollo incluyen IDEs
(entornos de desarrollo integrados), editores de código, depuradores y emuladores
de dispositivos móviles. Las herramientas de desarrollo también se utilizan para la
compilación de código y la gestión de versiones.
39
A la hora de diseñar estas aplicaciones se deben tomar en cuenta una serie de
parámetros para el buen funcionamiento de la aplicación. Como parte del modelo de
desarrollo, una parte esencial en este proceso es el diseño de ciertos protocolos que
ayudan a la estandarización de las aplicaciones y algo mucho más importante, Una
interfaz para el usuario. Esta es la responsable de la interacción del usuario con la
aplicación.
Los conceptos de móvil y sin cables muchas veces se confunden. Por ejemplo, un
PDA con datos en él y aplicaciones para gestionarlos puede ser móvil, pero no
tiene por qué ser wireless, ya que puede necesitar un cable para conectarse al
ordenador y obtener o enviar datos y aplicaciones. Veamos otro ejemplo. Un
teléfono móvil equipado con un pequeño navegador puede navegar por Internet. En
este caso, se considera wireless, pero no se considerará móvil si no dispone de un
valor añadido en forma de aplicaciones que aporte alguna función cuando no está
conectado a otros sistemas. Si el PDA es capaz de conectarse a una red para
obtener datos "en medio de la calle", entonces también será wireless. Algunas de
las características que hacen que estos dispositivos sean diferentes de los
ordenadores de sobremesa son los siguientes:
Funcionalidad limitada.
No necesariamente extensible y actualizable.
En pocos años el usuario deberá cambiarlo.
Más barato.
Menos complicado en su manejo.
Fácil de aprender su operación.
No se requieren usuarios expertos.
Paginadores.
Comunicadores de bolsillo.
Teléfonos con pantalla para Internet (Internet Screen Phones).
Sistemas de navegación de automóviles.
Sistemas de entretenimiento.
Sistemas de televisión e Internet (WebTV).
Teléfonos móviles.
41
Al igual que Java, C# es un lenguaje influenciado por C++ pero con una sintaxis más
clara. Anunciado en el año 2000, C# es un lenguaje relativamente nuevo en
comparación con Objective-C y Java.
Poco después de que Microsoft anunciara el .NET Framework en junio del año 2000,
la empresa Ximian fundada por Miguel de Icaza y Nat Friedman, inició un proyecto
de código abierto llamado Mono para crear una implementación alternativa del
compilador de C# y el .NET Framework que pudiera correr sobre Linux.
Una década después, en 2011, los fundadores de Ximian, que fue adquirida por
Novell, fundaron Xamarin. Xamarin aun contribuye a la versión de código abierto de
Mono y lo ha adaptado para formar la base de las soluciones móviles
multiplataforma.
42
En mayo 28 de 2014, Xamarin introdujo Xamarin.Forms que permite a los
desarrolladores escribir código de interfaz de usuario que puede ser compilado para
dispositivos iOS, Android y Windows.
En marzo de 2016, Microsoft adquirió Xamarin con el fin de proporcionar una opción
de desarrollo móvil multiplataforma a la extensa comunidad de desarrolladores
Microsoft. Xamarin.Forms se encuentra ahora disponible de forma gratuita a todos
los usuarios de Visual Studio.
43
Los desarrolladores pueden utilizar Visual Studio para construir aplicaciones
Xamarin para iOS y Android, así como para las distintas plataformas Windows. Sin
embargo, el desarrollo para iPhone y iPad también requiere de una Mac conectada a
la PC a través de la red. La Mac debe tener Xcode instalado, así como Xamarin
Studio. Xamarin Studio es un IDE basado en OS X que permite desarrollar
aplicaciones iPhone, iPad, Mac OS X y Android en la Mac. Xamarin Studio no
permite desarrollar aplicaciones para la plataforma Windows.
Compartiendo código
La ventaja de desarrollar para múltiples plataformas con un solo lenguaje de
programación radica en la habilidad de compartir código entre las aplicaciones.
Antes de que el código pueda ser compartido, la aplicación debe ser estructurada
para ese propósito. De forma particular, debido al amplio espectro de interfaces de
usuario gráficas disponibles, los programadores han entendido la importancia de
dividir el código de la aplicación en diferentes capas. Probablemente, la división más
útil es la separación del código de la interfaz de usuario, la lógica de negocios y la
lógica de acceso a datos. El patrón de arquitectura de software MVC (Model-View-
Controller) originado en 1980, formaliza esa separación de código en el Model
(lógica de acceso a datos y lógica de negocios), View (la representación visual de
los datos) y el Controller (encargado de interactuar con el usuario).
View. Código especifico de la plataforma que requiere interactuar con las APIs de la
plataforma.
Model y ViewModel. Código independiente de la plataforma.
Frecuentemente, el código independiente de la plataforma necesita utilizar
colecciones, acceder a archivos, acceder a la red o utilizar Threads. Normalmente
estas tareas podrían ser consideradas como parte de la API de un sistema
operativo, sin embargo, también son tareas que pueden hacer uso de la biblioteca
de clases del .NET Framework. Y si además el .NET Framework está disponible en
cada plataforma, entonces ese código es efectivamente independiente de la
plataforma.
44
La parte de la aplicación que es independiente de la plataforma puede ser entonces
aislada y – en el contexto de Visual Studio o Xamarin Studio – puesta en un proyecto
separado. El proyecto puede ser alguno de los siguientes:
Shared Asset Project (SAP). Este tipo de proyecto consiste de código y de otros
archivos que pueden ser accesibles directamente desde otros proyectos y que se
combinan en tiempo de compilación.
Portable Class Library (PCL). Este tipo de proyecto encapsula en una biblioteca
DLL todo el código común que después puede ser referenciado desde otros
proyectos.
Independientemente del método que utilicemos para compartir código, el código
común tiene acceso a la biblioteca de clases del .NET Framework, por lo que
podemos realizar operaciones con archivos, acceder a la red, manejar globalización,
acceder a servicios Web, trabajar con XML, trabajar con JSON, utilizar Threads y
muchas otras tareas.
45
Para la aplicación Android, el compilador C# de Xamarin genera código IL que se
ejecuta sobre una versión de Mono en el dispositivo junto con el motor de Java, pero
las llamadas a las APIS desde la aplicación son similares a las que hace una
aplicación escrita en Java.
Ventajas:
Desventajas:
46
5.4 Desarrollo de aplicaciones móviles.
47
Implementación de la aplicación
Puede crear aplicaciones para dispositivos Android, iOS y Windows con Visual
Studio. Al diseñar la aplicación, use las herramientas de Visual Studio para agregar
fácilmente servicios conectados, como Office 365, Azure App Service y Application
Insights.
48
Crear aplicaciones mediante C# y .NET Framework, HTML y JavaScript o C++.
Comparta código, cadenas, imágenes y, en algunos casos, incluso la interfaz de
usuario.
Si quiere compilar un juego o una aplicación gráfica inmersiva, instale Visual Studio
Tools para Unity y disfrute de las eficaces características de productividad de Visual
Studio con Unity, el popular entorno de desarrollo y motor multiplataforma de juegos
y gráficos para aplicaciones que se ejecuta en iOS, Android, Windows y otras
plataformas.
La creación de aplicaciones móviles puede ser tan fácil como abrir el IDE, juntar
algunos elementos, realizar unas pruebas rápidas y enviar el resultado al App Store,
todo ello en una misma tarde. O puede ser un proceso muy complicado que conlleva
el diseño riguroso por adelantado, pruebas de facilidad de uso, pruebas de control
de calidad en miles de dispositivos, un ciclo de vida completo de versión beta y la
implementación de varias maneras diferentes.
49
A continuacion se presenta un video donde se explica el entorno de la primer
aplicacion en Xamarin Forms:
PDA, del inglés personal digital assistant, asistente digital personal, computadora de
bolsillo, organizador personal o agenda electrónica de bolsillo, es
una computadora de mano originalmente diseñada como agenda
personal electrónica (para tener uso de calendario, lista de contactos, bloc de notas,
recordatorios, dibujar, etc.) con un sistema de reconocimiento de escritura.
Estos dispositivos fueron sustituidos por los teléfonos móviles que pueden realizar
muchas de las funciones que hace una computadora de escritorio (ver películas,
crear documentos, juegos casuales, correo electrónico, navegar por Internet,
reproducir archivos de audio, etc.) con la ventaja de ser un objeto del que se dispone
constantemente.
50
En 1989, el Atari Portfolio, aunque técnicamente clasificado como palmtop fue una
muestra temprana de algunos de los más modernos dispositivos electrónicos. Otros
dispositivos como los Psion Organiser II (1986), el Sharp Wizard o la Amstrad
Penpad (1993) fueron sentando la base de las funcionalidades de las PDAs.
En 1995 con la aparición de la empresa Palm, Inc. comenzó una nueva etapa de
crecimiento y desarrollo tecnológico para el mercado de estos dispositivos. Tal fue el
éxito que los ordenadores de bolsillo o agendas electrónicas son a veces
llamadas Palm o Palm Pilot, lo cual constituye un caso de una marca registrada que
se transforma en el nombre genérico del producto.
Características
Pantalla tácTIL
Las agendas digitales suelen llevar pantalla táctil para la navegación.
Muchas agendas digitales como el Apple Newton y el Palm Pilot, tienen pantallas
táctiles para interactuar con el usuario, por lo que tienen muy pocos botones
reservados para abrir los programas más utilizados. Por lo general las agendas
digitales con esta pantalla tienen un lápiz desmontable, con el cual se realizan todas
las tareas. Para agregar texto por lo general se usan uno de los siguientes métodos:
o Se usa un teclado virtual, y para agregar las letras hay que tocar cada una de
ellas.
o Se puede conectar un teclado externo conectado vía USB o Bluetooth.
o Usando el reconocimiento de letras o palabras, y luego traduciéndolas a letras
dentro de la caja texto seleccionada.
52
o Usando un reconocimiento de símbolos, donde cierto grupo de estos representa
una letra. Por lo general estos símbolos son fáciles de recordar.
Parece que con solamente chasquear los dedos vamos a conseguir alguien que se
encargue del desarrollo de aplicaciones móviles y en un periquete vamos a tener
nuestro proyecto hecho realidad. Pero hacer aplicaciones no es tan fácil, por eso si
tienes una idea de app en mente antes de ponerte manos a la obra, mejor que
conozcas lo más básico sobre los dos sistemas operativos dominantes, Android e
iOS.
En este artículo queremos exponer las bases técnicas o más básicas al hacer una
app Android o una app iOS, conocer las peculiaridades de cada sistema operativo y
como afecta a los desarrolladores de aplicaciones que trabajan con cada uno de
ellos.
53
Desarrollo de aplicaciones móviles para Android
Comenzamos con el sistema operativo con mayor cuota de mercado y con más apps
móviles desarrolladas. Y también con más número de aplicaciones en las stores. Un
vistazo rápido a las características del SO y cómo se configura el desarrollo de apps
móviles Android.
Características básicas
La mayoría de smartphones y tablets que no son Apple, corren con alguna de las
versiones del sistema operativo de Android. Desde KitKat, pasando por Lollipop y la
más reciente Marshmallow. Los dispositivos más conocidos que utilizan Android son
los siguientes:
Nexus
Samsung
Sony
Huawei
Etc.
54
Al desarrollar apps móviles para este sistema operativo debemos tener en
cuenta todos estos dispositivos. Es posible que cada uno tenga unas dimensiones
distintas. Tendremos que ajustar nuestro desarrollo de apps móviles al standard.
Sólo así aseguraremos que la app sea visible y usable.
Herramientas necesarias
La forma más fácil y directa para empezar a desarrollar apps móviles para Android
es descargando el Android SDK y el IDE de Eclipse (vea los Recursos). El desarrollo
Android puede realizarse desde ordenadores Microsoft® Windows®, Mac OS X o
Linux, dada su naturaleza de código abierto.
55
podremos ir viendo los progresos que vamos haciendo en desarrollo, los errores,
correcciones.
El sistema operativo que se lleva la plata es el creado por Steve Jobs en Apple.
Aunque nació antes que Android, y tenía mucha más cuota de mercado que este,
iOS ha ido perdiendo potencia y usuarios.
56
Características básicas
El segundo de la carrera por el mercado móvil sigue luchando por hacerse un hueco.
Algunos datos del SO móvil de Cupertino:
iPhone 4, 5, 6, etc.
iPad, iPad Mini
iPod nano, iPod shuffle
57
Herramientas necesarias
Los desarrolladores pueden poner un precio por encima del mínimo ($0.99 dólares)
a sus aplicaciones para distribuirlas y venderlas en el App Store, de donde recibirán
el 70 % del dinero que ingrese la aplicación. Por otro lado, el desarrollador puede
lanzar la aplicación gratis, y así no obtendría ni pagaría nada, excepto por la cuota
de miembro/desarrollador.
58
Licencia de desarrollador iOS: 99 euros al año.
Dispositivo móvil estándar: iPhone (nuevo libre 639 euros)
Ordenador para poder desarrollar: Hace falta usar un ordenador Mac, la gama más
baja es Mac mini (nuevo 549 euros)
Coste total aproximado: 1.287 euros iniciales
A final de cuentas, el coste final del desarrollo de aplicaciones móviles para
Android e iOS por lo general es muy similar a ojos del que encarga el desarrollo.
Las posibles diferencias residirán en el exceso o escasez de demanda. Ante la gran
cantidad de desarrolladores Android el precio final puede ser más competitivo.
Siempre habrá algún desarrollador que rebaje un poco más el precio, mientras que
en el caso del desarrollo iOS será siempre más estable.
Ventajas:
Desventajas:
59
las empresas deben desarrollar aplicaciones de alta calidad para destacar
en el mercado.
Las aplicaciones móviles son cada vez más populares en todo el mundo, pero
también son vulnerables a diversas amenazas de seguridad. Los dispositivos
móviles son objeto de robos y pérdidas, y la información personal que se almacena
en ellos puede ser objeto de hackeos. Por lo tanto, es crucial que las aplicaciones
móviles cuenten con medidas de seguridad adecuadas para proteger la información
y los dispositivos móviles de los usuarios. A continuación, se describen algunos de
los aspectos clave de la seguridad en las aplicaciones móviles.
Autenticación y autorización
Cifrado de datos
Los ataques de fuerza bruta son comunes en las aplicaciones móviles, y se utilizan
para intentar adivinar contraseñas y otras credenciales de usuario mediante la
60
repetición de intentos de inicio de sesión. Las aplicaciones móviles deben
implementar medidas de prevención de ataques de fuerza bruta, como la
implementación de temporizadores de bloqueo de cuenta después de un número
determinado de intentos de inicio de sesión fallidos.
Las aplicaciones móviles deben proteger los datos personales de los usuarios,
como la información de la tarjeta de crédito y la información de la cuenta, contra
posibles hackeos. Las aplicaciones móviles deben cumplir con las regulaciones de
privacidad y seguridad de datos de los usuarios, como la Ley de Protección de
Datos Personales de la Unión Europea (GDPR), y utilizar medidas de seguridad
adecuadas, como la encriptación y el almacenamiento seguro de datos.
Actualizaciones de seguridad
Las aplicaciones móviles deben ser actualizadas regularmente para corregir errores
y vulnerabilidades de seguridad. Los desarrolladores deben mantenerse
actualizados sobre las últimas amenazas de seguridad y trabajar en la actualización
de sus aplicaciones en consecuencia. Además, las aplicaciones móviles deben ser
diseñadas para permitir actualizaciones fáciles y automáticas para garantizar la
seguridad continua de los usuarios.
Este modelo BYOD (Bring Your Own Device) significa que el departamento IT tiene
que dar soporte a más plataformas y proveer seguridad y gestión en este nuevo
ambiente tan variopinto.
Una encuesta de Nokia reveló que los usuarios de apps miramos nuestro
smartphone una media de 150 veces al día, lo que indica el valor y potencial al que
ha llegado el sector del desarrollo de aplicaciones móviles. Sin embargo, el
desarrollo de aplicaciones para Android y iOS va mucho más allá de crear una
interfaz atractiva o resolver un simple problema de usuario.
Para proteger las contraseñas en iOS, deben almacenarse dentro de una sección de
datos cifrados en la cadena de claves de iOS. Para Android, deben residir en el
almacenamiento cifrado en el directorio de datos de la aplicación interna y la
aplicación debe estar marcada para no permitir la copia de seguridad.
63
Actualmente no se puede confiar únicamente en la protección que implementan los
fabricantes en el dispositivo para hacer cumplir los controles de seguridad. Las
aplicaciones móviles también están expuestas a ataques de otras aplicaciones o a
través del uso de una conexión de Internet móvil. Durante el desarrollo de una app, y
con el objetivo de mantener su seguridad, es importante validar los datos de entrada
para evitar varios tipos de ataques.
Las vulnerabilidades de los controles de servidor son influidas por factores como:
64
Sucede cuando la información confidencial es colocada por error en una ubicación
fácilmente accesible en el dispositivo móvil por parte de aplicaciones maliciosas. En
esta situación, los datos corren un grave riesgo de ser filtrados.
Validar todas las entradas, tipo, sintaxis, antes de que se muestren o almacenen los
datos.
Rechazar la entrada no válida en lugar de intentar comprobar datos potencialmente
hostiles.
Ten cuidado con los mensajes de error, también pueden incluir datos no válidos.
Presta atención al conectarte a la base de datos u otros sistemas de soporte.
Evita los mensajes de error detallados que puedan ser útiles para los hackers.
Utiliza procedimientos almacenados ya que generalmente son seguros contra la
inyección de SQL.
No utilices interfaces de consulta dinámicas.
No utilices funciones simples de escape, son débiles y pueden haber sido
hackeadas.
Asegúrate de que tu aplicación no decodifique la misma entrada dos veces.
Encriptación rota
¿Quieres que tu aplicación se encuentre entre las más prestigiosas del mercado?
Entonces no olvides que los algoritmos de encriptación se vuelven obsoletos con
relativa rapidez. Además, la mayoría de las aplicaciones requieren la inserción de
datos personales para comprar características. Si tu aplicación no utiliza un
algoritmo de encriptación o utiliza claves débiles, millones de usuarios de tu producto
pueden convertirse en víctimas de los hackers.
Desarrollar una aplicación móvil desde cero puede consumir mucho tiempo, por lo
que los desarrolladores a menudo intentan utilizar la enorme cantidad de código en
la web. Sin embargo, ten mucho cuidado, pues tomar este atajo puede salirte caro:
muchos hackers crean código y lo hacen disponible esperando que sea utilizado
por algún desarrollador. Esto les da libre acceso a toda la información que necesita
después de lanzar la aplicación. Asegúrate de comprobar las fuentes del código
que está utilizando.
66
GLOSARIO
Despliegue: Proceso de hacer que una aplicación móvil esté disponible para
su descarga e instalación en tiendas de aplicaciones o en un sitio web.
68
asíncrono: término utilizado para especificar la ejecución de distintos
procesos de forma independiente unos de los otros respecto al tiempo. En
Hardware este concepto es aplicable a dispositivos físicos como la memoria
y la CPU, etc ... .
69
llamada por valor: llamada a un procedimiento de forma que, con la ayuda
de parámetros el objeto que se envía al mismo es una copia del original que
guarda el procedimiento llamador. De esta forma cualquier cambio sobre el
mismo afectará solo a la copia.
recurso: objetos o dispositivos que son utilizados por una computadora, para
poder realizar todos los trabajos y tareas que se requieren a partir de las
peticiones que van realizando los procesos del sistema. Entre otros en una
computadora tenemos como recursos los siguientes: memoria principal,
dispositivos de memoria secundaria, y cualquier dispositivo periférico
direccionable. Además estos pueden ser o no compartibles.
70
Programa concurrente: Ejecución de acciones simultáneamente.
CONCLUSIÓN
71
herramientas y plataformas que se pueden utilizar para facilitar el proceso de
desarrollo, como Android Studio, Xcode, Xamarin y React Native, entre otros.
BIBLIOGRAFÍA
https://dispositivosmivilesuni5tap.blogspot.com/2019/05/53-entorno-operativo-
de-las.html
http://desaplidenniscasas.blogspot.com/2014/05/1.html
72
Jiménez, G. (n.d.). 5.1 Introducción a las tecnologías y herramientas móviles.
https://programacionenxamarin.blogspot.com/p/51-introduccion-las-
tecnologias-y.html
móviles. https://programacionenxamarin.blogspot.com/p/5-2.html
https://programacionenxamarin.blogspot.com/p/53-entorno-operativo-de-
las.html
https://programacionenxamarin.blogspot.com/p/5-4-desarrollo-de-
aplicaciones-moviles.html
https://programacionenxamarin.blogspot.com/p/5-5.html
Programación. (n.d.).
https://sites.google.com/site/topicos341m/home/ambientes-de-las-
aplicaicones
Programación. (n.d.).
https://sites.google.com/site/topicos341m/home/clasificacion-y-aplicaciones-
de-dispositivos-moviles
73
DISPOSITIVOS MOVILES - Tópicos Avanzados de Programación. (n.d.).
https://sites.google.com/site/topicos341m/home/dispositivos-moviles
https://sites.google.com/site/topicos341m/home/introduccion
Programación. (n.d.).
https://sites.google.com/site/topicos341m/home/programacion-de-telefonos-
moviles
http://file:///C:/Users/52271/Downloads/scribd.vdownloaders.com_unidad-5-
topicos-avanzados-de-programacion.pdf
74