ROGRAMACION DE DISPOSITIVOS MÓVILES


              

UNIDAD 5 




5.1 INTRODUCCIÓN A LAS TECNOLOGÍAS Y HERRAMIENTAS MÓVILES

La generalización en los últimos años de teléfonos móviles, smartphones, PDs, etc. ha generado una importante necesidad de aplicaciones para este tipo de dispositivos. Las prestaciones de los dispositivos móviles se incrementan día a día, posibilit ando la implementación de aplicaciones muy interesantes tales como: * Acceso a Internet y conectividad mediante Bluetooth * Envío de mensajes cortos

En la actualidad, el trabajar en el campo de la programación para dispositivos móviles se hace necesario, debido a que las empresas se deben adaptar a las tendencias del mercado y a las necesidades de sus clientes. Por lo que se debe pensar en la posibilidad de tener acceso a la información en cualquier lugar y en cualquier instante, a través de distintos dispositivos móviles, incluidos dentro de la administración de la empresa, al igual que las soluciones informáticas para equipos de escritorio. Convirtiéndose en parte vital para el funcionamiento de los procesos empresariales.

  1. QUÉ SON LOS DISPOSITIVOS MÓVILES ž Un dispositivo móvil puede clasificarse como todo aquel hardware que tendrá características similares a las computadoras de escritorio, con la principal diferencia que todo es reducido y normalmente integrado en una sola pieza.
  2. 4. Algunos dispositivos móviles ž Celulares: han incursionado en campos diversos, más allá de la comunicación, y actualmente se incrementan sus funcionalidades multimedia con el surgimiento de nuevas redes inalámbricas con el concepto de 3G.
Asistente Digital Personal o PDA : Es una pequeña computadora de bolsillo que ofrece características de un organizador personal y las de una computadora, también llamadas handhelds.
. Tablet pc: Es una modalidad de computadora portátil que ha supuesto un avance significativo en la aplicación de los estudios en lingüística computacional.  Utilidades  Lectura de libros electrónicos  Lectura de comics en pantalla  Navegación web  Juegos  Consulta de documentos ofimáticos  Visualización de vídeos / películas  Reproducción de música  Videoconferencia

  1. ENTORNOS DE PROGRAMACIÓN ž Qué es un sistema operativo para móvil y para qué sirve Un sistema operativo móvil o SO móvil es un sistema operativo que controla un dispositivo móvil al igual que los ordenadores utilizan Windows o Linux entre otros. Sin embargo, los sistemas operativos móviles son bastantes más simples y están más orientados a la conectividad inalámbrica, los formatos multimedia para móviles y las diferentes maneras de introducir información en ellos.
  2. 8. Tipos de sistemas operativos Symbian Windows Mobile Linux Symbian es el sistema operativo para móviles más extendido. La empresa es propiedad de Ericsson, Panasonic, Siemens AG, Nokia y Sony-Ericsson. Este sistema desciende de EPOC, empleado en los antiguos ordenadores de bolsillo Psion. Windows Mobile, antes conocido como Windows CE o Pocket PC, tiene una larga historia como segundón en el campo de los PDA u ordenadores de bolsillo, sin embargo hace pocos meses superó por primera vez al hasta entonces líder, Palm OS. En los círculos del software libre se acaricia la idea de implantar Linux en el teléfono móvil desde hace años, pero ha tardado en llegar.
  3. Aún así, en los últimos tiempos se ha avanzado mucho y ya hay varios modelos de móvil en el mercado que utilizan una versión de Linux como su sistema operativo Android en un Sistema Operativo además de una plataforma de Software basada en el núcleo de Linux. Diseñada en un principio para dispositivos móviles, Android permite controlar dispositivos por medio de bibliotecas desarrolladas o adaptados por Google mediante el lenguaje de programación Java. Android
  4. 9. Métodos de desarrollo ž Existen dos posibilidades a la hora de desarrollar una aplicación para un dispositivo móvil. El desarrollar desde una computadora para luego pasar la aplicación al dispositivo, o bien se puede desarrollar en el mismo dispositivo en que correrá la aplicación.
  5. 10. Lenguajes de programación para dispositivos móviles ž Los lenguajes de programación para los dispositivos móviles dependen en gran parte del dispositivo en el que se quiera trabajar, sin embargo tienen en común que se puede crear sistemas visuales robustos con mayor facilidad independientemente del lenguaje de programación que se esté aplicando, por supuesto dicho lenguaje debe soportar la metodología de programación con la que trabaja el dispositivo en particular.
  6. 11. ž Java : Para dispositivos móviles la versión de Java en la que se programa es J2ME (JavaMicro Edition)
  7. Lenguaje de C++ : Una de las herramientas que se utilizan para la programación de móviles basadas en el lenguaje de C++ es Carbide.c++ la cual trabaja en la plataforma de Symbian,
  8. 12. ž Lenguaje de C# : Para desarrollar aplicaciones en dispositivos móviles a través de este lenguaje de programación se puede utilizar la herramienta de Visual C# que trabaja con un IDE para diseñar las ventanas de la aplicación. ž Objective – C : Este lenguaje de programación está basado en C y a diferencia de C++ es un súper conjunto del lenguaje C, ya que agrega a la sintaxis de C la manera de enviar mensajes enSmall-Talk y de definir e implementar objetos.
  9. 13. ž .NET : Es un Framework (estructura de soporte para organizar y desarrollar software) de Microsoft que permite un rápido desarrollo de aplicaciones. ž Python : Este lenguaje de programación orientado a objetos es utilizado para dispositivos móviles tales como Symbian, Palm, teléfonos inteligentes de Nokia, etc., también se puede emplear en otras plataformas tales como Windows, Linux/Unix, Mac OS X, OS/2 y también ha sido portado para maquinas virtuales de Java y .Net, distribuido bajo la licencia de código abierto OSI lo hace libre en su uso.


































