Wednesday, June 5, 2019

Modulo 5- Submódulo 2 iOS- Parcial 3 Quiz

Publicar una aplicación Android desde Google Play sólo requiere:

a) Tener una cuenta de Google.
b) Tener una cuenta de Google y registrarse en la consola del desarrollador de Google Play para aplicaciones gratuitas.(Respuesta)
c) Tener una cuenta de Google y registrarse en la consola del desarrollador de Google Play para cualquier tipo de aplicación.
d) Tener una cuenta de Google, registrarse en la consola del desarrollador de Google Play y tener acceso a Google Drive para aplicaciones gratuitas.
e) 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.


Muchos programadores se han pasado al desarrollo de aplicaciones para Android porque...

a) Se utiliza una versión mejorada de Eclipse, un entorno de desarrollo integrado pensado para principiantes.
b) Se utiliza Java y XML, dos de los lenguajes más populares en el mundo de la programación.(Respuesta)
c) Se utiliza Graphical Layout, una herramienta incluida en Eclipse que permite desarrollar las interfaces gráficas de las aplicaciones directamente desde código.


Varias aplicaciones Android pueden compartir datos usando los elementos llamados:

a) Servicios.
b) Filtros de intenciones.
c) Receptores.
d) Proveedores de contenido.(Respuesta)
e) Actividades.


El manifiesto de un proyecto Android no incluye información sobre...

a) Versión del ADT Bundle con la que se ha desarrollado la aplicación.(Respuesta)
b) Permisos que requiere la aplicación.
c) Librerías que necesita la aplicación.
d) Componentes que forman parte de la aplicación.


Con el ADT Bundle se pueden crear aplicaciones Android usando para el desarrollo solo computadores con sistemas operativos...

a) Linux.
b) Windows.
c) Mac.
d) Los tres anteriores.(Respuesta)
e) Android.
f) iOS.
g) Los dos anteriores.


El SDK de la distribución de Android es:

a) El kit estándar de desarrollo, que incluye documentacióon sobre programación en Android y ejemplos de uso.
b) El kit estándar de desarrollo, que incluye herramientas de desarrollo, una copia de la última versión de Android, emuladores y dispositivos virtuales.(Respuesta)
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.


La descripción de la interfaz gráfica de las aplicaciones Android se basa en los siguientes 3 elementos:

a) Service, ViewGroup y Layout.
b) Layout, ViewGroup y View.(Respuesta)
c) Layout, ViewGroup y Java.
d) Graphical Layout, ViewGroup y View.
e) Service, Graphical Layout y View


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 4000 tipos distintos de dispositivos, que ni siquiera comparten la misma versión del sistema operativo.(Respuesta)
d) Que divide a los dispositivos en subcategorías, como "phablet", un producto a caballo entre el móvil y la tableta.


La publicación de una aplicación para Android puede realizarse...

a) Generando un archivo APK, similar a un ZIP, y copiándolo directamente en la memoria del teléfono de nuestros usuarios.(Respuesta)
b) Previo pago de una cuota periódica impuesta a los desarrolladores por Google.
c) Desde un emulador de dispositivos virtuales (o ADVs).
d) Compartiéndola directamente con otras personas o poniéndola a disposición del público a través de una tienda digital como Google Wallet.


El desarrollo de una aplicación en Android necesita:

a) Contar con al menos un dispositivo Android. Dadas las caracterísitcas 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.(Respuesta)


Modulo 5- Submódulo 2 iOS- Parcial 3 Prácticas

Práctica:

-Con tu equipo de 5 personas; crear una aplicación util oara la vida cotidiana.

-Subirla a la App Store

-Mostrar que funcione.

Modulo 5- Submódulo 2 iOS- Parcial 3 Teoría

Cambio de vista simple

