viernes, 19 de enero de 2018

Curso de Desarrollo de Apps Móviles Modulo 5

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.

martes, 16 de enero de 2018

Curso de Desarrollo de Apps Móviles Modulo 4

Plataformas de desarrollo - iOS

Resumen:

iOS es el sistema operativo de los dispositivos de APPLE, es propio de la marca y no se puede ejecutar en dispositivos que no son de la compañía, apareció en el 2007, fue diseñado para dispositivos de pantalla táctil, el kit de desarrollo de iOS da acceso tanto el hadware como al software.
 APPLE es bastante estricto con el funcionamiento de las diferentes aplicaciones por eso proporciona una guía de revisión de aplicaciones donde dice todo lo que no se debe hacer para que una app sea aceptada.

Para desarrollar aplicaciones para iOS se necesita un ordenador de APPLE, el desarrollo se puede realizar en otro sistema pero el subir la aplicación solo se puede hacer con un ordenador de APPLE.

X code es un entorno de desarrollo integrado, incluye todo tipo de herramientas, con este entorno se puede llevar el desarrollo de la app de principio a fin.

Si se desea subir una app a apple store se necesita una cuenta de desarrollador la cual tiene un valor de aproximadamente 100 dolares al año.

Desde 1990 el lenguaje de desarrollo oficial para cualquiera de los dispositivos de APPLE es objetive-c, es un lenguaje robusto y esta orientado a objetos, es muy engorroso.

En 2014 APPLE presento un nuevo lenguaje de programación Swift, es muy potente, la programación es mas segura, en diciembre del 2015 APPLE presenta el nuevo Swift Open Source, donde publico el código de este. Es uno de los lenguajes mas usados por los programadores.

iOS tiene Frameworks que están contenidos en Las capas de iOS, las capas mas bajas actúan mas directamente sobre el hadware, a medida que se va subiendo se van construyendo las demás capas con base en la anterior, haciendo que programar sea mas sencillo, se recomienda empezar por la capa superior a la hora de programar.

Algunos iOSS Frameworks:
UIkit: Para montar el interfaz del usuario.
CoreData: Para bases de datos.
CoreGraphics: Para dibujos y gráficos.
AVFoundation: Para la grabación edición y reproducción de audio y vídeo.


Preguntas y respuestas:

Lee el artículo. ¿Qué es el skeumorfismo?

1. Una técnica de programación para aplicaciones iOS. 
2. Una característica diferenciadora de iOS desde su versión 7.
3.Una corriente de diseño que pretende mantener en los objetos evolucionados (o derivados) detalles del diseño del objeto original con el objetivo de hacerlo más familiar para su usuario, a través del uso de texturas, formas y elementos muy reconocibles del objeto original.
 4. Una corriente de diseño minimalista que hace especial énfasis en la usabilidad. Trabaja con espacios limpios, colores vivos, líneas sencillas e ilustraciones planas.

Correcto. Desde el primer iPhone, las aplicaciones contaron con multitud de detalles y planteamientos que las hacían recordar a los objetos de referencia. La tónica era la elaboración de interfaces con mucho realismo, junto con el uso de texturas y colores que imitaban a los objetos reales. Esta concepción cambió radicalmente con la publicación de iOS 7. Se pasó a trabajar con diseños planos, limpios y funcionales, alejados del aspecto de los objetos de referencia.

Lee el artículo. ¿Cuál de los siguientes aspectos NO supone un motivo de rechazo en el proceso de validación?

  1. La aplicación tiene contenido de carácter sexual.

  2. La descripción de la aplicación no concuerda con el contenido de la misma.
  3. Una aplicación pensada para el iPhone también se ejecuta correctamente en el iPad sin modificación alguna, con la resolución del iPhone.
  4. La aplicación hace referencia a una URL no disponible.