5.2 CLASIFICACIÓN Y APLICACIONES  DE LOS DISPOSITIVOS MÓVILES


 Debido a la gran variedad existente de dispositivos móviles, estos han sido clasificados de la siguiente manera:
DISPOSITIVOS DE PROPÓSITO GENERAL DE TRABAJO.
Actualmente dominado por las computadoras de escritorio, computadoras portátiles, tablets y similares. Estos dispositivos pueden trabajar una gran variedad de información centradas en las tareas generales. Estos dispositivos pueden ser usados por usuarios para un propósito general de trabajo, como un ejemplo de un joven común, puede usar estos dispositivos para casi cualquier cosa que necesite, como realizar reportes y tareas, o entretenimiento, etc.
DISPOSITIVOS CON PROPÓSITO DE ENTRETENIMIENTO.
Tales como como el iPod, PlayStation Portable, Nintendo 3DS entre otros. Estos dispositivos tienen el principal propósito de entretenimiento, (especialmente por medio de videojuegos), pero tienen como objetivo apoyar fácilmente el uso de otros medios de entretenimiento, como el escuchar música o incluso pueden tener servicio de comunicaciones.
COMUNICACIONES O DISPOSITIVOS DE CONTROL.
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.
DISPOSITIVOS ESPECIALIZADOS DE INFORMACION.
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.
Clasificación y Aplicaciones de Dispositivos Móviles
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:

  • Dispositivos de comunicación:
son aquellos cuya principal función es ofrecer la infraestructura para la comunicación, generalmente telefónica. Tienen además servicios para mensajes. Incluye Smartphones.


  • Dispositivos de Computación:
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.

  • 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.

  • Grabador multimedia consola portátil:
Aquel que facilita la grabación de datos en un formato digital ya sea generalmente de audio o de vídeo. Ejemplos de esta categoría son las cámaras tanto fotográficas y de vídeo.
  • Consola Portátil:
Dispositivo móvil cuya función es proporcionar al usuario una plataforma de  juego. Aunque en tiempo recientes también reproducen multimedia. Otra forma de definir los tipos de dispositivos móviles es la siguiente:


  • 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.

  • Dispositivo Móvil de Datos Básicos:
 Tienen una pantalla de tamaño mediano, un menú para la navegación. Servicios tales como correo, Contactos, navegador web básico.

  • Dispositivo Móvil de Datos Mejorados:
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.













5.3 ENTORNO OPERATIVO DE LAS ApLICACIONES  MÓVILES
Entornos De Desarrollo Para Móviles
NetBeans es un entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programación Java. Existe además un número importante de módulos para extenderlo. NetBeans IDE es un producto libre y gratuito sin restricciones de uso.
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).

Basic 4 Android
La plataforma Basic4Android es una de las grandes enemigas de Android Studio, que programa con el lenguaje VisualBasic, también rival de Java desde sus inicios. En este sentido, Basic4Android está especialmente indicado para aquello desarrolladores Android que empezamos a desarrollar apps en Android. La explicación la encontramos en que es un entorno más gráfico y menos abstracto, de manera que podemos ver los avances conforme programamos.
Mono para Android
Aunque Java sea el lenguaje nativo de Android, la gran fama de este sistema operativo ha conseguido que llegaran herramientas para programar apps en Android conociendo otros lenguajes de programación de apps. Los lenguajes que Microsoft para desarrollar apps C# y .NET han llegado también a Android. 

LiveCode
Imagina una plataforma en la que puedas desarrollar apps en Android, pero también en iOS, Linux, Windows, además de programar webs y para servidores desde una misma herramienta, desde LiveCode. Si ponemos como ejemplo que una aplicación que hemos decidido desarrollar en Android, pero que ahora queremos llevarla a Windows y a iOS para cubrir más mercado. Lo lógico es que pienses que debes contratar a un desarrollador para Windows y otro para iOS.

LiveCode
Imagina una plataforma en la que puedas desarrollar apps en Android, pero también en iOS, Linux, Windows, además de programar webs y para servidores desde una misma herramienta, desde LiveCode. Si ponemos como ejemplo que una aplicación que hemos decidido desarrollar en Android, pero que ahora queremos llevarla a Windows y a iOS para cubrir más mercado. Lo lógico es que pienses que debes contratar a un desarrollador para Windows y otro para iOS.
HTML5
Idóneo para los que habéis programado páginas web con anterioridad en HTML, podemos saber qué resultados tenemos capacidad de conseguir al programar apps en Android. Con HTML5 vamos más allá, este lenguaje supone un avance enorme especialmente a la hora de hacer aplicaciones web. Lo bueno de este lenguaje de programación de apps es que posee una gran versatilidad y que su contenido se adapta a muchísimas plataformas.

Ruboto
Si estas familiarizado con Ruby o JRuby, Ruboto una buena opción para aplicar todos esos conocimientos y aprovecharlos para programar en Android y crear una app para dispositivos que corran con ese sistema operativo. 

Rhomobile Rodes
En este caso nos centramos en frameworks que también corren con Ruby, como los que utilizamos con Ruboto. En este caso, Rhomobile Rodes permite crear aplicaciones multiplataformas. Una de las grandes ventajas es que nos permite incluir la utilización de hardwares integrados en el dispositivo móvil. 

Adobe Air
Antes que nada, cabe decir que Adobe Air es una aplicación con la que se crean programas de escritorio a partir de tecnologías de desarrollo de páginas web, como, HTML, Javascript o Flash. En sí no es una aplicación para programar en Android, pero sí que existe la posibilidad de utilizara con se propósito. 

















