Ing. Jos Carlos, Garca La Riva ndice Introduccin Sistemas existentes Programacin aplicaciones Programacin aplicaciones Conclusiones 1 ndice Introduccin Historia y evolucin Posibilidades Posibilidades Ejemplos aplicaciones Sistemas existentes Programacin aplicaciones Conclusiones 2 Introduccin Aumento de popularidad de las nuevas plataformas mviles: Smartphones Smartphones Tablets 3 Introduccin Muchas posibilidades: Conectividad (3G, Wifi, Bluetooth, NFC) Cmaras de fotos alta resolucin Cmaras de fotos alta resolucin Geolocalizacin Potencia de procesamiento Mercado para desarrolladores Y adems estn de moda 4 ndice Introduccin Historia y evolucin Posibilidades Posibilidades Ejemplos aplicaciones Sistemas existentes Programacin aplicaciones Conclusiones 5 Historia y evolucin La programacin para mviles no es algo nuevo 6 Historia y evolucin Sistemas operativos bastante extendidos: Symbian Windows Mobile Windows Mobile Java (J2ME) Amplias posibilidades desde el punto de vista tcnico, pero tambin limitaciones Distinta filosofa en aplicaciones: Centrado en funcionalidad Despreocupacin por experiencia de usuario 7 Historia y evolucin Qu ha cambiado? Telfonos tctiles (interaccin usuario) Mayor potencia y capacidades Pero sobre todo, el acceso directo a las aplicaciones (Ecosistema) 8 ndice Introduccin Historia y evolucin Posibilidades Posibilidades Ejemplos aplicaciones Sistemas existentes Programacin aplicaciones Conclusiones 9 Posibilidades Conectividad Acceso ubicuo servicios Internet: 3G , Wifi Bluetooth: comunicacin entre terminales, 10 Bluetooth: comunicacin entre terminales, accesorios NFC (Near Field Communication) Multimedia Cmara (fotos, vdeo, realidad aumentada) Reproduccin msica y vdeo Posibilidades Geolocalizacin GPS Localizacin basada en red (Wifi, telfono) Localizacin basada en red (Wifi, telfono) Mapas Potencia de procesamiento Procesadores avanzados (multi-core) GPU integrada 11 ndice Introduccin Historia y evolucin Posibilidades Posibilidades Ejemplos aplicaciones Sistemas existentes Programacin aplicaciones Conclusiones 12 Ejemplos aplicaciones Videojuegos 13 Ejemplos aplicaciones Realidad aumentada 14 Ejemplos aplicaciones Multimedia 15 Ejemplos aplicaciones Control remoto 16 ndice Introduccin Sistemas existentes Programacin aplicaciones Programacin aplicaciones Conclusiones 17 Sistemas existentes Existen gran cantidad de sistemas mviles: iOS Android Android Windows Phone 7 Meego Bada WebOS Blackberry OS 18 Sistemas existentes: iOS Sistema operativo de Apple Presente en iPhone, iPod Touch y iPad Ecosistema cerrado, controlado por Apple Ecosistema cerrado, controlado por Apple Actualmente versin 4 (beta 5 para desarrolladores) Interfaz de usuario multitctil, orientada a gestos Mercado de aplicaciones: App Store 19 Sistemas existentes: Android SO de Google (Open Handset Alliance) Orientado a Smartphones, y recientemente a Tablets recientemente a Tablets Versiones recientes Smartphones: 2.3 Gingerbread Tablets: 3.1 Honeycomb Interfaz multitctil (skins fabricantes) Diferentes mercados aplicaciones: Android Market, Amazon, Samsung 20 Sistemas existentes: Windows Phone 7 Sistema operativo de Microsoft Desarrollo reciente, menos implantado que iOS y Android que iOS y Android Actualmente versin 7.1 Mltiples fabricantes interesados (especialmente Nokia) Mercado propio: Windows Marketplace 21 Sistemas existentes: Meego SO iniciado por Intel y Nokia Fusin de Moblin y Maemo An en desarrollo, sin dispositivos en el mercado An en desarrollo, sin dispositivos en el mercado Amplia gama de plataformas: netbook, smartphone, TV https://meego.com/ 22 Sistemas existentes: Bada Sistema propio de Samsung, presente en la familia Wave Varios smartphones disponibles en el mercado Varios smartphones disponibles en el mercado Mercado de aplicaciones: Samsung Apps http://bada.com/ 23 Sistemas existentes: WebOS Originario de Palm, actualmente de HP Originario de Palm, actualmente de HP Sistema operativo para smartphone y tablets https://developer.palm.com/ 24 Sistemas existentes: Blackberry OS Sistema propio de Blackberry, para mviles y tablets. Ms orientado al usuario profesional. Ms orientado al usuario profesional. Sincronizacin contactos, correos, agenda Multitarea real Mercado de aplicaciones propio: Blackberry App World 25 26 Cuota de mercado Aumento importante del uso de smartphones (especialmente iPhone y Android) 27 ndice Introduccin Sistemas existentes Programacin aplicaciones Programacin aplicaciones iOS Android Comenzar a trabajar con Android Conclusiones 28 Programacin aplicaciones Quiero hace un programa A ser posible, venderlo y hacerme rico Por dnde empiezo? Por dnde empiezo? 29 Programacin aplicaciones Mismo flujo de trabajo para mayora plataformas: Diseo de aplicacin Diseo de aplicacin Desarrollo Pruebas Emulador Dispositivo Distribucin al mercado 30 Programacin aplicaciones Diseo de aplicacin: Qu va a hacer la aplicacin? Qu posibilidades ofrece el dispositivo/SDK? Qu posibilidades ofrece el dispositivo/SDK? Hay limitaciones? Diseo propiamente dicho Resto de fases, dependientes de plataforma iOS Android 31 ndice Introduccin Sistemas existentes Programacin aplicaciones Programacin aplicaciones iOS Android Comenzar a trabajar con Android Conclusiones 32 iOS Apple Developer Connection http://developer.apple.com/ Herramientas y recursos para todas las fases del Herramientas y recursos para todas las fases del flujo de trabajo Plataforma cerrada: importante tener en cuenta limitaciones (p.e. Bluetooth) Cuota de 99$/ao Requisito importante: tener un Mac! 33 iOS. Qu ofrece Aplicaciones para iPhone, iPod Touch, iPad Distribucin: App Store Game Center In-App Purchases 34 Publicidad: iAd iOS: Desarrollo Herramientas de desarrollo Xcode: entorno de desarrollo iOS Simulator iOS Simulator Interface Builder Recursos de desarrollo Foros de desarrolladores Documentacin diversa para empezar: herramientas, frameworks, mtodos de diseo Ejemplos de cdigo y How-Tos 35 iOS: Desarrollo Cocoa Touch: coleccin de APIs para iOS Multitarea Reconocimiento gestos Reconocimiento gestos Lenguaje de programacin Objective-C Orientado a objetos Combina ANSI C con Smalltalk Proporciona clases, herencia, polimorfismo Para ms informacin: iOS Dev Center 36 iOS: Pruebas No slo sobre simulador de iOS, sino dispositivos reales Instruments: recolecta informacin en tiempo Instruments: recolecta informacin en tiempo real del comportamiento de la aplicacin Optimizacin y resolucin de problemas Soporte tcnico de Apple 37 iOS: Distribucin Mercado de aplicaciones App Store El desarrollador escoge el precio 70% desarrollador 30% Apple 70% desarrollador 30% Apple Venta de productos y servicios directamente desde la aplicacin Posibilidad de poner publicidad con iAd Anunciantes buscados por Apple 60% de ingresos para el desarrollador 38 ndice Introduccin Sistemas existentes Programacin aplicaciones Programacin aplicaciones iOS Android Comenzar a trabajar con Android Conclusiones 39 Android Android developers http://developer.android.com/index.html Herramientas y recursos para todas las fases del Herramientas y recursos para todas las fases del flujo de trabajo Cuota de 25$ para toda la vida Vlido cualquier SO: Windows, Linux, Mac OS Mejor plataforma para quien quiera ir probando 40 Android. Qu ofrece Desarrollo aplicaciones para mviles y tablets de mltiples fabricantes: HTC, Samsung, Motorola, LG, Sony-Ericsson Distribucin de aplicaciones: Android Market 41 In-App Billing Social Gaming: OpenFeint Publicidad: AdMob - AdSense Android: Desarrollo Herramientas de desarrollo Eclipse + ADT Plugin Android SDK/NDK Android SDK/NDK Emulador Recursos de desarrollo Foros de desarrolladores Gua de desarrollo, artculos, discusiones sobre optimizacin, tutoriales Ejemplos de cdigo y How-Tos 42 Entorno de desarrollo: eleccin libre, aunque se recomienda Eclipse Lenguaje de programacin: Lenguaje de programacin: Java, aunque con mquina virtual propia (Dalvik) Orientacin a objetos Importante: tener en cuenta fragmentacin 43 Android: Pruebas El entorno de desarrollo de Android incluye un framework de pruebas Test de actividades Test de actividades Test de servicios y proveedores de contenidos Orientacin a posibles fuentes de error Basado en Junit Integracin del sistema de pruebas y obtencin de resultados con Eclipse 44 Android: Distribucin Disponible el mercado Android Market El desarrollador escoge el precio 70% desarrollador 30% Google 70% desarrollador 30% Google In-App Billing, con misma proporcin de ingresos Posibilidad de poner publicidad con AdMob Anunciantes mediante el servicio AdSense 70% de ingresos para el desarrollador (frente al 60% en iOS) Otros posibles mercados (Amazon, Vodafone) 45 ndice Introduccin Sistemas existentes Programacin aplicaciones Programacin aplicaciones iOS Android Comenzar a trabajar con Android Conclusiones 46 Comenzar a trabajar con Android Paso inicial: preparar entorno de desarrollo Eclipse Classic. http://www.eclipse.org/downloads/ 47 Comenzar a trabajar con Android Descargar la SDK de Android 48 Comenzar a trabajar con Android Configurar el plugin de Eclipse (ADT) http://developer.android.com/sdk/eclipse-adt.html Descargar 49 Descargar plataformas (mvil, tablet) ndice Introduccin Sistemas existentes Programacin aplicaciones Programacin aplicaciones Conclusiones 50 Conclusiones Buen momento para los desarrolladores para mviles Desarrollo comercial Desarrollo comercial Proyectos e investigacin Gran cantidad de posibilidades tcnicas Diferentes modelos de negocio Ingresos por venta Publicidad y compras in-app 51 Conclusiones Importante: diseo de la aplicacin, ms que implementacin en s Familiarizarse con el ecosistema Familiarizarse con el ecosistema 52 Muchas gracias por su atencin Alguna Alguna pregunta? 53