Correcto. Apple exige que las aplicaciones pensadas para su uso en iPhone puedan al menos ser ejecutadas en un iPad, aunque sea con la resolución y dimensiones del iPhone, sin ningún tipo de adaptación, y con la presencia de bandas de color negras en las zonas de pantalla sobrantes.


Visualiza el video que corresponde a la presentación en sociedad del primer iPhone. ¿Con qué nombre es presentado el sistema operativo del iPhone?

1. iOS.
2. OS X.
3. iPhone OS.
4. iOS 7.

Correcto. La presentación inicial nos presentaba el primer iPhone como un teléfono sobre el que corría una versión de sistema operativo similar (aunque adaptada) al de los Mac de la época. Aunque con el tiempo esta versión adaptada evolucionó convirtiéndose en el sistema operativo de hoy en día.

Examen:

1. Las aplicaciones nativas para iOS se programan en...
A. Swift.
B. Objective-C.
C. Cualquiera de los dos.

2. iOS es un sistema operativo que funciona en los siguientes dispositivos
A. Solo en los iPhone.
B. En cualquier teléfono inteligente de cualquier fabricante.
C. En los iPhone, iPad, iPod Touch y Apple TV.

3. Con las herramientas de desarrollo para iOS se pueden crear aplicaciones iOS usando para el desarrollo sólo computadores con sistemas operativos..
A. Linux.
B. Windows.
C. Mac OS.
D. Los tres anteriores.

4. Xcode es la herramienta de desarrollo para..
A. Edición de código.
B. Modelado de bases de datos.
C. Diseño de interfaz de usuario.
D. Edición de escenas 3D.
E. Todas las anteriores.

5. ¿Qué es el Storyboard?
A. Un archivo del proyecto Xcode en el que se definen las diferentes pantallas de la aplicación y el flujo que hay entre ellas.
B. Cada uno de los archivos con código que tiene nuestra aplicación.
C. Un panel de Xcode en el que podemos modificar las propiedades del objeto seleccionado.

6. Necesitamos una cuenta de desarrollador para...
A. Descargarnos Xcode.
B. Probar aplicaciones en nuestro dispositivo.
C. Subir aplicaciones a la App Store.
D. Las tres anteriores.

7. El desarrollo de aplicaciones para iOS tiene en común con el desarrollo para OSX...
A. Herramientas de desarrollo.
B. Lenguaje de programación.
C. Algunos frameworks (librerías).
D. Los tres anteriores.

8. Una interfaz esqueumorfista...
A. Solo existe en dispositivos de pantalla táctil.
B. Es aquella en la que los elementos gráficos intentan imitar objetos del mundo real.
C. Utiliza frameworks de Apple para facilitar el desarrollo.

9. ¿Qué es Auto Layout?
A. Una herramienta que hace que el código se escriba él sólo automáticamente.
B. Una herramienta que nos permite crear una interfaz que se adapte automáticamente a los diferentes tamaños de pantalla.
C. Un componente de navegación de iOS.

10. Un ViewController representa...
A. La arquitectura de una aplicación iOS.
B. Los botones de una aplicación iOS.
C. Cada una de las pantallas de una aplicación iOS.
D. Un framework de Apple.

jueves, 11 de enero de 2018

Curso de Desarrollo de Apps Móviles Modulo 3

Plataformas de desarrollo - Android

Lee el artículo. Según el texto ¿cuales parecen ser las causas del problema de la fragmentación en Android?

  1. Los móviles de bajo precio no soportan las versiones más modernas del sistema operativo.
  2. Los fabricantes no suelen actualizar los dispositivos ya lanzados al mercado.
  3.La fragmentación de Android es un mito. Casi todos los dispositivos móviles Android usan la misma versión del sistema operativo.
  4.Los fabricantes no lanzan sus nuevos móviles con la versión más reciente del sistema operativo. Prefieren que otros fabricantes tomen ese riesgo.

Correcto. Normalmente los nuevos dispositivos móviles incorporan las versiones más recientes del sistema operativo, y los ya lanzados permancen sin actualizar.