Tanto para los diseñadores y desarrolladores de aplicaciones móviles para iOS como para aquellos otros que tengan curiosidades acerca del funcionamiento de las aplicaciones móviles, iOS Human Interface Guidelineses un documento elaborado por la propia Apple, que se puede descargar gratuitamente desde la iTunes Storepara su acceso desde la aplicación iBook desde hace pocos meses, en el que se ofrece precisamente eso, todos los aspectos posibles que tienen que cumplir la interfaz de las aplicaciones desarrolladas para la plataforma iOS a modo de normas, recomendaciones y consejos, incluyendo aspectos cromáticos, empleo de tipografías, disposición de textos, etc.


Anteriormente, toda esta información estaba disponible solamente en el portal de desarrolladores, como señalan desde Gizmodo, pero que recientemente ya es posible su consulta a través de dispositivos móviles iOS que cuenten con la aplicación iBooks desde la versión 1.5 en adelante, o desde equipos de escritorio OSX con iBooks 1.0 en adelante. Eso sí, este documento, de más de 300 páginas, está disponible solamente en ingles, aunque cuenta numerosas ilustraciones que puede permitir ser medianamente entendible por lectores de otros idiomas.


De este modo, aquellos interesados en las aplicaciones móviles para iOS ya conocerán los patrones que Apple exige y recomienda a los desarrolladores de aplicaciones, con la idea de que el funcionamiento de las aplicaciones sea similar, evitando así la confusión de los propios usuarios a la hora de utilizar las mismas en su día a día.

Vistas de tabla


Cuando construimos cualquier aplicación IOS, tarde o temprano mostraremos datos en una ventana con una vista de tipo UITableView.
Tal como comentaba en el último tutorial en mi juego me puede interesar tener una pantalla donde mostrar las puntuaciones y podría ser un buen modo de hacerlo.

A mi me gusta hacer una aplicación nueva desde el principio donde probar de un modo aislado lo que quiero hacer y después trasladarlo a la aplicación principal: de ese modo lo haces dos veces: la primera guarreando un poco y la segunda, en plan kata, tratando de mejorar el diseño. Os muestro las capturas de la primera aplicación ejemplo con el código imprescindible.

Creamos un proyecto de tipo vista simple en XCode 4.5.1.

Lo llamamos EjemploTablaDatos.

La aplicación se basará en una primera ventana donde introduciremos datos de puntuaciones. Esto realmente no existirá en la aplicación final sino que al terminar la partida se grabarán automáticamente. El código será el mismo pero ahora lo simulamos con un botón.

Después tendremos nuestra tabla de datos donde visualizaremos los datos introducidos.
Al pinchar la flecha del detalle volveremos a mostrar los datos.

Lo primero es ir a XCode y montar el StoryBoard completo.

Partimos de la configuración por defecto:

Tenemos un ViewControler pero vamos a querer navegar entre pantallas por los que necesitamos un Navigation View Controller.

Persistencia de datos

Os recomiendo buscar en Google: «appdelegate vs singleton» y encontraréis otros buenos artículos dando solución al problema.

Básicamente podemos: O bien usar un objeto global a toda la aplicación y añadirle la estructura de datos o bien utilizar una variable global. Bueno, hay una variación a esta última que es crear un Singleton para garantizar que hay una única instancia del objeto en memoria y que los accesos están sincronizados (más vale prevenir problemas de concurrencia).

Yo lo voy a hacer del modo más sencillo posible (que no el mejor) y voy a aprovechar el objeto que representa el delegado de la aplicación.
Desde cualquier parte de la aplicación se puede acceder a través de la linea:

Uno de los principales problemas que se puede percibir antes de empezar es que al AppDelegare le demos más responsabilidad del que le corresponde por lo que voy a crear una clase gestora (recordad las clases de análisis) que me permita interactuar con mi almacén de datos. De este modo, desde cualquier sitio accederé a la instancia de esta clase gestora y no contaminaré la clase que representa la aplicación.

