SlideShare una empresa de Scribd logo
1 de 17
UNIVERSIDAD NACIONAL
TORIBIO RODRÍGUEZ DE MENDOZA
DE AMAZONAS
FACULTAD DE INGENIERÍA DE SISTEMAS Y MECÁNICA ELÉCTRICA
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS
TEMA:
Programación de Aplicaciones Móviles
PROFESOR:
Marco Aurelio Porro Chulli
INTEGRANTES:
Suarez Chavez Jhonathan Noe
Salinas Ponce Natalio Oswaldo
CICLO:
VII
BAGUA – PERÚ
2017
Introducción
Los grandes avances en la ciencia y la tecnología han contribuido a la
evolución de los sistemas computarizados, los dispositivos electrónicos
se vuelven cada vez más pequeños y con mayores capacidades a la vez
que su costo disminuye, volviéndose asequibles para la mayoría de la
población. Hoy en día existen dispositivos dotados de capacidades de
procesamiento de datos que caben en la palma de la mano, mismos que
son conocidos como dispositivos móviles. Entre estos dispositivos se
destacan los PDA (ayudante personal digital por sus siglas en inglés) y
los SmartPhones.
Los dispositivos móviles constituyen poderosas herramientas, que
aunadas con recurso humano calificado permiten lograr eficiencia y
efectividad en las actividades de cualquier tipo de organización, ya que
tienden a reducir el tiempo y esfuerzo en la captura de datos lo que
finalmente se traduce en reducción de costos.
1.2. Desarrollo (Nativo, Multiplataforma compilado en nativo y Multiplatforma
basado en HTMLS)
DESARROLLO NATIVO
Está claro que, siempre que puedas, el desarrollo nativo es la mejor
gran opción.
El problema es que cada plataforma (iOS, Android, WP...) es un
mundo. Cada una de ellas utiliza un lenguaje de programación
diferente, herramientas propias y paradigmas de programación
particulares. A cambio obtienes la máxima flexibilidad, adaptación
total al entorno en el que se ejecuta la aplicación y el máximo
rendimiento.
La desventaja principal es que tienes que dominar muchos
lenguajes y herramientas y que el tiempo de desarrollo se multiplica
mucho, pues es necesario crear desde cero tres versiones diferentes
de la misma aplicación (una para cada plataforma).
Por regla general los programadores se especializan y eligen una
única plataforma, de modo que puedan dar lo mejor de si mismos en
ésta.
DESARROLLO MULTIPLATAFORMA COMPILADO A NATIVO
Una opción de compromiso es utilizar alguna plataforma de
desarrollo mixta que independiza el desarrollo del lenguaje
nativo de cada plataforma móvil.
Con este tipo de herramientas se utiliza un único lenguaje y
se crean aplicaciones para todas las plataformas, eso sí,
adaptando algunas cuestiones para poder funcionar en cada
caso. Lo bueno es que te permite conocer un solo
lenguaje, reutilizar gran parte del código entre todas, y
generar aplicaciones nativas para todos los entornos móviles.
La más conocida es, sin duda, Xamarin. Está basada en el
lenguaje C# de Microsoft y en la plataforma .NET, y gracias a
sus herramientas permite crear aplicaciones para todas las
plataformas, reutilizando gran parte del código (a excepción
de la interfaz).
DESARROLLO MULTIPLATAFORMA BASADO EN HTML5
Una opción muy popular, sobre todo si eres un programador Web, es
utilizar alguna herramienta basada en HTML que genere aplicaciones para
todas las plataformas. Existen muchas, pero la más conocida
es PhoneGap/Apache Cordova.
Las apps escritas en HTML5 y compiladas con PhoneGap, permiten crear la
interfaz usando HTML, CSS y JavaScript, lenguajes muy conocidos y
utilizados, y desplegar a las diferentes plataformas. En cada una además
podemos utilizar un “skin” concreto para que el aspecto sea lo más similar
posible al de las aplicaciones nativas. PhoneGap y similares crean un
contenedor para la aplicación que la ejecuta como si estuviesen en un
servidor web local. Además exponen gran parte de la funcionalidad nativa
del dispositivo móvil a través de librerías JavaScript, de modo que es muy
sencillo “engancharse” desde la aplicación HTML5 que estamos creando.
Entre las desventajas principales están que las aplicaciones no tiene el
mismo rendimiento que una app nativa, ni tampoco te dan acceso a todas
las APIs nativas de cada plataforma. aunque sí a todas las importantes.
Lenguajes de programación para aplicaciones móviles.
JAVA
Java lleva más de 20 años mostrando su potencial a la
comunidad de desarrolladores. Tanto es así, que se estima que
en el mundo al menos nueve millones de programadores confían
en Java como su lenguaje principal.
Si hablamos de Java es principalmente porque es la base sobre
la que se construyen todas las Apps para Android. Es cierto que
el Java que se usa para Android no es exactamente el mismo,
pero se diferencia muy poco del Java original. Por lo que, si
estás interesado en desarrollar aplicaciones para el sistema
operativo de Google, aprender Java es un paso que sí o sí,
tienes que dar.
SWIFT
Desde su primera versión, las Apps para iOS han sido
desarrolladas en Objetive C. Sin embargo en un intento
de simplificar el desarrollo de aplicaciones para los
dispositivos de Apple y facilitar la curva de aprendizaje,
en 2014 la empresa de Cupertino presentó Swift, su
propio lenguaje de programación.
Su principal ventaja por supuesto es que está
específicamente orientado para el desarrollo de
aplicaciones tanto en iOS como en Mac OS X , lo cual
redunda en más sencillez a la hora de programar y un
mayor grado de optimización para las plataformas en las
que se va a ejecutar.
HTML5 + Javascript
HTML es un lenguaje de marcado para la elaboración
de páginas web. No se puede en este sentido, utilizarlo
para el desarrollo de aplicaciones, pero cuando se
combina HTML5 (su última iteración) con Javascript,
obtenemos algo muy similar a un lenguaje de
programación, viable tanto para crear web apps como
aplicaciones móviles.
El desarrollo de apps en HTML5 puede ser interesante
ya que simplifica la carga de trabajo. Sólo tenemos que
desarrollar una App para después “empaquetarla” para
los distintos sistemas operativos: iOS, Android,
escritorio, etc. Se reducen así los tiempos de desarrollo
y los costes de mantenimiento.
RUBY
Ruby es un lenguaje de programación dinámico, reflexivo,
orientado a objetos y de uso general. Es compatible con
múltiples paradigmas de programación, incluyendo el
funcional, el orientado a objetos y el imperativo. También
cuenta con un sistema de tipo dinámico y una
administración de memoria automática.
Hay una pequeña diferencia entre los editores y los
entornos de desarrollo (IDE). Un editor es una herramienta
para añadir, editar y visualizar el contenido de un archivo.
Por otro lado, un IDE o entorno de desarrollo integrado, es
un conjunto de herramientas más o menos centradas en
una tarea común, tales como el desarrollo de Ruby, y
todos incluyen algún tipo de un editor.
Aptana Studio
Aptana Studio 3 es una herramienta de desarrollo de código
abierto para programadores que tengan experiencia en Ruby.
Permite a los desarrolladores probar sus aplicaciones web usando
un único entorno. Aptana soporta las últimas tecnologías para
navegadores con HTML5, CSS3, JavaScript, Ruby, Rails, PHP y
Python. Incluye varias características como la integración de
archivos GIF, HTML, CSS y Javascript, un depurador integrado, así
como múltiples opciones para llevar a cabo la personalización del
IDE. Contempla múltiples protocolos como FTP, SFTP, FTPS y
Capistrano. Cuenta con la capacidad para publicar
automáticamente tus aplicaciones Ruby & Rails a servicios de
alojamiento como Heroku y Engine Yard
NetBeans
NetBeans es un IDE de código abierto y una plataforma que
ayuda a los desarrolladores a implementar rápidamente
páginas web, aplicaciones de escritorio y aplicaciones para
dispositivos móviles. Suspendieron el soporte a Ruby en
2011, debido a que Oracle introdujo un nuevo kit de Java
Dev, pero lo trajeron de vuelta otra vez para el disfrute y
gozo de todos los programadores que utilizamos este
lenguaje y nos chifla este IDE. En realidad, Net Beans está
pensado para desarrollar en Java, aunque también es
compatible con JavaFX, PHP, JavaScript, Ruby & Ruby on
Rails, Groovy and Grails y C / C ++.
VISUAL BASIC.NET
Visual Basic (VB) es un lenguaje de
programación dirigido por eventos, desarrollado
por Alan Cooper para Microsoft. Este lenguaje de
programación es un dialecto de BASIC, con importantes
agregados. Su primera versión fue presentada en 1991,
con la intención de simplificar la programación
utilizando un ambiente de desarrollo que facilitó en
cierta medida la programación misma.
Visual Basic contiene un entorno de desarrollo
integrado o IDE que integra editor de textos para
edición del código fuente, un depurador,
un compilador (y enlazador) y un editor de interfaces
gráficas o GUI.
Resumen
Los dispositivos móviles constituyen cada vez más una realidad que
ofrece al usuario, en un mismo y reducido aparato, funciones de
comunicación y procesamiento de datos que van mucho más allá de
las simples llamadas telefónicas o la ejecución de aplicaciones
básicas. El gigante de Internet Google ha presentado un nuevo
sistema operativo para este tipo de dispositivos, Android, que busca ser
una firme alternativa a otros sistemas ya ampliamente extendidos como
Symbian o Windows Mobile.
El presente proyecto busca conocer y comprender las
características y el funcionamiento de este nuevo sistema
operativo, averiguando sus posibilidades y ventajas frente a otras
alternativas. Además, abarca el desarrollo completo de una aplicación
de nombre ContactMap, que permite localizar a los contactos
mediante mapas y con la que se busca ilustrar de forma práctica la
construcción y naturaleza de las aplicaciones para Android.
Recomendaciones
Las aplicaciones móviles son programas de software diseñadas para
utilizarse en teléfonos inteligentes, tabletas y otros dispositivos
móviles. Su cadena de valor está integrada por desarrolladores,
publicadores, propietarios de las plataformas, empresas de
telecomunicaciones y dispositivos móviles, inversionistas y usuarios
finales.
El ecosistema que rodea a los dispositivos móviles, ha permitido
que miles de desarrolladores utilicen la plataforma para la
realización de aplicaciones que aprovechen la movilidad y los
beneficios tecnológicos como la pantalla capacitiva, grabación de
video y servicios de localización. Sin embargo, para ello se requiere
también potenciar la cobertura y eficiencia de las redes móviles
que soporten el tráfico de datos a través de tecnologías 3G y 4G.
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.
Apreciación del Equipo
La mayoría de estos aparatos 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.
Apreciación del Equipo
La mayoría de estos aparatos 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.