Lee la introducción a las herramientas de desarrollo de Android. ¿Qué funcionalidad NO soporta Android Studio durante el desarrollo de apps?

  1.Examinar la estructura del proyecto con los componentes que incluye.
  2.Crear los APK (ficheros de instalación de Android) a partir de nuestro proyecto
  3.Examinar el consumo de memoria y tiempo de ejecución del procesador de nuestra aplicación.
  4.Generar versiones para diferentes sistemas operativos de nuestra app Android

Correcto. Android Studio es una plataforma para el desarrollo nativo en Android exclusivamente.

Lee las instrucciones para crear un proyecto de aplicación para Android. ¿Qué es lo que uno debe indicar en el campo "targetSdkVersion"?

  1. La versión más alta del SDK de Android para la que haya sido probada la aplicación.
  2. La versión mínima del SDK de Android que se necesita para ejecutar la aplicación.
  3. La versión más reciente del SDK de Android.
  4. La versión mínima del SDK de Android de que dispongamos.

Correcto. Idealmente será la versión más reciente del SDK que esté disponible, y este dato debemos irlo actualizando según salgan nuevas versiones del SDK y vayamos probando nuestra aplicación para ellas.

Lee las instrucciones para ejecutar la aplicación por defecto que se genera al crear un primer proyecto de aplicación para Android. ¿Para qué sirve el fichero AndroidManifest.xml?

  1.Para definir cada uno de sus componentes (como las distintas versiones del SDK que están disponibles).
  2. Para definir exclusivamente los servicios de la aplicación que, a diferencia de las actividades, son invisibles porque su objetivo consiste bien en conectar nuestra aplicación con otras aplicaciones de terceros, o bien en trabajar para el usuario pero desde un discreto segundo plano.
  3. Para describir exclusivamente la distribución de los elementos visuales (o vistas) que aparecerán en la interfaz gráfica de la aplicación.
  4. Para describir las características fundamentales de la aplicación (como las versiones del SDK a las que va destinada) y definir cada uno de sus componentes (como las actividades o los servicios que es capaz de realizar).

Correcto. Ese es el cometido del manifiesto de la aplicación.

Examen:

1. Un servicio es un elemento funcional que podemos incluir en una app Android. Se caracteriza por...
A. Permitir realizar operaciones de larga duración y no contar con interfaz gráfica de usuario.
B. Permitir realizar operaciones de larga duración y contar con interfaz gráfica de usuario.
C. Tener interfaz gráfica de usuario pero no permitir operaciones de larga duración.
D. Usarse para procesar los anuncios globales del sistema.
E. Usarse para tratar avisos relativos al nivel de batería o cobertura de comunicación móvil.
F. Tener una cuenta de Google, registrarse en la consola del desarrollador de Google Play y tener acceso a Google Drive para cualquier tipo de aplicación.

2. El desarrollo de una aplicación en Android necesita:
A. Contar con al menos un dispositivo Android. Dadas las características de portabilidad de Java y XML, si nuestra app funciona en ese dispositivo, funcionará en cualquier otro dispositivo Android de igual modo.
B. Contar con tantos dispositivos Android como constituyan el objetivo de nuestra aplicación. Cada dispositivo puede tener diferente hardware y versiones de Android, y sólo probando la app en todos se puede garantizar su correcto funcionamiento.
C. Basta en general con los dispositivos virtuales basados en los emuladores que se distribuyen con Android.
D.  Eclipse como entorno de desarrollo.

3.  La fragmentación en Android es un fenómeno...
A. Beneficioso para el desarrollador y para los usuarios.
B. Según el cual las aplicaciones pueden ejecutarse de la misma forma en todos los dispositivos.
C. Originado en buena medida porque existen miles de tipos distintos de dispositivos, que ni siquiera comparten la misma versión del sistema operativo.
D. Que divide a los dispositivos en subcategorías, como "phablet", un producto a caballo entre el móvil y la tableta.

