PROGRAMACIÓN DE APLICACIONES MÓVILES







I. Tema: PROGRAMACIÓN DE APLICACIONES MÓVILES

1.   Contenido

1.1.      Introducción
El conocimiento de programación de aplicaciones para móviles ha pasado de manera muy rápida de ser un conocimiento más, a ser una necesitad debido a la rápida implantación y evolución de las plataformas móviles.
Esta rápida evolución crea incertidumbre sobre que tecnologías son las más adecuadas para la programación de móviles. Una de las arquitecturas más implantada es la proporcionada por el sistema Android.
Este curso será una introducción a la programación de sistemas Android pero también se hará énfasis, en plataformas de desarrollo multi-plataforma. Para poder dar herramientas de decisión sobre cómo sería necesario programar un cierto tipo de aplicaciones.
El objetivo principal de esta acción formativa es el aprendizaje del desarrollo de aplicaciones Android y la interacción con los recursos del teléfono móvil.
Se realizará una introducción inicial de todo el conjunto de tecnologías que forman Android y el análisis de cada uno de sus componentes de forma separada y cómo interactúan entre ellos para desarrollar aplicaciones.
Se requieren conocimientos básicos de programación y Java, así como tener nociones de Android desde un punto de vista de desarrollador.

1.2.      Desarrollo (Nativo, Multiplataforma compilado en nativo y Multiplataforma basado en HTML5 e Hibrido)

1.2.1.Desarrollo Nativo
Las aplicaciones nativas se denominan así porque se desarrollan en el lenguaje nativo del propio terminal. Dependiendo de la plataforma para la que queramos nuestra aplicación, desarrollaremos en un lenguaje específico para la misma. Por ejemplo, para desarrollar en Android se utiliza Java, en iOS Objective C, y ahora también el nuevo Swift, y en Windows Phone se usa C# y  Visual Basic. NET..
Estas aplicaciones se alimentarán de los recursos del propio smartphone, teniendo acceso a diferentes características como la cámara, el GPS, entre otras. Además de esto, tienen muchas ventajas ya que, al estar diseñadas directamente para el software del terminal, tendrán un rendimiento optimizado, así como una interfaz mucho más adaptada al sistema operativo al cual el usuario está acostumbrado. Es por esto que son las favoritas del mercado debido a que ofrecen resultados más potentes en cuanto a diseño, usabilidad y eficiencia se refiere. Su distribución se hace a través de los market places oficiales de cada sistema operativo, lo que garantiza una visibilidad y seguridad plena.
1.2.2.Multiplataforma compilado en nativo
El desarrollo de aplicaciones multiplataforma implica reducir costes y tiempo de desarrollo. En contrapartida la experiencia del usuario es mucho más discreta en relación a una app nativa, además de no poder aprovechar las apis nativas en su completitud.
Uno de los frameworks de desarrollo multiplataforma más conocidos, además de PhoneGap que estudiaremos en el apartado de desarrollo híbrido, es sin duda Titanium Appcelerator, un framework muy potente donde el lenguaje de programación utilizado es un Javascript adaptado.
La curva de aprendizaje de este tipos de frameworks de desarrollos es menor que el de desarrollos nativos y aunque como hemos comentado la experiencia del usuario es sensiblemente menor que con una app nativa, el resultado es muy profesional y muchos clientes quedan más que satisfechos con este tipo de solución.
También este tipo de soluciones es muy utilizado para implementar proyectos que en principio son muy buenas ideas pero que se desconoce si recalarán finalmente en el mercado. De esta manera se reducen muchos costes, ya que no requiere de la inversión de programar una app completamente nativa y se puede tener una aproximación a corto plazo de si el proyecto “funcionará” o no.

1.2.3.Desarrollo multiplataforma basado en HTML5

Es mucho más fácil y eficaz usar herramientas de desarrollo HTML5 para aplicaciones móviles multiplataforma. La clave es que la aplicación tenga las funcionalidades adecuadas para que la experiencia del usuario sea perfecta. En segundo lugar, la aplicación debe tener la capacidad intrínseca de funcionar en los nuevos dispositivos que se suman continuamente al mercado.