Más contenido relacionado

La actualidad más candente

Programación de Aplicaciones Móviles
Programación de Aplicaciones MóvilesProgramación de Aplicaciones Móviles
Programación de Aplicaciones MóvilesGuadalupe Piedra Olano
 
Herramientas de colaboración digital(3er gye tech)
Herramientas de colaboración digital(3er gye tech)Herramientas de colaboración digital(3er gye tech)
Herramientas de colaboración digital(3er gye tech)Adolfo Monar
 
My programming language 04 05-2014
My programming language 04 05-2014My programming language 04 05-2014
My programming language 04 05-2014Neptuno Networks
 
Programación de Aplicaciones Móviles
Programación de Aplicaciones MóvilesProgramación de Aplicaciones Móviles
Programación de Aplicaciones Móvilesjhersi saavedra garcia
 
PROGRAMACIÓN DE DISPOSITIVOS MÓVILES
PROGRAMACIÓN DE DISPOSITIVOS MÓVILESPROGRAMACIÓN DE DISPOSITIVOS MÓVILES
PROGRAMACIÓN DE DISPOSITIVOS MÓVILESFaber Orozco
 
Programación multimedia y dispositivos móviles
Programación multimedia y dispositivos móvilesProgramación multimedia y dispositivos móviles
Programación multimedia y dispositivos móvilesAnuska González
 
