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
http://www.innovaportal.com/innovaportal/v/696/1/innova.front/apps-hibridas-vs-nativas-vs-generadas-que-decision-tomarhttp://www.mailxmail.com/curso-
Comentarios
Publicar un comentario