Con HTML5 los desarrolladores pueden crear aplicaciones basadas en la web ejecutable desde cualquier dispositivo móvil a través del navegador web del propio terminal.
La gran ventaja de las aplicaciones web es que requieren de menos inversión inicial, debido a que la mayor parte del desarrollo no se debe repetir para cada sistema operativo. A esto hay que sumar que es más fácil encontrar  programadores de HTML5 que profesionales que desarrollen aplicaciones nativas.
Los defensores de HTML5 creen que la calidad de las aplicaciones es comparable con la de una aplicación nativa. Además, es más fácil obtener beneficios económicos y realizar cambios en la aplicación, ya que no hace falta comprar la app en una tienda de aplicaciones (Google Play, App Store…)
Algunos de los argumentos en contra del HTML5 son el rendimiento, la incomodidad de ir a una URL en lugar de descargar una aplicación, y la falta de incompatibilidad con los navegadores (no todos los navegadores para móviles son compatibles con el mismo subconjunto de características).

HTML5, que es un lenguaje de marcado, tiene varias funcionalidades que le permiten ejecutarse en dispositivos diseñados específicamente para que consuman menos electricidad. Por ejemplo, las laptops, los Smartphone y las tabletas tienen procesadores que consumen considerablemente menos energía que los equipos de escritorio. Es el lenguaje de marcado preferido en la actualidad para estructurar y presentar contenido en la Internet.


1.2.4.Desarrollo Hibrido
Las aplicaciones híbridas combinan tecnología de las apps nativas y las aplicaciones web. 
Son aplicaciones escritas en HTML, JavaScript y CSS pero que utilizan un contenedor nativo creado con herramientas de desarrollo multiplataforma, como PhoneGap.
Este tipo de desarrollo genera una aplicación como tal, descargable desde las tiendas de aplicaciones.

Ventajas:
·         Son fáciles de desarrollar. No hay problemas para encontrar un desarrollador de aplicaciones
·         La base de código se puede usar para diferentes plataformas móviles
·         El precio del desarrollo es asequible

Desventajas:
·         Aplicaciones móviles nativas siempre van a ofrecer una mejor experiencia de usuario
·         Los navegadores de las diferentes plataformas no soportan de manera uniforme todas las últimas características de HTML. Por otro lado, las API pueden convertir el desarrollo de la aplicación en un desafío


1.3.      Lenguajes de Programación para Aplicaciones Móviles (Java, Swift, Ruby, Visual Basic .NET, etc.)

1.3.1.Java
El lenguaje de programación Java es uno de los lenguajes más preferidos cuando se trata del desarrollo de aplicaciones de Android. Un lenguaje de programación orientado a objetos desarrollado en Sun Microsystems (ahora propiedad de Oracle), Java se puede ejecutar de dos maneras diferentes: ya sea en una ventana del navegador o en una máquina virtual que puede prescindir de un navegador.
Esta flexibilidad tiende a significar mucho cuando se trata de volver a usar el código y actualizar el software. Aunque Java no tiene mucho que hacer si está considerando el desarrollo de iOS, ciertamente puede estar en su lista elegida cuando se trata de aplicaciones móviles en todas las plataformas, es decir, aplicaciones multiplataforma.
1.3.2.Swift
Swift es un lenguaje rápido y eficiente que proporciona información en tiempo real y puede incorporarse fácilmente al código de Objective-C existente. Así, los desarrolladores no sólo pueden programar de una forma más segura y confiable, sino también ahorrar tiempo y enriquecer la experiencia con las apps.
Diseñado para eliminar la posibilidad de muchas de las vulnerabilidades de seguridad posibles con Objective-C, es hora de que los desarrolladores de aplicaciones móviles recurran a Swift, ya que muchas empresas buscan contratar desarrolladores de Swift con experiencia en el desarrollo de aplicaciones móviles de vanguardia que utilicen este lenguaje.

1.3.3.    Ruby
Un lenguaje de programación dinámico y de código abierto enfocado en la simplicidad y productividad.Ante todo, se usa para crear webs. Es un lenguaje de alto nivel, es decir, su expresión está adaptada a la capacidad cognitiva humana, en lugar de la capacidad ejecutora de las máquinas. Su creador, Yukihiro Matsumoto, pensó sobre todo en que las personas pudieran ser productivas y divertirse mientras escribían código.

1.3.4.Visual Basic .NET
Te ayuda a crear aplicaciones móviles, escritorio y web que se ejecuta en sistemas operativos, dispositivos y servidores, y se incluye en Visual Studio.
Este lenguaje de Microsoft se ha caracterizado por ser de excelencia a la hora de adentrarnos en la programación Orientada a Objetos, por ello, en este articulo te mostraremos como empezar a programar en Visual Basic .NET de una forma explícita y sencilla, para que tu curva de aprendizaje sea rápida y puedas dominar este lenguaje e iniciar en el mundo de la programación.
Para empezar a programar con este lenguaje, es de suma importancia contar con un IDE (entorno de desarrollo integrado o en sus siglas en inglés, Integrated Development Environment), este programa le proporciona a los desarrolladores, diversas herramientas que facilitan el proceso de la creación de nuestro software.