Entornos de desarrollo para móviles
Entornos de desarrollo para móvilesEntornos de desarrollo para móviles
Entornos de desarrollo para móvilesangelo4037
 
Desarrollo de aplicaciones moviles
Desarrollo de aplicaciones movilesDesarrollo de aplicaciones moviles
Desarrollo de aplicaciones movilesRoberto Perales
 
Frameworks y herramientas para la web del futuro
Frameworks y herramientas para la web del futuroFrameworks y herramientas para la web del futuro
Frameworks y herramientas para la web del futuroBBVA API Market
 
Visual basic apesteguia
Visual basic apesteguiaVisual basic apesteguia
Visual basic apesteguiatonytenorio2
 
Programación de Aplicaciones Móviles
Programación de Aplicaciones MóvilesProgramación de Aplicaciones Móviles
Programación de Aplicaciones MóvilesGuadalupe Piedra Olano
 
Usos y tipos_de_aplicaciones_moviles
Usos y tipos_de_aplicaciones_movilesUsos y tipos_de_aplicaciones_moviles
Usos y tipos_de_aplicaciones_movilesKatherine Guerra
 
Modulo ii aplicaciones bajo software libre
Modulo ii aplicaciones bajo software libreModulo ii aplicaciones bajo software libre
Modulo ii aplicaciones bajo software libreMarialix Quintero
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaangelisse6
 

