Plataformas de desarrollo - Desarrollo multiplataforma
Resumen:
El desarrollo en múltiples plataformas nace con la necesidad de cubrir la mayor parte del mercado y la mayor cantidad de plataformas posibles.
Tipos de desarrollo multiplataforma:
Desarrollo WEB: Mas usa-ble que la web tradicional, web adaptada a móvil que se utiliza a través de un navegador, generalmente por su diseño requiere conexión a Internet. A veces estas aplicaciones web no cubren todas las necesidades (o funcionalidades) de la app. Una vez terminado su desarrollo se instala en los terminales y parte desde ahí. Algunos ejemplos para el desarrollo web son: HTML5, jQuerY mobile o ANGULAR JS. Algunos ejemplos para el desarrollo no nativo son PhoneGap y Apache Cordova (enriquecen las web apps y prepararlas para su instalación en móviles), Unity (orientado a juegos, permite desarrollar para muchas plataformas), Appcelerator (basado en Java script, son usadas para acelerar el desarrollo), Xamarin (desarrollo multiplataforma programando en .net)
Ventajas:
- Minimiza los costes, reduce tiempos y perfiles tecnológicos (eliminando la necesidad de tener expertos para el desarrollo de cada plataforma).
- Cubre mayor cantidad de mercado.
Desventajas:
- No explota todo el potencial del dispositivo.
- Mas bajo rendimiento que el desarrollo en un lenguaje nativo.
Mediante el desarrollo web podemos crear aplicaciones llamada web apps las cuales tienen una diferencia con las tradicionales ya que se consumen directamente desde el móvil.
HTML5:
Tiene estándares para funcionar en la mayoría de los navegadores.
Pensado para webs que adapten su presentación al dispositivo que van a ser usadas (que se adapten a múltiples resoluciones, tipografía).
La parte de html se ria la capa visible que presenta los datos que se desean mostrar, puede crear paginas webs estáticas mediante etiquetas.
Lo que le indica al navegador que se esta usando html5 y no otro es la etiqueta !DOCTYPE html al inicio del documento.
CSS3:
Permite establecer la estructura de la web pero necesita de la definición de estilos para poder personalizarla.
CSS3 es el último estándar que permite personalizar el contenido html.
Este hace las paginas web mas vistosas.
Para responder a las acciones del usuario se necesita JavaScript que es un lenguaje de programación interpretado por el navegador.
jQuerY mobile es un framework que mediante JavaScript y CSS3 se puede llegar a imitar el comportamiento de una aplicación nativa desde el dispositivo móvil.
ANGULARJS es un framework de JavaScript de codigo abierto mantenido por google.
Permite patrones de diseño múltiples, se adapta a cualquier patrón.
Esta ideado para trabajar mediante código enlazado (es posible unir directamente el código JavaScript junto a elementos html, una modificación sobre el elemento de código se ve inmediatamente reflejado en la vista html)
Quiere decir que html5, CSS3 y JavaScript pueden simular una aplicación nativo.
Cuando se necesita algo mas que una web app se entra al campo de las apps Híbridas, se puede decir que es una web app en una capsula preparada para ejecutarse dentro de un dispositivo como una app nativa, esta capsula permite una comunicación con la web app y el dispositivo para acceder a elementos como contactos, cámara etc.
Existen dos herramientas muy conocidas que nos permiten desarrollar una app híbrida, PhoneGap y Apache Cordova.
PhoneGap fue creado por Nitobi (2009), creado para encapsular html5, en 2011 dona el código fuente a la fundación Apache y posteriormente Adobe compra Nitobi, luego Adobe saca una rama llamada Apache Cordova que incluye servicios en la nube.
Preguntas y respuestas:
Visita la siguiente página sobre las plataformas a las que podemos exportar una aplicación desarrollada con Unity. ¿Qué plataforma móvil no soporta todavía este motor de juegos?
A. iOS.
B. Android.
C. Ubuntu Touch.
D. Windows Phone 8.
Correcto. Unity todavía no permite exportar a Ubuntu Touch.
Lee el siguiente artículo. Si queremos reutilizar código para el desarrollo multiplataforma, ¿cuál es la mejor opción?
A. Apps híbridas.
B. Apps nativas.
C. Apps hechas en Objective-C.
D. Apps hechas en C#.
Correcto. Con un solo lenguaje cubrimos varias plataformas.
Examen:
1. ¿Qué nos permite el desarrollo de apps mediante HTML?
A. Aprovechar al máximo las capacidades del dispositivo.
B. Escribir una única aplicación que funciona en todos los dispositivos.
C. Interactuar con las notificaciones, agenda, etc. del usuario.
2. Si queremos publicar una web app en los stores, ¿qué debemos hacer?
A. Utilizar jQuery Mobile para adaptarla a móviles.
B. Utilizar HTML5 + CSS3 + Javascript para su utilización en móviles.
C. Convertir la web app a una app híbrida mediante herramientas como Apache Cordova.
D. Utilizar Materialize para simular el aspecto de una app como las diseñadas por Google.
3. ¿Cuál de las siguientes librerías/aplicaciones/marcos de desarrollo es un motor de juegos multiplataforma?
A. Appcelerator.
B. Apache Cordova.
C. Xamarin.
D. Materialize.
E. Unity.
4. Considerando una app descompuesta en una estructura de capas, ¿a cuál correspondería HTML?
A. La capa de la lógica, la que implementa los algoritmos.
B. La capa de presentación, la que muestra los datos.
C. La capa de comunicaciones, la que envía y recibe datos.
D. La capa de almacenamiento, la que guarda los datos.
5. ¿Es cualquier página web una aplicación multiplataforma desarrollada basada en tecnologías web?
A. Sí. Es sólo una forma de denominarlas en el contexto de las aplicaciones para dispositivos móviles.
B. No. Una aplicación web ofrece un aspecto parecido al de una aplicación nativa (ej. no muestra la barra de navegación o el botón de vuelta atrás del navegador) y permite al usuario interactuar con ella.
C. No. Una aplicación web para dispositivos móviles es una página web implementada con Android.
D. No. La aplicación multiplataforma es una página web que además se conecta con algún servidor remoto para realizar sus operaciones.
6. ¿Qué es una web app?
A. Una página web con un envoltorio que funciona como app y se instala en el dispositivo como si fuese nativa.
B. Una página web adaptada a móvil que se consume a través del navegador como si fuese nativa.
C. Una web creada con un framework para usarse en móviles.
D. Cualquier web abierta desde un navegador de móvil.
7. ¿Qué es el Material Design?
A. El Material Design es el estándar de diseño definido por Google.
B. Es un framework de desarrollo basado en CSS3 para personalizar páginas web.
C. Es una técnica de diseño de interfaces de apps en la que la interfaz reacciona a cualquier posible gesto del usuario para evitar errores inintencionados.
D. Es una técnica de diseño de interfaces orientada a que estas se adapten automáticamente a los cambios en las características de las nuevas versiones del sistema operativo.
E. Es un método de programación para JavaScript orientado a apps.
8. ¿Cual de las siguientes librerías permite empaquetar las aplicaciones en HTML y distribuirlas como si fuesen nativas?
A. Nitobi.
B. Apache Cordova.
C. jQuery.
D. AngularJS.
9. Las propuestas multiplataforma basadas en tecnologías web usan el lenguaje HTML para crear páginas estáticas. ¿Para qué usan el lenguaje JavaScript?
A. Para visualizar gráficos.
B. Para visualizar gráficos y animaciones.
C. Para implementar algoritmos.
D. Para procesar las páginas HTML y darle al navegador los comandos necesarios para su visualización.
E. Para responder a las acciones del usuario y modificar la página mostrada.
10. ¿Qué es una app híbrida?
A. Una página web con un envoltorio que funciona como app y se instala en el dispositivo como si fuese nativa.
B. Una página web adaptada a móvil que se consume a través del navegador como si fuese nativa.
C. Una web creada con un framework para usarse en móviles.
D. Una aplicación que ha sido generada con un motor de juegos.
11. ¿Cuál es la principal desventaja de las aplicaciones multiplataforma basadas en tecnologías web?
A. Necesitan el navegador Chrome para ser visualizadas.
B. Necesitan librerías que interpreten JavaScript para poder ser ejecutadas.
C. Necesitan librerías adicionales para poder acceder a buena parte de las capacidades del dispositivo debido a las limitaciones que los navegadores imponen en su ejecución.
D. Necesitan ser desarrolladas siguiendo pautas de diseño reactivo.
Examen:
1. ¿Qué nos permite el desarrollo de apps mediante HTML?
A. Aprovechar al máximo las capacidades del dispositivo.
B. Escribir una única aplicación que funciona en todos los dispositivos.
C. Interactuar con las notificaciones, agenda, etc. del usuario.
2. Si queremos publicar una web app en los stores, ¿qué debemos hacer?
A. Utilizar jQuery Mobile para adaptarla a móviles.
B. Utilizar HTML5 + CSS3 + Javascript para su utilización en móviles.
C. Convertir la web app a una app híbrida mediante herramientas como Apache Cordova.
D. Utilizar Materialize para simular el aspecto de una app como las diseñadas por Google.
3. ¿Cuál de las siguientes librerías/aplicaciones/marcos de desarrollo es un motor de juegos multiplataforma?
A. Appcelerator.
B. Apache Cordova.
C. Xamarin.
D. Materialize.
E. Unity.
4. Considerando una app descompuesta en una estructura de capas, ¿a cuál correspondería HTML?
A. La capa de la lógica, la que implementa los algoritmos.
B. La capa de presentación, la que muestra los datos.
C. La capa de comunicaciones, la que envía y recibe datos.
D. La capa de almacenamiento, la que guarda los datos.
5. ¿Es cualquier página web una aplicación multiplataforma desarrollada basada en tecnologías web?
A. Sí. Es sólo una forma de denominarlas en el contexto de las aplicaciones para dispositivos móviles.
B. No. Una aplicación web ofrece un aspecto parecido al de una aplicación nativa (ej. no muestra la barra de navegación o el botón de vuelta atrás del navegador) y permite al usuario interactuar con ella.
C. No. Una aplicación web para dispositivos móviles es una página web implementada con Android.
D. No. La aplicación multiplataforma es una página web que además se conecta con algún servidor remoto para realizar sus operaciones.
6. ¿Qué es una web app?
A. Una página web con un envoltorio que funciona como app y se instala en el dispositivo como si fuese nativa.
B. Una página web adaptada a móvil que se consume a través del navegador como si fuese nativa.
C. Una web creada con un framework para usarse en móviles.
D. Cualquier web abierta desde un navegador de móvil.
7. ¿Qué es el Material Design?
A. El Material Design es el estándar de diseño definido por Google.
B. Es un framework de desarrollo basado en CSS3 para personalizar páginas web.
C. Es una técnica de diseño de interfaces de apps en la que la interfaz reacciona a cualquier posible gesto del usuario para evitar errores inintencionados.
D. Es una técnica de diseño de interfaces orientada a que estas se adapten automáticamente a los cambios en las características de las nuevas versiones del sistema operativo.
E. Es un método de programación para JavaScript orientado a apps.
8. ¿Cual de las siguientes librerías permite empaquetar las aplicaciones en HTML y distribuirlas como si fuesen nativas?
A. Nitobi.
B. Apache Cordova.
C. jQuery.
D. AngularJS.
9. Las propuestas multiplataforma basadas en tecnologías web usan el lenguaje HTML para crear páginas estáticas. ¿Para qué usan el lenguaje JavaScript?
A. Para visualizar gráficos.
B. Para visualizar gráficos y animaciones.
C. Para implementar algoritmos.
D. Para procesar las páginas HTML y darle al navegador los comandos necesarios para su visualización.
E. Para responder a las acciones del usuario y modificar la página mostrada.
10. ¿Qué es una app híbrida?
A. Una página web con un envoltorio que funciona como app y se instala en el dispositivo como si fuese nativa.
B. Una página web adaptada a móvil que se consume a través del navegador como si fuese nativa.
C. Una web creada con un framework para usarse en móviles.
D. Una aplicación que ha sido generada con un motor de juegos.
11. ¿Cuál es la principal desventaja de las aplicaciones multiplataforma basadas en tecnologías web?
A. Necesitan el navegador Chrome para ser visualizadas.
B. Necesitan librerías que interpreten JavaScript para poder ser ejecutadas.
C. Necesitan librerías adicionales para poder acceder a buena parte de las capacidades del dispositivo debido a las limitaciones que los navegadores imponen en su ejecución.
D. Necesitan ser desarrolladas siguiendo pautas de diseño reactivo.