5.4 DESARROLLO DE APLICACIONES MÓVILES
Qué es el desarrollo de apps?
El desarrollo de aplicaciones móviles es el proceso en el que un software para realizar determinada tarea es desarrollado para dispositivos móviles. Estas aplicaciones pueden venir pre-instaladas en los teléfonos desde su manufactura, ser descargadas por los usuarios desde las distintas plataformas móviles (Android, iOS, Windows Phone), o ser accedidas a través de la web desde un navegador.

¿Qué es una aplicación móvil?

Una aplicación móvil es un programa de computadoras diseñado para utilizarse en teléfonos inteligentes, tablets y otros dispositivos móviles. Las aplicaciones móviles usualmente están disponibles a través de plataformas de distribución de aplicaciones, las cuáles empezaron a aparecer en el 2008 y son típicamente proporcionadas por el dueño del sistema operativo, tal como la App Store de Apple, Google Play, Tienda de Windows Phone y el App World de Black Berry. Algunas aplicaciones son gratuitas mientras otras deben ser compradas.
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
Atendiendo al propio Google, creador de Android, las características técnicas de este sistema operativo y que lo configuran son las siguientes:
Es un sistema operativo de Código abierto. Esto significa que puedes adaptarlo a tus necesidades. Existen pues muchos más desarrolladores y mucha más documentación para los profesionales.
Núcleo basado en el Kernel de Linux.
Adaptable a muchas pantallas y resoluciones. Excelente para poder adaptarse a la infinita cantidad de terminales que existen en el mercado.
Utiliza SQLite para el almacenamiento de datos.
Navegador web basado en WebKit incluido.
Soporte de HTML, HTML5, Adobe Flash Player, etc.
Incluye un emulador de dispositivos, herramientas para depuración de memoria y análisis del rendimiento del software.
Google Talk desde su versión HoneyComb, para realizar videollamadas.
Multitarea real de aplicaciones.

Terminales y dispositivos móviles
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.
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.
Las aplicaciones Android se ejecutan en un framework Java de aplicaciones orientadas a objetos sobre el núcleo de las bibliotecas de Java en una máquina virtual Dalvik con compilación en tiempo de ejecución.
Las bibliotecas escritas en lenguaje C incluyen un administrador de interfaz gráfica (surface manager), un framework OpenCore, una base de datos relacional SQLite, una Interfaz de programación de API gráfica OpenGL ES 2.0 3D, un motor de renderizado WebKit, un motor gráfico SGL, SSL y una biblioteca estándar de C Bionic. Aunque también existen otras opciones para programar apps para Android sin recurrir a Java y de las que ya hablamos en un artículo sobre programar apps sin Java.
Emulador Android: Es muy recomendable tener cerca un emulador Android si nos dedicamos al desarrollo de apps móviles para este sistema operativo. Con él podremos ir viendo los progresos que vamos haciendo en desarrollo, los errores, correcciones.

Desarrollo de aplicaciones móviles para iOS
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.
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:
Es un sistema operativo móvil de la multinacional Apple Inc.
iOS es una variante del Mac OS X, que es el sistema operativo para computadoras de la marca Apple y, al igual que él, está basado en Unix.
No permite la instalación de iOS en hardware de terceros.
Aunque sea un sistema operativo privado y exclusivo para sus dispositivos, Apple libera su SDK para que este pueda ser mejorado por desarrolladores de apps.
Multitarea real de aplicaciones.
Es necesarios hacer Jailbreak para poder instalar aplicaciones de terceros
Las versiones anteriores a iOS 8 no permiten el uso de la Plataforma Java y Adobe Flash. En cambio iOS usa HTML5 como una alternativa a Flash. No obstante a partir de iOS 8 ya se permite el uso de Adobe Flash, pero los usuarios de un iPhone, iPod Touch o iPad con una versión anterior a iOS 8 se quedan fuera de esta actualización. Debes tenerlo en cuenta para los casos de desarrollo de apps para iOS

 

Terminales y dispositivos móviles