La actualidad más candente (19)

Programación de Aplicaciones Móviles
Programación de Aplicaciones MóvilesProgramación de Aplicaciones Móviles
Programación de Aplicaciones Móviles
 
Herramientas de colaboración digital(3er gye tech)
Herramientas de colaboración digital(3er gye tech)Herramientas de colaboración digital(3er gye tech)
Herramientas de colaboración digital(3er gye tech)
 
Desarrollo aplicaciones Móviles
Desarrollo aplicaciones Móviles Desarrollo aplicaciones Móviles
Desarrollo aplicaciones Móviles
 
My programming language 04 05-2014
My programming language 04 05-2014My programming language 04 05-2014
My programming language 04 05-2014
 
Programación de Aplicaciones Móviles
Programación de Aplicaciones MóvilesProgramación de Aplicaciones Móviles
Programación de Aplicaciones Móviles
 
PROGRAMACIÓN DE DISPOSITIVOS MÓVILES
PROGRAMACIÓN DE DISPOSITIVOS MÓVILESPROGRAMACIÓN DE DISPOSITIVOS MÓVILES
PROGRAMACIÓN DE DISPOSITIVOS MÓVILES
 
Programacion de aplicaciones moviles
Programacion de aplicaciones movilesProgramacion de aplicaciones moviles
Programacion de aplicaciones moviles
 
Programación multimedia y dispositivos móviles
Programación multimedia y dispositivos móvilesProgramación multimedia y dispositivos móviles
Programación multimedia y dispositivos móviles
 
Entornos de desarrollo para móviles
Entornos de desarrollo para móvilesEntornos de desarrollo para móviles
Entornos de desarrollo para móviles
 
Trabajo 6
Trabajo 6Trabajo 6
Trabajo 6
 
Clase2
Clase2Clase2
Clase2
 
Desarrollo de aplicaciones moviles
Desarrollo de aplicaciones movilesDesarrollo de aplicaciones moviles
Desarrollo de aplicaciones moviles
 
Frameworks y herramientas para la web del futuro
Frameworks y herramientas para la web del futuroFrameworks y herramientas para la web del futuro
Frameworks y herramientas para la web del futuro
 
Delphi apesteguia
Delphi apesteguiaDelphi apesteguia
Delphi apesteguia
 
Visual basic apesteguia
Visual basic apesteguiaVisual basic apesteguia
Visual basic apesteguia
 
Programación de Aplicaciones Móviles
Programación de Aplicaciones MóvilesProgramación de Aplicaciones Móviles
Programación de Aplicaciones Móviles
 