4. Con los emuladores de Android NO podemos simular...
A. Un mal funcionamiento del dispositivo móvil por una caída.
B. Las diferentes orientaciones del dispositivo móvil (horizontal y vertical).
C.Diferentes condiciones de conectividad.
D. Diferentes estados de la batería.
E. Envío de SMS.

5. El manifiesto de una app Android NO incluye información sobre...
A. El mínimo nivel de la API de Android requerido por la app.
B. Los permisos que requiere la aplicación para su correcto funcionamiento.
C. El nombre completo del paquete de la aplicación.
D. Los dispositivos móviles en los que puede ejecutarse.
E. Componentes funcionales de la aplicación.

6. La funcionalidad de una app Android se consigue mediante elementos de los siguientes tipos...
A. Actividad, servicio y recurso.
B. Actividad, servicio y receptor de contenido.
C. Actividad, receptor de contenido y manifiesto.
D. Actividad, receptor de contenido y formulario.
E. Servicio, receptor de contenido y animaciones.


7.  La arquitectura de la plataforma Android y sus apps está diseñada para atender algunos requisitos clave del desarrollo móvil. ¿Cuál de los siguientes NO es uno de estos requisitos principales?
A. Ahorro de batería del dispositivo.
B. Contar con una misma versión de la plataforma Android en todos los dispositivos que la ejecutan.
C. Reducción del tiempo de procesador (o CPU).
D. Protección de los datos del usuario.

8. Con el Android Studio IDE podemos desarrollas nuestras apps de Android, pero, ¿cuál de las siguientes tareas NO podemos hacer con él?
A. Escribir el código de la app.
B. Crear la interfaz de usuario de nuestra app.
C. Probar nuestra app en un emulador.
D. Probar nuestra app en dispositivo móvil físico conectado al ordenador donde se desarrolla.
E. Generar código HTML5 a partir del código Android de la app.
F. Estudiar el consumo de memoria y tiempo de procesador de una app en ejecución.

9. Android es una plataforma completa para apps de dispositivos móviles. Esto significa que incluye la mayor parte de los elementos necesarios para crear y disfrutar de apps, pero ¿cuál de los siguientes no forma parte del ecosistema de Android?
A. El entorno de ejecución de apps para el dispositivo de los clientes.
B. El sistema operativo para los dispositivos móviles.
C. El entorno de desarrollo de apps.
D. Un smartphone Android físico con el que realizar las pruebas básicas de las apps.

10. El SDK de la distribución de Android es:

A. El kit estándar de desarrollo, constituido por documentación sobre programación en Android y ejemplos de uso.
B. El kit estándar de desarrollo, que incluye una copia de la última versión de Android, emuladores y dispositivos virtuales.
C. El kit estándar de depuración, que incluye las herramientas de desarrollo para depurar aplicaciones Android.
D. El kit estándar de despliegue, que incluye las herramientas necesarias para publicar una aplicación en Google Play.





Curso de Desarrollo de Apps Móviles Modulo 2

Módulo 2: Diseño y creación de apps

Lee el primer capítulo del libro "Diseñando apps para móviles" de Cuello y Vittone (2013) disponible en http://www.appdesignbook.com/es/contenidos/las-aplicaciones/. Según estos autores, la fase de definición del desarrollo de una app ¿qué aspectos debe definir?

1. Funcionales.
2. Usuarios objetivo de la aplicación.
3. Funcionales y usuarios objetivo de la aplicación.


Correcto. Consideran que la fase de definición debe describir con detalle a los usuarios para quienes se diseñará la aplicación y las bases de su funcionalidad


