Está en la página 1de 54

Programacin de aplicaciones

para plataformas mviles para plataformas mviles


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

También podría gustarte