Usos y tipos_de_aplicaciones_moviles
Usos y tipos_de_aplicaciones_movilesUsos y tipos_de_aplicaciones_moviles
Usos y tipos_de_aplicaciones_moviles
 
Modulo ii aplicaciones bajo software libre
Modulo ii aplicaciones bajo software libreModulo ii aplicaciones bajo software libre
Modulo ii aplicaciones bajo software libre
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
 

Similar a Programación Aplicaciones Móviles UNASAM

Diapositivas de desarrollo de programación de aplicaciones moviles
Diapositivas de desarrollo de programación de aplicaciones movilesDiapositivas de desarrollo de programación de aplicaciones moviles
Diapositivas de desarrollo de programación de aplicaciones movilescarlosnc2017
 
Tecnologias emergentes moviles
Tecnologias emergentes movilesTecnologias emergentes moviles
Tecnologias emergentes movilesKio Kusanagi
 
Capitulo 16 LA NUBE MÓVIL Y EL ECOSISTEMA DE APLICACIONES WEB
Capitulo 16 LA NUBE MÓVIL Y EL ECOSISTEMA DE APLICACIONES WEBCapitulo 16 LA NUBE MÓVIL Y EL ECOSISTEMA DE APLICACIONES WEB
Capitulo 16 LA NUBE MÓVIL Y EL ECOSISTEMA DE APLICACIONES WEBEdwin Ruiz
 
Características de los 10 lenguajes de programación
 Características de los 10 lenguajes de programación Características de los 10 lenguajes de programación
Características de los 10 lenguajes de programaciónGabriel Solano
 
Introducción a la programacion.pdf
Introducción a la programacion.pdfIntroducción a la programacion.pdf
Introducción a la programacion.pdfIvanaTrento
 
Lenguajes de-programación- yaissa gómez
Lenguajes de-programación- yaissa gómezLenguajes de-programación- yaissa gómez
Lenguajes de-programación- yaissa gómezOnce Redes
 
Herramientas de desarrollo.pptx
Herramientas de desarrollo.pptxHerramientas de desarrollo.pptx
Herramientas de desarrollo.pptxNicolasCBarrantes
 
Desarrollo de apps multiplataforma Movil
Desarrollo de apps multiplataforma MovilDesarrollo de apps multiplataforma Movil
Desarrollo de apps multiplataforma MovilIng Erick Guardado
 
Presupuestos o costos de
Presupuestos o costos dePresupuestos o costos de
Presupuestos o costos deberniedeguzman
 
Programacion de aplicaciones moviles
Programacion de aplicaciones movilesProgramacion de aplicaciones moviles
Programacion de aplicaciones movilesLisbeth Santur Abad
 

Similar a Programación Aplicaciones Móviles UNASAM (20)

Diapositivas de desarrollo de programación de aplicaciones moviles
Diapositivas de desarrollo de programación de aplicaciones movilesDiapositivas de desarrollo de programación de aplicaciones moviles
Diapositivas de desarrollo de programación de aplicaciones moviles
 
Programacion de app
Programacion de appProgramacion de app
Programacion de app
 
Programacion de app
Programacion de appProgramacion de app
Programacion de app
 
LENGUAJES DE POGRAMACION.pptx
LENGUAJES DE POGRAMACION.pptxLENGUAJES DE POGRAMACION.pptx
LENGUAJES DE POGRAMACION.pptx
 
Tecnologias emergentes moviles
Tecnologias emergentes movilesTecnologias emergentes moviles
Tecnologias emergentes moviles
 
Capitulo 16 LA NUBE MÓVIL Y EL ECOSISTEMA DE APLICACIONES WEB
Capitulo 16 LA NUBE MÓVIL Y EL ECOSISTEMA DE APLICACIONES WEBCapitulo 16 LA NUBE MÓVIL Y EL ECOSISTEMA DE APLICACIONES WEB
Capitulo 16 LA NUBE MÓVIL Y EL ECOSISTEMA DE APLICACIONES WEB
 
app
appapp
app
 
27754 ibm wp_native_web_or_hybrid_2846853
27754 ibm wp_native_web_or_hybrid_284685327754 ibm wp_native_web_or_hybrid_2846853
27754 ibm wp_native_web_or_hybrid_2846853
 