Sería casi una buena idea modelar lo que vamos a hacer antes de hacerlo. Os recomiendo revisar un antiguo tutorialsobre el tema.
Respecto a UML me voy a bajar Visual Paradigm for UML versión 10.0 Community Edition para Mac y así aprovecho y lo pruebo.

La clase AppDelegare tendrá una propiedad de tipo Gestor (que es un interfaz marcador) que será inicializado a un objeto de la clase GestorPuntuaciones. GestorPuntuaciones representa una colección de objetos de tipo Puntuación y los métodos para manipularlas.

Nuestras vistas sólo usarán el AppDelegate para obtener el Gestor adecuado por lo que el nivel de acoplamiento entre el AppDelegate y el GestorEspecífico es bajo. De echo podría ser inexistente si se le inyectase o utilizase una factoría para conseguirlo. De momento no vamos a complicar más el problema porque sino me voy a ir del objetivo de la aplicación: lo que tampoco podemos hacer es obviar la complejidad en los diseños de cualquier tipo de aplicación, sobre todo cuando hagamos muchas para muchos clientes y queramos ir construyendo un «framework» de buenas soluciones.

Tipo de Licencias para desarrolladores.

Actualmente existe 4 tipo de licencias, las que detallare a continuación:

  1. Account Developer WebSitetLicencia gratuita, solo requiere registrarse en la Web de Apple. Permite acceder a: .- Documentación técnica (Versiones Finales) .- Herramientas de desarrollo (Versiones Finales) .- Probar las aplicaciones en el Simulador de XCode.
  2. IOS University ProgramsLicencia gratuita, pero solo para algunas Universidades que se encuentre incluidas en el programa..- Permite instalar las aplicaciones en el dispositivo
  3. IOS Developer Program Licencia con un costo de USD 99 al año, adicionalmente se tiene acceso a: .- Documentación técnica (Versiones beta) .- Herramientas de desarrollo (Versiones beta) .- Descarga de firmwares Betas para probar en la App a desarrollar. .- Permite instalar las aplicaciones en el dispositivo, previo registro en la App Store. .- Permite publicar y comercializar aplicaciones en la App Store con unos beneficios del 70% sobre el precio de venta que definamos
  4. IOS Developer Enterprise Program Licencia con un costo de USD 299 al año, esta orientada a las aplicaciones corporativas privadas. Permite acceder a: .- Publicar aplicaciones en forma privada para ser instaladas en los dispositivos de los empleados

Para inscribirse en el portal deben realizarlo en : https://developer.apple.com/account/Esta cuenta pueden utilizarla para acceder al portal de desarrollador y para acceder al iTunes Connect que es donde se puede distribuir las aplicaciones.

Modulo 5- Submódulo 2 iOS- Parcial 2 Quiz

El proceso de desarrollo más adecuado es...

a) Cualquiera vale.
b) Un proceso ágil.(Respuesta)
c) Un proceso bien definido y fuertemente estructurado.


El equipo de desarrollo no necesita contar con...

a) Especialistas en gráficos y audio.
b) Diseñadores y programadores.
c) Especialistas en calidad y marketing.
d) Traductores.
e) Economistas.(Respuesta)


Planificar el desarrollo de apps en sencillo.

a) Sí, son aplicaciones como cualquier otra.
b) No, existen factores que las diferencian del software tradicional.(Respuesta)
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.


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 initerfaz, y maquetas o prototipos que ilustren los aspectos esenciales de la aplicación.(Respuesta)
e) La planificación del posible desarrollo de la idea de aplicación.


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.(Respuesta)


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.(Respuesta)
b) La duración de la batería.
c) La conectividad.
d) CPU, memoria y espacio de almacenamiento.


¿Cuáles son las mejores opciones para obtener un nicho de mercado para tu app?

a) Aplicación para todo el mundo.
b) Nuevo tipo de aplicación.
c) Usuarios satisfechos.
d) Grupos restringidos.(Respuesta)


