- 0G: desde finales del siglo XIX.
- Telefonía basada en radio.
- Establecimientos específicos, navegación marítima, militares, coches, etc.
- 1G: finales de los años 80.
- Telefonía analógica.
- Destinada a empresas.
- Motorola desarrolla el primer dispositivo.
- Aparece la itinerancia de datos.
- 2G: años 90.
- Telefonía digital basada en conmutación de circuitos.
- Canal de comunicación extremo a extremo.
- Se utiliza GSM.
- Itinerancia internacional.
- SMS para mensajes de texto cortos.
- MMS para mensajes multimedia.
- 3G: principios de los años 2000.
- Comunitación basada en paquetes para transmitir datos.
- Estándar UMTS: 384 kbps - 2Mbps.
- 4G: finales de los años 2000 y 2010.
- Solo utiliza conmutación de paquetes.
- Desaparece la conmutación de circuitos para voz.
- Mayor tasa de tranmisión.
- Protocolos: WiMAX, LTE, LTEA.
- 5G: estimada para comienzos del 2020. En desarrollo actualmente.
- Mayores tasas de transferencia de datos: 10Mbits/segundo.
- Soporta a un mayor número de conexiones simultáneas: 10000 usuarios.
- Soporte a un mayor número de dispositivos registrados simultáneamente: 100000 dispositivos.
- Eficiencia en el uso del espectro.
- Escalabilidad.
-
Un dispositivo móvil es:
- Recurso computacional.
- Fácilmente transportable.
- Tamaño reducido.
- Interactivo.
- Capacidad de comunicación.
- Integra múltiples sensores y actuadores.
- Caracteríticas variables entre dispositivos.
- Tienen su propio SO.
- Pueden ejecutar apps.
-
Funcionalidad / capas
- Terminal: implementada en el HW por el fabricante.
- Ej. captar la señal de las antenas.
- Sistema operativo: servicio básico
- Convierte la señal en datos numéricos.
- Aplicaciones: proporiona funcionalidad adicional sobre el SO.
- Visualización de datos en un diagrama de barras.
- Cada capa construye sobre los servicios de las anteriores.
- Proporiona una visión uniforme.
- La funcionalidad básica es limitada.
- Terminal + sistema operativo.
- Casi todos los usuarios la extienden con aplicaciones.
- Terminal: implementada en el HW por el fabricante.
-
Apps nativas vs multiplataformas
-
Nativas
- Desventajas
- Solo en un sistema operativo
- Ventajas
- Servicios avanzados como localización, acelerómetro, notificaciones, etc.
- Velocidad de respuesta.
- Sin límite de almacenamiento.
- Dependencia reducida de la conectividad.
- Desventajas
-
Multiplataformas
- Desvenetajas
- Peor experiencia de usaurio.
- Requiere conectividad.
- Ventajas
- Más barato.
- Múltiples sistemas operativos.
- Basado frecuentemente en tecnologías webs.
- Independiente de stores.
- Sin instalación ni mantenimiento en el cliente.
- Desvenetajas
-
Conclusiones
- Los móviles y sus apps ya están presentes en todo el mundo.
- El panorama no deja de evolucionar.
- Gran fragmentación
- Heterogeneidad de dispositivos.
- Diferentes sistemas operativos.
- Múltiples posibilidades de desarrollo.
-
- Momentos de uso
- Estamos dispuestos a esperar solo en situaciones donde sabemos que los retrasos son comunes.
- Ej: navegadores solicitando una página web.
- Siempre que haya información de progreso.
- Estamos dispuestos a esperar solo en situaciones donde sabemos que los retrasos son comunes.
- Tiempos de uso
- El usuario suele tener poco tiempo para usar la aplicación.
- Existe incertidumbe sobre la interacción.
- Requerimos reacción inmediata.
- ¿Qué buscamos?
- Usar una app supone dedicarle parte de nuestro valioso y escaso tiempo.
- Exigentes con lo que nos ofrecen.
- Las apps deben ser:
- Útiles.
- Intuitivas.
- Divertidas.
- De uso frecuente.
- Monetización de las apps
- La elección del modelo de monetización y de la plataforma es importante.
- Depende del público objetivo y de la app.
- El usuario de iOS gasta en apps 4 veces más que el de Android.
- Buen análisis previo.
- Causar muy buena impresión.
Para diseñar y crear una aplicación móvil es fundamental: conocer el proceso general que conlleva desarrollar una aplicación móvil, identificar el problema a resolver con una app, identificar nuestro público objetivo, analizar la competencia, comprender las necesidades por familias de dispositivos asociadas al desarrollo de apps para dispositivos móviles y saber los perfiles profesionales que suelen ser necesarios en los proyectos de desarrollo de apps.
- ¿Por qué alguien quiere comprar nuestra aplicación? Tipos:
- Sustituyen aplicaciones que antes se usaban en equipos de escritorio.
- Sustituyen elementos de la vida cotidiana como son la de lista para hacer la compra.
- Proporcionan funcionalidades nuevas.
- Tener claro que las apps móviles satisfances necesidades.
- Dos tipos de apps móviles:
- Las que nos han hablado bien de ellas, se descargan y se prueban.
- Sirven para gestionar el correo, redes sociales, mensajería, etc.
- Identificar nicho de mercado.
- Tener en cuenta la manera en que los usuarios van a usar la app.
- Identificar necesidades.
- Preguntar/consultar qué aplicaciones hacen falta o les gustaría tener a la gente.
- Analizar la competencia.
- ¿Cómo puedo mejorarla?
- ¿Cómo analizarla?
- Buscar aplicaciones similares y descargarlas y buscar puntos fuertes y débiles.
- Ver puntuaciones y comentarios.
- Consultar a externos: qué tienen y qué necesitan.
- Actuar rápido en desarrollar la aplicación.
- Tener cuidado con los detalles.
- Tener en cuenta al desarrollar una app móvil:
- Características diferentes a las apps de PC.
- Capacidad de procesamiento.
- Memoria.
- Duración de batería.
- Pensar a largo plazo.
- Ver evolución de la aplicación.
- Escalabilidad.
- Características de pago.
- ¿Una sola plataforma o varias? ¿Distintas versiones de SO? ¿Adaptar app para cada SO o igual en todos?
- ¿Dispositivos a soportar? ¿Smartphones y/o tablets?
- Sensores a utilizar. ¿Y si no dispone de los sensores elegidos?
- Limitación del hardware.
- Conectividad. ¿Qué hacer cuándo no tiene datos/wifi?
- Posicionamiento.
- ¿Dispositivo real o emulador?
- Evolución.
- Mantenimiento.
- Actualizaciones.
- Nuevas características.
- Localización.
- Escalabilidad.
- Publicación.
- Monetización.
- Gratuita.
- De pago.
- In-app billing.
- Campañas de marketing para llegar a los usuarios final.
- Si el coste de la campaña de marketing es superior a los beneficios esperados, hay que buscar maneras distintas de distribuir la aplicación.
- ¿A qué nos enfrentamos?
- Terreno casi desconocido.
- Nuevos conceptos.
- Nuevas interfaces.
- Distinta interacción.
- Distinta distribución.
- Distintos usuarios.
- Pocas reglas.
- Terreno casi desconocido.
- Roles del equipo de desarrollo.
- Productor: dirige el impulso del desarrollo y mitiga los riesgos.
- Diseñador: refinan el concepto de la aplicación y el diseño funcional. Prueban los prototipos que se van lanzando.
- Programador: personas con experiencia.
- Diseñadores gráficos: desarrollar interfaces gráficas, botones, etc.
- QA: prueba del producto en el mayor nº de equipos posibles.
- Localización: traductores de la aplicación.
- Marketing: posicionamiento de la app en el mercado.
- Proceso de desarrollo ágil:
- Concepto: documento no muy largo con las características principales de la aplicación.
- De 1 a 3 páginas.
- Capturas de pantalla, maquetas y lista de características.
- Documento de requisitos de marketing.
- Diseño (Preproducción)
- Integridad en diseño.
- Diagramas, maquetas, tablas, etc. así los desarrolladores sabrán que hacer con más detalles.
- Planificación del desarrollo.
- Producción:
- Los programadores terminan de construir la aplicación y comienza su funcionamiento correctamente.
- Marcar hitos.
- Finalizar características básicas primero.
- Para cada hito: concepto, planificación, producción correcta.
- Testeo y postproducción
- Aspecto gráfico.
- Funcionamiento.
- Utilización de recursos.
- Optimización.
- Puede llevar 1/3 del tiempo de desarrollo para probar la aplicación y comprobar que no se producen fallos.
- Lanzamiento
- Fallos grandes:
- Eliminar características para que la app funciona correctamente.
- Fallos grandes:
- Soporte
- Mantenimiento y actualizaciones.
- Planificar extensiones y mejoras.
- Gráficos.
- Compatibilidad con nuevos dispositivos.
- Idiomas.
- Pueden ser de todo tipo.
- Planificación del desarrollo
- Aplicar la regla de los tres tercios:
- Planificación y diseño.
- Interfaz, diseño gráfico y codificación.
- Testeo de la aplicación.
- Estimar tiempo
- Ecuación: sumar el tiempo mejor + tiempo peor + 4 veces el tiempo de desarrollo más probable dividido entre seis.
- Te = (Tm + Tp + 4*Tmp) / 6
- Variante, aplicada a videojuegos:
- Te = (Tm + 3Tp + 2Tmp) / 6
- Tener en cuenta riesgos y que puede haber retrasos.
- Ecuación: sumar el tiempo mejor + tiempo peor + 4 veces el tiempo de desarrollo más probable dividido entre seis.
- Aplicar la regla de los tres tercios:
- Concepto: documento no muy largo con las características principales de la aplicación.
- Plataforma más popupar para apps móviles.
- Baja inversión inicial: todo gratuito o de bajo coste.
- Distinciones
- Sistema operativo: basado en el núcleo de Linux (kernel).
- Entorno de ejecución.
- Entorno de desarrollo: Android estudio.
- Kit estándar de desarrollo: SDK
- Entorno de desarrollo: IDE
- Cada versión de Android proporciona un nuevo nivel de la API.
- Android 1.0 - API 1
- Android 1.5 - API 3
- Android 3 - API 11
- Etc.
- Fragmentación.
- Arquitectura de capas.
- Proveedores de dispositivos: trabajan a nivel de hardware
- Consorocio liderado por Google: softwarte
- Usuarios: a nivel de apps.
- Licencias: garantizan que se pueden conocer y modificar todas las partes software de la plataforma.
- Android Studio: entorno de desarrollo (IDE).
- Componentes básicos
- Kit estándar de desarrollo: SDK. Entorno de ejecución, librerías, emuladores, ejemplos de código fuente, etc.
- SDK manager: herramienta para gestionar los componentes (librerías) instalados con el SDK. Se puede instalar una determinada versión de SO Android.
- Incorpora herramientas necesarias para la gestión de los emuladores (AVD).
- Se realizan las primeras pruebas de las APPs con estos entornos virtuales.
- Android Studio IDE: entorno de desarrollo.
- Se pueden diseñar las interfaces gráficas arrastrando componentes sobre un lienzo.
- Documentación
- Android Developers.
- Distribute: gestores interesados en distribuir su app.
- Desing: diseñadores gráficos centrados en la estructura y programación de apps.
- Develop: desarroladores centradso en la estructura y programación de apps.
- Android Developers.
- Kit estándar de desarrollo: SDK. Entorno de ejecución, librerías, emuladores, ejemplos de código fuente, etc.
- Estructura básica:
- Clases java: componentes de la app y predefinidas en la plataforma.
- Actividades
- Interfaz de usuario.
- Tareas cortas.
- Servicios
- Tareas largas.
- Sin interfaz de usuario.
- Receptores de notificaciones
- Tratan avisos globales del sistema.
- No tienen interfaz, pero pueden usar la barra de notificaciones.
- Actividades
- Clases auxiliares
- Creadas desde cero.
- Pueden utilizar elementos de la librería, pero no son modificaciones de ellos.
- Recursos: elementos estáticos (no describen funcionalidad): diseño de un formulario, imagen, sonido, secuencia de palabras, etc. Estos se usan desde las clases.
- Se utilizan por los asistentes automatizados.
- Descripción de la parte de la interfaz: layouts.
- Menús.
- Apariencia de elementos de interfaz: style.
- Colores: color.
- Gráficos como mapa de bits o XML: drawable.
- Texto: string, array o plurals.
- XML.
- Manifiesto: describen diferentes permisos y requisitos de la app:
- Versión mínima de la plataforma Android para que funcione.
- Que la app necesita acceder a la agenda, etc.
- AndroidManifest.xml
- Nombre completo de la app.
- Componentes que forman parte de la app.
- Permisos (acceso agenda, micrófono, etc).
- Niveles de la API requerido.
- Clases java: componentes de la app y predefinidas en la plataforma.
- Sistema operativo de los dispositivos móviles de Apple.
- No se puede ejecutar en dispositivos de otras compañías.
- Apareció en 2007 con el primer iPhone.
- Con OSx tienen en común herramientas y utilidades.
- iOS Human Interface Guidelines: dan consejos de como debe funcionar la aplicación.
- Guía de revisión de aplicaciones: todo lo que NO debemos hacer si se busca que aprueben la aplicación en el App Store.
- Se necesita un ordenador de Apple para desarrollar aplicaciones para iOS.
- Xcode: IDE para desarrollar de las apps para iOS.
- Se necesita un Apple ID.
- Si se quiere subir una APP hay que adquirir una cuenta de desarrollador (99$ anuales).
- Se utiliza Objective-C y Swift.
Capas de iOS
- Siempre se recomienda empezar a programar utilizando la capa más alta.
- Se baja a niveles inferiores cuando no se puede realizar desde la capa superior.
- Cada capa se compone de diferentes frameworks.
- UIKit: interfaz de usuario.
- CoreData: base de datos.
- CoreGraphics: dibujos y gráficos.
- AVFoundation: grabación, edición y reprodución de audio y vídeo.
- GLKit: ayuda en la integración de 3D con el motor OpenGL.
- MapKit: mostrar mapas.
- SpriteKit: dev de juegos 2D.
- StoreKit: gestionar in-app purchases.
- Etc.
-
Capas
- Cocoa Touch
- Media
- Core Services
- Core OS
-
Estructura: modelo-vista-controlador
- Componente básico: View controller
- Representa cada una de las pantallas de la aplicación.
- Se encarga de la gestión de las diferentes vistas de la pantalla.
- También de la entrada del usuario a través de tabs o gestos sobre la interfaz.
- Se encarga también de la comunicación con el modelo y de la actualización de las vistas cuando corresponda.
- Tour por Xcode.
- Ejemplo: aplicación para iOS de una sola vista.
- Storyboard: archivo en el cual se define el interfaz de las diferentes pantallas de la aplicación.
- Tipos: desarrollo web
- Experiencia más usable.
- Adecuado para desarrolladores con experiencia web.
- Consumo a través del navegador.
- Requiere internet.
- Tipos: desarrollo no-nativo
- Aplicaciones con necesidades más específicas.
- Adecuado para desarrolladores con experiencia en algún lenguaje de programación específico.
- Consumo a través de la aplicación.
- Ejemplos de tecnología
- HTML5 + jQuery Mobile.
- Angular JS + MaterializeCSS.
- Ejemplos de desarrollo no-nativo
- PhoneGap.
- Apache Cordova.
- Unity.
- Appcelerator.
- Xamarin.
- Multiplataforma vs no-nativo
- Ventajas
- Reduce costes: tiempo y perfiles tecnológicos.
- Cube más cuota de mercado.
- Inconvenientes
- No explota todo el potencial del dispositivo.
- Ventajas
- Se pueden crear aplicaciones: webapps.
- Se consumen desde el móvil.
- HTML5
- Colección de estándares para el diseño y desarrollo web.
- Compatible con la mayoría de los navegadores.
- Focalizado en responsive web design.
- Capa de presentación => contenido estático.
- CSS 3
- Último estándar.
- Personaliza el contenido de HTML5.
- Javascript
- Lenguaje de programación interpretado por el navegador.
- jQuery Mobile
- Angular JS
- Mantenido por Google.
- Cargan el contenido bajo demanda.
- Permite patrone de diseños múltiples (MVC o MVVM) para SPA.
- Es posible unir código de JS a elementos HTML (binding code). Una modificación sobre el elemento de código se ve reflejado en la vista HTML.
- Materializecss
- Framework para un estilo material desing.
- Capa de presentación muy familiar para el usuario puesto que sigue patrones de diseño aplicados por Google.
- HTML5
- Apps híbridas.
- Web app con envoltorio preparada para ejecutarse como una app nativa.
- Expone una API para acceder a elementos propios del dispositivo (acelerómetro, cámara, contactos, notificaciones, etc.)
- Aumentar percepción del mundo usando medios artificiales.
- Implica incorporar más información y la forma en la que se consigue.
- Proporciona al ojo estímulos adicionales que enriquezcan la percepción del estímulo.
- Brújula.
- Colocación del teléfono: giroscopio y acelerómetro.
- Cámara
- Requisitos para la realidad aumentada
- Sensores
- Ámbitos de aplicación
- Arqueología
- Diseño (arquitectura/industria)
- Arte
- Comercio
- Construcción
- Vida diaria
- Juegos
- Etc.
- Realidad mixta o híbrida: no es una realidad aumentada como tal, más bien es una alteración de la realidad en la cual se incorporan elementos virtuales.
- Planos
- Muebles
- Diseños
- Etc.
- Esfuerzo tecnológico
- Elegir plataforma e instalar. Algunas no necesitan instalación (Layar).
- Desarrollar la aplicación en el PC.
- Probar la aplicación en el móvil.
- Esfuerzo creador
- Contenido artículos.
- Contenidos de información.
- Plataformas
- Vuforia
- Layar
- ARToolKit
- Kudan
- Wikitude
- HoloBuilder
- Marcadores
- Permiten reconocer una zona concreta y volcar información sobre ella.
- No vale cualquier marcador, tiene que estar entrenada la aplicación-
- Imágenes mejor que códigos QR.
- Limitaciones
- Iluminación e imperfecciones: luminosidad, sombras, etc. puede hacer que el marcador se vea mejor o peor.
- Ubicación
- Exteriores.
- Interiores. Ubicación basada en señales Wifi o balizas de radiofrecuencias.
- Fase de definición
- APP
- Definir la finalidad
- Funcionalidades
- Actualizaciones
- Target
- Identificar público objetivo
- Estadísticas segmentadas
- Edad
- Género
- Origen
- Hábitos
- Necesidad
- Demanda
- Estadísticas segmentadas
- Identificar público objetivo
- Modelo de negocio
- Identificar el modelo de negocio más adecuado
- Publicidad
- Nº visualizaciones
- Nº clicks
- Quitar publicidad
- Por descarga
- Modelo Premium
- Modelo Freemium
- Publicidad
- Identificar el modelo de negocio más adecuado
- Competencia
- Estudio de mercado de apps similares
- Nº de descargas
- Frecuencia actualización
- Valoraciones
- Modelos de negocio
- Estudio de mercado de apps similares
- Stores
- Elegir la tienda de aplicaciones adecuada
- APP
- Identificar al usuario, atraerlo y retenerlo.
- Diseño: buena experiencia del usuario (UX).
- Prototipado
- Sketchap
- Invisionapp
- Feedback
- Escuchar al usuario.
- Test A/B
- Unas a un conjunto de usuarios y la otra, a otro grupo.
- Coger métricas de ambos para saber cual es la mejor.
- Prototipado
- Maximizar ASO (App Store Optimization)
- Características que posicionan mejor la app dentro de los markets.
- Iconos llamativos.
- Descripción.
- Screenshot vistosas.
- Revisar valoraciones.
- Actualizaciones.
- Captación
- Social media
- Gamificación: ayuda a atraer y retener usuarios.
- Facilita tareas monótonas.
- Minimiza tiempos de adopción.
- Google Play / ItunesConnect
- Estadísticas
- Herramientas complementarias
- Azure: AppInsights
- Información genérica.
- Custom event.
- Amazon webservices
- Amazon Mobile Analytics.
- Azure: AppInsights
- Herramientas complementarias
- Ingresos.
- Valoraciones.
- Errores y ANRS (Application Not Responding).
- Segmentación
- Dispositivo
- País
- Versión de SO
- Estadísticas
- Herramientas en la nube
- Adobe Analytics: Mobile Apps (Apache Cordova).
- Unity Analytics: mapas de calor.
- Business Intelligence (BI)
- Recopilar datos para crear informes, analizar el por qué y predecir comportamientos.
- Google Analytics.
- Localytics
- Asocia datos extraídos y los vincula a campañas de márketing.
- Flurry: interacción de usuario con la app, segmentación, geolocalización, etc.
- Otras: Apsalar, Bango, Distimo, MobClix, Mopapp, Testflught live, etc.
- Explicación del nacimiento del primer iPhone, como se creó su App Store y cómo influenció en los juegos.
- Salud y bienestar
- Pensadas para el gran consumo, no enfermos.
- Ayudan en la mejora de nuestro estado de forma.
- No orientada a la cura o mejoras de enfermedades.
- Ejemplo: Runtastic, Heart Rate.
- Características
- Ofrecen info sobre una enfermedad concreta.
- Herramientas que facilitan el tratamiento al paciente.
- Problemas
- El contenido supervisado por profesionales.
- La FDA americana certifica qué tipos de apps se consideran medical devices.
- España, Junta de Andalucía, promueve la iniciativa AppSaludable.
- Barreras
- > 60 años que no tienen smartphones y si lo tienen solo se utiliza la cámara.
- Protocolos de seguridad
- La bd debe estar debidamente securizada.
- Comunicaciones cifradas con protocolos SSL.
- Nadie, salvo el usuario mediante su clave privada, puede acceder a sus datos.
- Medicina
- Funcionalidades avaladas científicamente.
- Algoritmos de obtención de datos certificados.
- Orientadas a pacientes, médicos o ambos.
- Puntos clave
- Objetivos de negocio
- Pagos por descarga.
- Valor añadido como producto de un servicio más grande.
- Tipos de usuarios
- Paciente: perfil al que está enfocada la mayoría de apps de salud.
- Cuidador: familiar o persona cercana. Puede monitorizar al paciente y servirle de apollo.
- Médico: conexión con paciente. Bidireccional. Conexión interna entre médicos.
- Objetivos de negocio
- Idea inicial
- Búsqueda exhaustiva de iniciativas similares.
- ¿De qué manera se ha abordado el problema?
- Tamaño del mercado.
- Potencial margen de beneficios.
- Oportunidad de negocio.
- Coste de adquisición de clientes.
- Conocer los límites técnicos con los que se cuenta.
- Dimensionar de forma realista el alcance del proyecto.
- Proteger idea
- Desarrollarlas rápidamente.
- Madurar la idea.
- Acuerdo de confidencialidad (NDA).
- Evitar dar detalles sensibles.
- Trabajar a partir de un producto mínimo viable. (MVP)
- Reducir primera idea a las funcionalidades estrictamente básicas.
- Probar con usuarios reales.
- Feedback = versión mejorada.
- Elaborar un diagrama de pantallas. Diferentes menús y opciones.
- Centrarse en una sola plataforma en un principio.
- Planificar por fases el desarrollo de diferentes plataformas.
- Definición y planificación del proyecto.
- Equipo de desarrollo.
- Cuidar imagen del marca y pequeños detalles.
- Planificar el desarrollo como un proceso iterativo y flexible.
- Abiertos a cambios no previstos.
- Relación estrecha con el equipo de desarrollo.
- Tecnología a utilizar.
- Costes
- Desarrollo
- Puesta en marcha
- Mantenimiento
- Equipo técnico con experiencia.
- Comprender las necesidades del proyecto.
- Capaz de anticipar y solventar problemas técnicos complejos.
- Equipo con capacidad para la puesta en marcha del proyecto.
- Garantizar mantenimiento posterior al lanzamiento.
- Cuidad textos e imágenes.
- Planificar la gestión de cuentas y subidas de la app.
- Registrar nombre comercial, logotipo y dominio web.
- El desarrollo es solo el comienzo.
- No olvidar gastos futuros de mantenimiento, correctivo, evolutivo, etc.