2.   Resumen
Desarrollo de aplicaciones Como futuros desarrolladores, nos propondremos encontrar distintas soluciones posibles para resolver una situación mediante la confección de aplicaciones informáticas. En los siguientes párrafos, vamos a conocer el significado del desarrollo de aplicaciones, y la utilidad que nos ofrecen sus diferentes técnicas y herramientas. En el mundo actual, todos los días nos encontramos con distintos desarrollos de aplicaciones, como, por ejemplo, el programa que controla nuestro teléfono móvil. A su vez, contamos con programas que, en tiempo real, nos permiten traducir diferentes idiomas, conectarnos a Internet, jugar, llevar un listado de lo que compramos en el supermercado registrando su código de barras y estimando el costo total, y muchas alternativas más. Podemos notar que algunas aplicaciones son más básicas, y otras, más complejas. Si bien es posible considerar el teléfono móvil como un aparato complejo, el desarrollo de aplicaciones también impacta en otros elementos de uso cotidiano, tales como las heladeras inteligentes, el programa del microondas, las alarmas, y otros. El mundo en su totalidad se rige por programas desarrollados mediante algún lenguaje de programación. Todos los elementos electrónicos, en menor o mayor grado, contienen aplicaciones específicas para cumplir su misión. Una definición que podemos encontrar en primera instancia sobre el desarrollo de una aplicación es: confeccionar, probar y buscar errores de un programa informático. Dicho programa va a soluciona una situación o problema comúnmente llamado “modelo de negocio”, que A medida que la tecnología avanza, vamos incorporado “inteligencia” en distintos dispositivos. Es así que algunas marcas conocidas fabrican heladeras, aspiradoras, lavadoras y secarropas que incluyen comuni- cación por medio de WiFi, y otras, incluso, tienen cámaras. Todo esto permite que el usuario controle el dispositivo por medio de un software instalado en su dispositivo móvil.

3.   Summary
Development of applications As future developers, we will propose to find different possible solutions to solve a situation by making computer applications. In the following paragraphs, we will know the meaning of application development, and the usefulness of its different techniques and tools. In today's world, every day we find different application developments, such as, for example, the program that controls our mobile phone. At the same time, we have programs that, in real time, allow us to translate different languages, connect to the Internet, play games, keep a list of what we buy in the supermarket registering your barcode and estimating the total cost, and many more alternatives . We can notice that some applications are more basic, and others, more complex. While it is possible to consider the mobile phone as a complex device, the development of applications also impacts on other elements of daily use, such as smart refrigerators, the microwave program, alarms, and others. The world as a whole is governed by programs developed through a programming language. All electronic elements, to a lesser or greater degree, contain specific applications to fulfill their mission. A definition that we can find in the first instance about the development of an application is: make, test and look for errors of a computer program. Said program goes to solve a situation or problem commonly called "business model", that As the technology advances, we are incorporated "intelligence" in different devices. Thus, some well-known brands manufacture refrigerators, vacuum cleaners, washing machines and dryers that include communication through WiFi, and others even have cameras. All this allows the user to control the device through software installed on their mobile device.

4. Recomendaciones
·        Recomendamos que actualmente ya existe una amplia oferta de dispositivos móviles en el mercado y los fabricantes distribuyen nuevos modelos constantemente. Como resultado de esta gran variedad de dispositivos, se deben afrontar el problemas cada vez que se desarrolla una aplicación Web móvil.

·        Recomendamos por lo tanto las soluciones móviles están mostrando sus beneficios para la gestión de las empresas en la mejora de la productividad, en la creación de nuevos servicios. Desarrollo de Aplicaciones móviles permiten estar a la vanguardia en comunicaciones y sistemas de información

5. Conclusiones
·        Las tecnologías para la programación de aplicaciones para dispositivos móviles, en su grado de desarrollo actual, permiten emplear metodologías semejantes a las aplicadas en el desarrollo de aplicaciones de computadoras de escritorio, es decir, con todas sus etapas desde los requerimientos hasta el diseño, pasando por análisis y pruebas; no haciéndose necesario el aprendizaje de nuevas metodologías.

·        J2ME es un lenguaje muy adecuado para programar aplicaciones para dispositivos móviles, sin embargo, algunas especificaciones de los perfiles no son restrictivas, lo que puede derivar en problemas de portabilidad.