¿Cómo analizo la competencia?

a) Utilizando sus aplicaciones.(Respuesta)
b) Pidiéndoles información como estadísticas de uso o fidelidad de los clientes.
c) Analizando comentarios positivos en las tiendas de aplicaciones.


¿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.(Respuesta)
d) In-app billing.


¿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.(Respuesta)


Modulo 5- Submódulo 2 iOS- Parcial 2 Prácticas.

Práctica:

-En equipos de 2 personas

- Hacer una animación de cualquier tipo en Swift

-Presentarla a tu maestro o tutor

Modulo 5- Submódulo 2 iOS- Parcial 2 Teoría.

Metodología de creación de apps

¿Cómo crear una app? Paso 1: la idea


Todo producto con éxito, servicio o empresa empieza con una idea. Para llegar a ella, el incentivo puede ser cualquier cosa, desde la necesidad de resolver un problema o ayudar a otras personas. Tal vez, tu idea puede mejorar tus procesos comerciales o respaldar el servicio al cliente. Sea lo que sea, tener una idea es clave pero, ¿cómo se puede saber si es una buena idea?

Por lo tanto, te recomendamos hacerte dos preguntas:

Mi idea para la aplicación, ¿encaja con mi negocio?


¿Se ajusta la idea de la aplicación al mercado?


Tú eres quien conseguirá que la app sea un éxito y son los creadores quienes son capaces de convertir una idea en una aplicación en auge, como les ocurrió a Jan Koum de WhatsApp o a Evan Spiegel de Snapchat. 


¿Cómo crear una app? Paso 2: el objetivo

El segundo paso para saber cómo hacer una app es determinar tu objetivo principal. ¿Qué quieres conseguir con la aplicación? ¿Por qué quiero poner en marcha esta idea?

En el caso de que tu objetivo primordial sea ganar dinero, lo primero que hay que hacer es crear un plan de negocios. Piensa en estrategias para monetizar tu app y en cómo podrías financiar el proyecto. Además, será necesario elegir un modelo de ganancias para, después, poder conseguir beneficios.

Si quieres saber cómo hacer una app, debes saber que la mayoría de las aplicaciones están desarrolladas para obtener ganancias económicas. Aunque, por supuesto, puede haber otras razones como, por ejemplo, apoyar a una empresa, optimizar procesos internos, ayudar a otros o ahorrar dinero. Pero, independientemente de tu idea, asegúrate de conocer al máximo cuál es tu objetivo principal.


¿Cómo crear una app? Paso 3: tu público objetivo

A la hora de saber cómo crear una app, tu target determinará el éxito de tu aplicación de dos modos:

  • Si van a usar la aplicación, que querrá decir que existe una demanda de ella
  • Si la app es fácil de usar, se satisfacen sus necesidades y, por tanto, los usuarios están satisfechos.

A la hora de conocer el desarrollo de apps, debes saber que las tres razones más comunes por las que los usuarios descargan una app funcional, es porque es útil, divertida o porque alguien le ha recomendado utilizarla. En el caso de las aplicaciones de juegos, por regla general, funcionan del mismo modo aunque, además, los usuarios suelen estar influenciados por otro factor: la crítica. Esto significa que es importante tener altas calificaciones y reseñas en la tienda de apps. En cambio, en las aplicaciones más funcionales, esto no tiene prácticamente ninguna importancia.

Cocoa touch

Cocoa Touch es un API para la creación de programas para el iPadiPhone y iPod Touchde la compañía Apple Inc. Cocoa Touch proporciona una capa de abstracción al sistema operativo iOS.

Cocoa Touch se basa en el set de herramientas que proporciona el API de Cocoa para crear programas sobre la plataforma Mac OS X.

Herramientas para desarrollar aplicaciones basadas en Cocoa Touch se incluyen en el SDK de iOS.

Swift (lenguaje de programación)