Características de los 10 lenguajes de programación
 Características de los 10 lenguajes de programación Características de los 10 lenguajes de programación
Características de los 10 lenguajes de programación
 
Introducción a la programacion.pdf
Introducción a la programacion.pdfIntroducción a la programacion.pdf
Introducción a la programacion.pdf
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Lenguajes de-programación- yaissa gómez
Lenguajes de-programación- yaissa gómezLenguajes de-programación- yaissa gómez
Lenguajes de-programación- yaissa gómez
 
Herramientas de desarrollo.pptx
Herramientas de desarrollo.pptxHerramientas de desarrollo.pptx
Herramientas de desarrollo.pptx
 
Desarrollo de apps multiplataforma Movil
Desarrollo de apps multiplataforma MovilDesarrollo de apps multiplataforma Movil
Desarrollo de apps multiplataforma Movil
 
Libro4
Libro4Libro4
Libro4
 
Desarrollo en el servidor
Desarrollo en el servidorDesarrollo en el servidor
Desarrollo en el servidor
 
Presupuestos o costos de
Presupuestos o costos dePresupuestos o costos de
Presupuestos o costos de
 
Guia teorica
Guia teoricaGuia teorica
Guia teorica
 
Presentación programación en internet
Presentación programación en internetPresentación programación en internet
Presentación programación en internet
 
Programacion de aplicaciones moviles
Programacion de aplicaciones movilesProgramacion de aplicaciones moviles
Programacion de aplicaciones moviles
 