Lee el artículo "Metodologías ágiles en el desarrollo de aplicaciones para dispositivos móviles - Estado actual" de Yohn Daniel Amaya Balaguera en la revista Tecnología 12(2), pp. 111-124, de la Universidad El Bosque, 2013, disponible en http://gestion-it.260mb.net/docs/pdf/12Articulo_Rev-Tec-Num-2.pdf?i=3. ¿Cuál de las siguientes metodologías no aparece listada como ágil?

1. Mobile-D.
2. Unified Process for Mobile.
3. Hybrid Methodology Design.

Correcto. De hecho, no existe.

Lee el informe sobre consejos para el desarrollo de apps para dispositivos móviles. ¿Qué es un "mockup"?

1. Una app con un diseño mediocre que no convence al cliente.
2. Un entorno de desarrollo multiplataforma para apps.
3. Un boceto o modelo simplificado de una app.
4. Un estilo de diseño de interfaces de usuario para apps.

Correcto. Un "mockup" es un modelo simplificado de una app que puede incluir bocetos de su interfaz de usuario y un modelo simplificado de interacción. El informe indica varias herrramientas para crear estos mockups.


Examen Modulo 2

1. El equipo de desarrollo no necesita contar con...
  A. Especialistas en gráficos y audios.
  B. Diseñadores y programadores.
  C. Especialistas en calidad y marketing.
  D. Traductores.
  E. Economistas.

2. Cómo identificar necesidades que puede abordar una app?
  A. Estudiando en detalle las aplicaciones de las tiendas de aplicaciones.
  B. Contactando con empresas para preguntarles qué necesitan.
  C. Empezando por mis propias necesidades y las de mis allegados.


3. Cuando desarrollamos aplicaciones para dispositivos móviles...
  A. La mejor opción es intentar cubrir el mayor número de plataformas posible para aumentar la difusión.
  B. Se debe cubrir la mayor variedad de dispositivos posible.
  C. Se deben seleccionar cuidadosamente las plataformas y dispositivos a utilizar.
  
4. Cómo analizo la competencia?
  A. Utilizando sus aplicaciones.
  B. Pidiéndoles información como estadísticas de uso o fidelidad de los clientes.
  C. Analizando comentarios positivos en las tiendas de aplicaciones.

5. Cuáles de las siguientes limitaciones no son clave a la hora de desarrollar una aplicación..
  A. Si la usarán hombres o mujeres.
  B. La duración de la bateria.
  C. La conectividad.
  D. CPU, memoria y espacio de almacenamiento.

6. Es sencilla la planificación del desarrollo de apps?
  A. Sí, son aplicaciones como cualquier otra.
  B. No, existen factores que las diferencian del software tradicional.
  C. Sí, por lo general son aplicaciones de tamaño pequeño que resultan muy manejables.
  D. No, aún es poco lo que se sabe del desarrollo de apps.

7. Cuál de las siguientes opciones no tiene que ver con las alternativas de monetización sobre apps? 
  A. Gratuita.
  B. De pago.
  C. Diseño fluido colaborativo.
  D. In-app billing.

8. Cuales son las mejores opciones para obtener un nicho de mercado para tu app?
  A. Aplicación para todo el mundo.   Esta respuesta no es
  B. Nuevo tipo de aplicaciones.  Esta respuesta no es
  C. Usuarios satisfechos de aplicaciones similares.
  D. Grupos restringidos.

9. El proceso de desarrollo mas adecuado es... 
  A. Cualquiera vale.
  B. Un proceso ágil.
  C. Un proceso bien definido y fuertemente estructurado.

10. En el proceso de desarrollo genérico para apps, la fase de concepto debe capturar información inicial sobre...
  A. Todas las características de funcionalidad y hardware relevantes para la aplicación.
  B. La lista de características que debe tener la aplicación.
  C. Capturas de pantalla esquemáticas que describan como será la interfaz de usuario.
  D. La lista de características, capturas esquemáticas de la interfaz y maquetas o prototipos que ilustren los aspectos esenciales de la aplicación.
  E. La planificación del posible desarrollo de la idea de aplicación.