Solamente los dispositivos móviles de Apple pueden ejecutar el sistema operativo iOS. Entre ellos se encuentran el iPhone, el iPad y las distintas versiones de iPod.
·         iPhone 4, 5, 6, etc.
·         iPad, iPad Mini
·         iPod nano, iPod shuffle

Herramientas necesarias

El Kit de desarrollo de software o SDK está disponible para terceros y desarrolladores desde marzo del 2008, permitiendo así a los desarrolladores hacer aplicaciones para el iPhone y iPod Touch, así como probarlas en el iPhone simulator» Aunque solo es posible utilizar el app en los dispositivos después de pagar la cuota del iPhone Developer Program.
Xcode es el programa utilizado en el iPhone SDK. Estas aplicaciones, como las de Mac OS X, están escritas en Objective-C.
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.











5.5: ASPECTOS DE SEGURIDAD

La seguridad en el desarrollo de aplicaciones móviles y la protección de datos debe ser uno de los elementos más importante de los profesionales que buscan el crecimiento a largo plazo y la consolidación de su trabajo en esta industria. Mientras que el mundo móvil experimenta un crecimiento espectacular, se expone a importantes problemas de seguridad.

En la era de la tecnología móvil, la seguridad se ha convertido en un aspecto a tener en cuenta cuando navegamos por internet o nos bajamos aplicaciones de las tiendas de Google, Apple o Amazon mediante un dispositivo móvil o tablet.
Por ello, es importante minimizar los riesgos de seguridad para proteger la información confidencial en nuestros dispositivos, tanto si nos conectamos para uso personal o hacemos uso de nuestros dispositivos para el trabajo diario.
Plataformas

Actualmente, Android e iOS son las plataformas con más usuarios, cada una con una filosofía distinta. Android es open source, mientras que iOS es una plataforma más cerrada donde Apple ejerce un mayor control de las aplicaciones que se suben, donde cada aplicación se revisa manualmente antes de ser publicada. En el caso de las aplicaciones Android, recientemente Google ha anunciado que probará manualmente todas las aplicaciones antes de ponerlas a disposición de los usuarios.
El malware es una aplicación de software que tiene un objetivo malicioso en el dispositivo móvil donde se instala y se ejecuta sin el consentimiento del usuario. Puede tener objetivos muy variados, siendo los más comunes obtener datos personales y beneficio económico, por ejemplo mediante la suscripción a un servicio SMS premium. Su modo de funcionamiento suele ser automático en modo background y controlado de forma remota desde un servidor, de forma transparente para el usuario
Para evitar este tipo de programas, sería recomendable tener instalado al menos un antivirus y una herramienta para la detección de malware. Además, sería recomendable seguir las siguientes recomendaciones:
·         Instalar aplicaciones sólo de orígenes conocidos.
·         Comprobar los permisos antes de instalar/actualizar, especialmente en Android.
·         Revisar los comentarios de los usuarios y verificar el desarrollador.
·          




Almacenamiento inseguro de datos

·        

Los desarrolladores son responsables de proteger los datos de las personas que utilizan sus aplicaciones. Se recomienda que los datos no se almacenen durante mucho tiempo y sean anónimos siempre que sea posible, de lo contrario podrán acabar generando problemas.

Si tu almacenamiento de datos no es seguro, los datos confidenciales como contraseñas y números de tarjetas de crédito pueden ser vulnerables a los hacks debido a la falta de conocimiento del comportamiento del dispositivo, la sincronización sin protección de datos confidenciales en la nube o los datos almacenados en lugares inseguros, como en una tarjeta SD.

En este sentido y para mantener la seguridad, desarrolla tu aplicación de tal manera que no almacene ninguna información crítica directamente en el dispositivo. Si es necesario almacenarla, deberá hacerse de forma segura.

Controles frágiles en el servidor


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.

Fuga de datos involuntaria



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.

Códigos fuente desconocidos




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. 

Comentarios

Entradas populares