Programación Aplicaciones Móviles UNASAM

  • 1. UNIVERSIDAD NACIONAL TORIBIO RODRÍGUEZ DE MENDOZA DE AMAZONAS FACULTAD DE INGENIERÍA DE SISTEMAS Y MECÁNICA ELÉCTRICA ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS TEMA: Programación de Aplicaciones Móviles PROFESOR: Marco Aurelio Porro Chulli INTEGRANTES: Suarez Chavez Jhonathan Noe Salinas Ponce Natalio Oswaldo CICLO: VII BAGUA – PERÚ 2017
  • 2. Introducción Los grandes avances en la ciencia y la tecnología han contribuido a la evolución de los sistemas computarizados, los dispositivos electrónicos se vuelven cada vez más pequeños y con mayores capacidades a la vez que su costo disminuye, volviéndose asequibles para la mayoría de la población. Hoy en día existen dispositivos dotados de capacidades de procesamiento de datos que caben en la palma de la mano, mismos que son conocidos como dispositivos móviles. Entre estos dispositivos se destacan los PDA (ayudante personal digital por sus siglas en inglés) y los SmartPhones. Los dispositivos móviles constituyen poderosas herramientas, que aunadas con recurso humano calificado permiten lograr eficiencia y efectividad en las actividades de cualquier tipo de organización, ya que tienden a reducir el tiempo y esfuerzo en la captura de datos lo que finalmente se traduce en reducción de costos.
  • 3. 1.2. Desarrollo (Nativo, Multiplataforma compilado en nativo y Multiplatforma basado en HTMLS) DESARROLLO NATIVO Está claro que, siempre que puedas, el desarrollo nativo es la mejor gran opción. El problema es que cada plataforma (iOS, Android, WP...) es un mundo. Cada una de ellas utiliza un lenguaje de programación diferente, herramientas propias y paradigmas de programación particulares. A cambio obtienes la máxima flexibilidad, adaptación total al entorno en el que se ejecuta la aplicación y el máximo rendimiento. La desventaja principal es que tienes que dominar muchos lenguajes y herramientas y que el tiempo de desarrollo se multiplica mucho, pues es necesario crear desde cero tres versiones diferentes de la misma aplicación (una para cada plataforma). Por regla general los programadores se especializan y eligen una única plataforma, de modo que puedan dar lo mejor de si mismos en ésta.
  • 4. DESARROLLO MULTIPLATAFORMA COMPILADO A NATIVO Una opción de compromiso es utilizar alguna plataforma de desarrollo mixta que independiza el desarrollo del lenguaje nativo de cada plataforma móvil. Con este tipo de herramientas se utiliza un único lenguaje y se crean aplicaciones para todas las plataformas, eso sí, adaptando algunas cuestiones para poder funcionar en cada caso. Lo bueno es que te permite conocer un solo lenguaje, reutilizar gran parte del código entre todas, y generar aplicaciones nativas para todos los entornos móviles. La más conocida es, sin duda, Xamarin. Está basada en el lenguaje C# de Microsoft y en la plataforma .NET, y gracias a sus herramientas permite crear aplicaciones para todas las plataformas, reutilizando gran parte del código (a excepción de la interfaz).
  • 5. DESARROLLO MULTIPLATAFORMA BASADO EN HTML5 Una opción muy popular, sobre todo si eres un programador Web, es utilizar alguna herramienta basada en HTML que genere aplicaciones para todas las plataformas. Existen muchas, pero la más conocida es PhoneGap/Apache Cordova. Las apps escritas en HTML5 y compiladas con PhoneGap, permiten crear la interfaz usando HTML, CSS y JavaScript, lenguajes muy conocidos y utilizados, y desplegar a las diferentes plataformas. En cada una además podemos utilizar un “skin” concreto para que el aspecto sea lo más similar posible al de las aplicaciones nativas. PhoneGap y similares crean un contenedor para la aplicación que la ejecuta como si estuviesen en un servidor web local. Además exponen gran parte de la funcionalidad nativa del dispositivo móvil a través de librerías JavaScript, de modo que es muy sencillo “engancharse” desde la aplicación HTML5 que estamos creando. Entre las desventajas principales están que las aplicaciones no tiene el mismo rendimiento que una app nativa, ni tampoco te dan acceso a todas las APIs nativas de cada plataforma. aunque sí a todas las importantes.
  • 6. Lenguajes de programación para aplicaciones móviles. JAVA Java lleva más de 20 años mostrando su potencial a la comunidad de desarrolladores. Tanto es así, que se estima que en el mundo al menos nueve millones de programadores confían en Java como su lenguaje principal. Si hablamos de Java es principalmente porque es la base sobre la que se construyen todas las Apps para Android. Es cierto que el Java que se usa para Android no es exactamente el mismo, pero se diferencia muy poco del Java original. Por lo que, si estás interesado en desarrollar aplicaciones para el sistema operativo de Google, aprender Java es un paso que sí o sí, tienes que dar.
  • 7. SWIFT Desde su primera versión, las Apps para iOS han sido desarrolladas en Objetive C. Sin embargo en un intento de simplificar el desarrollo de aplicaciones para los dispositivos de Apple y facilitar la curva de aprendizaje, en 2014 la empresa de Cupertino presentó Swift, su propio lenguaje de programación. Su principal ventaja por supuesto es que está específicamente orientado para el desarrollo de aplicaciones tanto en iOS como en Mac OS X , lo cual redunda en más sencillez a la hora de programar y un mayor grado de optimización para las plataformas en las que se va a ejecutar.
  • 8. HTML5 + Javascript HTML es un lenguaje de marcado para la elaboración de páginas web. No se puede en este sentido, utilizarlo para el desarrollo de aplicaciones, pero cuando se combina HTML5 (su última iteración) con Javascript, obtenemos algo muy similar a un lenguaje de programación, viable tanto para crear web apps como aplicaciones móviles. El desarrollo de apps en HTML5 puede ser interesante ya que simplifica la carga de trabajo. Sólo tenemos que desarrollar una App para después “empaquetarla” para los distintos sistemas operativos: iOS, Android, escritorio, etc. Se reducen así los tiempos de desarrollo y los costes de mantenimiento.
  • 9. RUBY Ruby es un lenguaje de programación dinámico, reflexivo, orientado a objetos y de uso general. Es compatible con múltiples paradigmas de programación, incluyendo el funcional, el orientado a objetos y el imperativo. También cuenta con un sistema de tipo dinámico y una administración de memoria automática. Hay una pequeña diferencia entre los editores y los entornos de desarrollo (IDE). Un editor es una herramienta para añadir, editar y visualizar el contenido de un archivo. Por otro lado, un IDE o entorno de desarrollo integrado, es un conjunto de herramientas más o menos centradas en una tarea común, tales como el desarrollo de Ruby, y todos incluyen algún tipo de un editor.
  • 10. Aptana Studio Aptana Studio 3 es una herramienta de desarrollo de código abierto para programadores que tengan experiencia en Ruby. Permite a los desarrolladores probar sus aplicaciones web usando un único entorno. Aptana soporta las últimas tecnologías para navegadores con HTML5, CSS3, JavaScript, Ruby, Rails, PHP y Python. Incluye varias características como la integración de archivos GIF, HTML, CSS y Javascript, un depurador integrado, así como múltiples opciones para llevar a cabo la personalización del IDE. Contempla múltiples protocolos como FTP, SFTP, FTPS y Capistrano. Cuenta con la capacidad para publicar automáticamente tus aplicaciones Ruby & Rails a servicios de alojamiento como Heroku y Engine Yard
  • 11. NetBeans NetBeans es un IDE de código abierto y una plataforma que ayuda a los desarrolladores a implementar rápidamente páginas web, aplicaciones de escritorio y aplicaciones para dispositivos móviles. Suspendieron el soporte a Ruby en 2011, debido a que Oracle introdujo un nuevo kit de Java Dev, pero lo trajeron de vuelta otra vez para el disfrute y gozo de todos los programadores que utilizamos este lenguaje y nos chifla este IDE. En realidad, Net Beans está pensado para desarrollar en Java, aunque también es compatible con JavaFX, PHP, JavaScript, Ruby & Ruby on Rails, Groovy and Grails y C / C ++.
  • 12. VISUAL BASIC.NET Visual Basic (VB) es un lenguaje de programación dirigido por eventos, desarrollado por Alan Cooper para Microsoft. Este lenguaje de programación es un dialecto de BASIC, con importantes agregados. Su primera versión fue presentada en 1991, con la intención de simplificar la programación utilizando un ambiente de desarrollo que facilitó en cierta medida la programación misma. Visual Basic contiene un entorno de desarrollo integrado o IDE que integra editor de textos para edición del código fuente, un depurador, un compilador (y enlazador) y un editor de interfaces gráficas o GUI.
  • 13. Resumen Los dispositivos móviles constituyen cada vez más una realidad que ofrece al usuario, en un mismo y reducido aparato, funciones de comunicación y procesamiento de datos que van mucho más allá de las simples llamadas telefónicas o la ejecución de aplicaciones básicas. El gigante de Internet Google ha presentado un nuevo sistema operativo para este tipo de dispositivos, Android, que busca ser una firme alternativa a otros sistemas ya ampliamente extendidos como Symbian o Windows Mobile. El presente proyecto busca conocer y comprender las características y el funcionamiento de este nuevo sistema operativo, averiguando sus posibilidades y ventajas frente a otras alternativas. Además, abarca el desarrollo completo de una aplicación de nombre ContactMap, que permite localizar a los contactos mediante mapas y con la que se busca ilustrar de forma práctica la construcción y naturaleza de las aplicaciones para Android.
  • 14. Recomendaciones Las aplicaciones móviles son programas de software diseñadas para utilizarse en teléfonos inteligentes, tabletas y otros dispositivos móviles. Su cadena de valor está integrada por desarrolladores, publicadores, propietarios de las plataformas, empresas de telecomunicaciones y dispositivos móviles, inversionistas y usuarios finales. El ecosistema que rodea a los dispositivos móviles, ha permitido que miles de desarrolladores utilicen la plataforma para la realización de aplicaciones que aprovechen la movilidad y los beneficios tecnológicos como la pantalla capacitiva, grabación de video y servicios de localización. Sin embargo, para ello se requiere también potenciar la cobertura y eficiencia de las redes móviles que soporten el tráfico de datos a través de tecnologías 3G y 4G.
  • 15. 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.
  • 16. Apreciación del Equipo La mayoría de estos aparatos 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.
  • 17. Apreciación del Equipo La mayoría de estos aparatos 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.