Swift es un lenguaje de programación multiparadigma creado por Apple enfocado en el desarrollo de aplicaciones para iOS y macOS. Fue presentado en WWDC 2014[7]​ y está diseñado para integrarse con los Frameworks Cocoa y Cocoa Touch, puede usar cualquier biblioteca programada en Objective-C y llamar a funciones de C. También es posible desarrollar código en Swift compatible con Objective-C bajo ciertas condiciones. Swift tiene la intención de ser un lenguaje seguro, de desarrollo rápido y conciso. Usa el compilador LLVM incluido en Xcode 6. Fue presentado como un lenguaje propietario, pero en el año 2015, con la versión 2.2 pasó a ser de código abierto[8]​ con la Licencia Apache 2.0.

Thursday, May 30, 2019

Modulo 5 -Submodulo 2 iOS -Parcial 1 Quiz.

Quiz

¿En qué generación aparece la itinerancia internacional (roaming)?

a) 0G.
b) 1G.(respuesta)
c) 2G.
d) 2.5G.
e) 3G.
f) 3.5G.
g) 4G.


La estrategia para obtener beneficios de una aplicación…

a) Es independiente del sistema operativo y plataforma adoptada, porque en todos los casos el comportamiento de los usuarios es muy similar.
b) Debe basarse en cobrar un precio por la descarga de la aplicación.
c) Debe basarse en la publicidad porque los usuarios de dispositivos móviles no están acostumbrados a pagar por sus descargas.
d) Debe orientarse según un análisis previo del perfil de los potenciales usuarios, porque puede haber variaciones significativas.(Respuesta)
e) Debe dirigirse a aquellas plataformas donde hay un mayor porcentaje de usuarios que paga por sus aplicaciones o es influido por la publicidad.


La tipología de las aplicaciones más populares se caracteriza por:

a) La uniformidad respecto a nivel mundial y por sistemas operativos.
b) La existencia de ligeras variaciones geográficas, y más notables por sistema operativo.(Respuesta)
c) El predominio absoluto de los juegos. 


La evolución del panorama de los sistemas operativos para móviles se caracteriza por…

a) Su estabilidad, con el mismo par de sistemas operativos dominando tradicionalmente el mercado.
b) El predominio de Android e iOS desde antes de la llegada de los smartphones.
c) Su permanente evolución.(Respuesta)


¿En qué generación aparecen los mensajes cortos de texto (SMS)?

a) 0G.
b) 1G.
c) 2G.(Respuesta)
d) 2.5G.
e) 3G.
f) 3.5G.
g) 4G.


¿Los usuarios de qué plataforma se muestran más propensos a comprar aplicaciones y son más receptivos a la publicidad en ella?

a) Android
b) iOS(Respuesta)
c) No existen diferencias significativas entre estas plataformas (Android e iOS).


¿Cuál de las siguientes plataformas de desarrollo no es nativa?

a) Blackberry
b) Firefox OS
c) iOS SDK
d) Symbian(Respuesta)
e) Windows Mobile


¿En qué generación se deja de utilizar la conmutación basada en circuitos para voz?

a) 0G.
b) 1G.
c) 2G.
d) 2.5G.
e) 3G.
f) 3.5G.
g) 4G.(Respuesta)


¿En qué generación se comienza a usar telefonía digital?

a) 0G.
b) 1G.
c) 2G.(respuesta)
d) 2.5G.
e) 3G.
f) 3.5G.
g) 4G.


El panorama actual de las plataformas de desarrollo se caracteriza por…

a) El predominio de las plataformas nativas, que son las únicas aptas para los smartphones.
b) Las aproximaciones multi-plataforma se basan en el uso de tecnologías web.
c) La coexistencia de propuestas nativas y multi-plataforma, cada una de ellas con sus propias ventajas e inconvenientes.(Respuesta)
d) Android e iOS son las dos plataformas de desarrollo nativas existentes.