·        Las bases de datos basadas en Java permiten mayor flexibilidad cuando se emplea J2ME, como es el caso de PointBase.

6. Apreciación del Equipo
o   La mayoría de esta programación de aplicaciones móviles cuentan con un sistema operativo de mayor o menor complejidad, que permita realizar las tareas de gestión de memoria y control de hardware que precisan. En el caso de los ordenadores portátiles, con tanta o incluso mayor capacidad que los de sobremesa, los sistemas operativos habituales son perfectamente compatibles y funcionan sin diferencias. Sin embargo, en otros dispositivos móviles es preciso diseñar nuevos sistemas operativos adaptados específicamente a sus características: restricciones de memoria y procesamiento, consumo mínimo de energía o gran estabilidad en su funcionamiento, entre otros.

7. Glosario de Términos

HSPA
Acceso de Paquete de Alta Velocidad es una tecnología para teléfonos móviles que mejora la velocidad a la que usted puede enviar y recibir información en su dispositivo móvil. La tecnología HSPA se utiliza en redes 3G.

HSUPA
El Acceso de Paquete de Datos de Carga de Alta Velocidad es una tecnología para teléfonos móviles que mejora el uso del ancho de banda de subida en redes 3G. Las redes que utilizan la tecnología HSUPA junto con HSDPA (Acceso de Paquete de Datos de Descarga de Alta Velocidad) son frecuentemente llamadas 3.5G debido a las velocidades mejoradas.

HTC Corporation

HTC Corporation (TSEC: 2498), anteriormente High Tech Computer Corporation, es un fabricante de Taiwán de dispositivos portátiles basados en Microsoft Windows Mobile y Google Android.
Fue fundada el 15 de mayo de 1997 como una Original Design Manufacturer (ODM). Hoy en día, HTC ofrece sus propios productos con la marca de HTC, así como apoyando sus productos de marca de operador y sus aliados de fabricante de equipos originales (OEM). HTC también es propietaria de Dopod como una empresa filial.
En junio de 2006, decidió lanzar su propia marca, bajo la que ha continuado fabricando dispositivos basados en Windows Mobile y Android de gran éxito.

HVGA
La Formación de Gráficos de Vídeo en Tamaño-Medio se refiere a la resolución de pantalla de 480 x 320 pixeles.

iFreeTable
El iFreeTablet es un Tablet PC en el que se integra un PC de bajo coste con conexión TV, lo que le permite convertirse en un set-top-box y en un sistema de control de otros dispositivos y electrodomésticos que soporten la tecnología digital.
El iFreeTablet es un proyecto sin ánimo de lucro promovido por el grupo de investigación EATCO de la Universidad de Córdoba (España), la Fundación Red Especial España (FREE) y la Asociación de Entidades de Tecnología de Apoyo para la Autonomía Personal (AETAP) en colaboración con las empresas de base tecnológica CPMTI S.L. y CIMA S.L. (Centro de Innovación Multimedia y Animación).
Con iFreeTablet, la interacción Persona-PC/TV se realiza de forma multimodal y ubicua a través de una pantalla táctil, una cámara web, un sistema de reconocimiento de voz, movimientos y gestos, y un sistema RFID o un mando remoto (Sistema de Interacción Natural, iFreeSIN), que permitirán hacer desaparecer dispositivos inaccesibles o de alto coste como ratones, teclados o mandos especiales.

IMAP4
El Protocolo de Acceso a Mensajes de Internet es un protocolo de recuperación de mensajes de correo electrónico. Permite una operación eficiente como el descargar solo los datos esenciales reciperando primero el encabezado del correo electrónico antes de descargar realmente el correo.

iOS (sistema operativo)
iOS (anteriormente denominado iPhone OS) es un sistema operativo móvil de Apple desarrollado originalmente para el iPhone, siendo después usado en el iPod Touch e iPad. Es un derivado de Mac OS X, que a su vez está basado en Darwin BSD. iOS tiene 4 capas de abstracción: la capa del núcleo del sistema operativo, la capa de "Servicios Principales", la capa de "Medios de comunicación" y la capa de "Cocoa Touch". Todo el sistema se encuentra en la partición "/root" del dispositivo, ocupa poco menos de 500 megabytes.

IP
El Protocolo de Internet es un protocolo de comunicación que utiliza una técnica de intercambio-de-paquetes para transmitir datos sobre la Internet.

8. Bibliografía o Linkografía



Comentarios

Entradas populares de este blog

Android Studio