2. El camino del programador Java a Android
Distribución y canales de venta
Nuestra experiencia
Ámbito empresarial con Android
3. El camino de Java a Android
Android y Java son dos plataformas diferentes que comparten
lenguaje, así como las bibliotecas básicas de programación.
El programador Java utilizará un conjunto de nuevos paquetes
y deberá comprender la arquitectura de una aplicación en
Android (Activities, Services, Content providers, Intent)
• El diseño de la interfaz también es conceptualmente distinto.
4. El camino de Java a Android
Estructura de ficheros.
Paquetes
Imágenes
Manifest (Muy Importante)
Layouts
5. El camino de Java a Android
Estructura de ficheros.
/res/drawable/. Contienen las imágenes de la aplicación
/res/layout/. Contienen los ficheros de definición de las diferentes
pantallas de la interfaz gráfica.
/res/anim/. Contiene la definición de las animaciones utilizadas
por la aplicación.
/res/values/. Contiene otros recursos de la aplicación como por
ejemplo cadenas de texto (strings.xml), estilos (styles.xml), colores
(colors.xml), etc.
6. El camino de Java a Android
Estructura de ficheros.
Esta clase R contendrá en todo momento una serie de constantes con
los ID de todos los recursos de la aplicación incluidos en la carpeta /res/
7. El camino de Java a Android
Android GUI (Componentes)
Botones
Label
8. El camino de Java a Android
Android GUI (Componentes)
Caja de Texto
Checkbox
Imágenes
9. El camino de Java a Android
Android GUI (Componentes)
Desplegable
Galería
Radio Group
10. El camino de Java a Android
Android GUI (Componentes)
Temporizador
Barra de Carga
Reloj
11. El camino de Java a Android
Tipos de Layout
Lineal Layout Table Layout Relative Layout Absolute Layout
12. El camino de Java a Android
Tipos de Layout
Frame Layout
Frame Layout
1 2
13. El camino de Java a Android
Estructura básica de Android.
Activities: Equivale a una ventana de la interfaz de usuario. Pueden
recibir valores y devolverlos
Intents & intentsFilters: es un objeto mensaje y que, en general,
describe que quiere hacer una aplicación.
IntentReceivers: Receptores de alarmas y notificaciones. Pueden
levantar un proceso si es necesario.
Services: Clases sin interfaz corriendo en background.
Content Providers: Permiten compartición de datos entre
aplicaciones. Uso de SQLite.
14. El camino de Java a Android
Activities
La aplicaciones en Android solo tienen un primer plano que ocupa
toda la pantalla
Las aplicaciones están formadas por activities
Existe una pila de activities en Android
15. El camino de Java a Android
Activities
Muestran los controles de la interfaz de usuario y reacciona ante las
interacciones del mismo.
Las actividades se declaran en el archivo AndroidManifest.xml
Cada pantalla se implementa como una actividad
Moverse a la siguiente actividad supone
llamar al método
startActivity()
startActivityForResult()
17. El camino de Java a Android
Ciclo de vida de una actividad
Nuevo modelo de estados de una aplicación:
OnCreate(),OnStart(),OnPause(),
OnFreeze(), OnResume(),OnStop(),
OnQuit()
18. El camino de Java a Android
Intents
Los Intents en Android permiten lanzar las actividades.
Para el paso de variables entre Actividades tendremos que usar:
lt.putExtra(“clave", valor);
getIntent().getExtras().getString(“clave");
);
19. El camino de Java a Android
Content Providers
Content Providers son gestores de contenido, que nos abstraen de los
datos con los que estamos trabajando.
Un Content Providers está pensado para que varias aplicaciones
accedan a un mismo repositorio de datos a través de él.
Ya tiene incluidas bases de datos configuradas para obtener por ejemplo la
lista de contactos, sms recibidos, llamadas enviadas/recibidas/perdidas,
configuraciones del teléfono,…
20. El camino de Java a Android
Content Providers
Desacopla la aplicación de la capa de datos
Modelo URI (Uniform Resource Identifier) simple para operaciones CRUD
(Crear, Leer, Actualizar y Borra)
Un Content Provider implementa la interfaz
query(Uri,String[],String,String[],String)
insert(Uri,ContentValues)
update(Uri,ContentValues, String, String[])
delete(Uri, String, String[])
getType(Uri)
21. El camino de Java a Android
Content Providers
Un Content Provider expone una URI pública, la cual identifica un
conjunto de datos, “una tabla”.
Uri contacts = "content://contacts/people/";
22. El camino de Java a Android
Consultando un Content Provider.
Columnas a consultar
String[] projection = new String[] {
Contacts.People.NAME,
Contacts.People.NUMBER,
Contacts.People._ID
};
Establecer URI para acceder a los contactos
Uri contacts = "content://contacts/people/";
Lanzar consulta
Cursor cursor = managedQuery( contacts, projection, null, null,
Contacts.People.NAME + " ASC");
23. El camino de Java a Android
Utilización de SQLite
Android incluye una librería de SQLite
Open source
Proporciona capacidades de una base de datos relacional
La SQLiteOpenHelper es una clase que extiende nuestra clase de BBDD
para crear nuestras tablas en la base de datos
La usa Apple en su Iphone, el ipad, etc…
Todas las bases de datos se crean en la carpeta:
/data/data/<package-name>/databases
24. La Curva de aprendizaje
Un desarrollador Java con una experiencia media, puede
tardar entre 2 semanas y 1 mes en dominar de forma básica el
desarrollo en Android
Hay mucha documentación, web, foros y blogs que aportan
gran información y ejemplos prácticos.
25. Herramientas disponibles
Android pone a disposición de los desarrolladores su SDK,
descargable desde la dirección URL
http://developer.android.com/sdk/index.html.
26. Herramientas disponibles
App Inventor for Android.
Cualquier usuario pueda desarrollar una aplicación Android, con sólo
arrastrar componentes predefinidos, editar parámetros de layouts,
ejecutar la aplicación, etc…
27. Herramientas disponibles
DroidDraw.
Una aplicación web para el diseño de los Layouts de forma visual, y
sobretodo para entender la lógica de los XML de Android.
http://www.droiddraw.org
37. Eclipse IDE Dalvik Debug Monitor Service (DDMS)
Proporciona información del estado de una instancia Android
Podemos ver la estructura de directorio de nuestro móvil y la base de datos
Examinar Threads y Procesos, control emulador para eventos específicos...
38. SQLite Database Browser
Aplicación para manejar la base de datos de nuestro programa
http://sqlitebrowser.sourceforge.net/
Exportar BBDD
39. El camino del programador Java a Android
Distribución y canales de venta
Nuestra experiencia
Ámbito empresarial con Android
42. Crecimiento de usuarios y terminales en el mercado
Terminales Android
Según el CEO de Google, Eric Shmidt, se activan 200 mil terminales
Android al día. Con una cifra de 6 millones al mes.
Según previsiones de Gartner Inc., compañía de análisis tecnológico
líder en el mundo, Android será el segundo sistema operativo móvil
del mundo en 2012, tan sólo por detrás de Symbiam.
En cifras de terminales vendidos se cuenta con que Symbian tenga 203
millones de dispositivos vendidos, Android 76 millones, Iphone con
71,5 millones y Windows Mobile con 66,8 millones en el año 2012
43. Crecimiento de usuarios y terminales en el mercado
Terminales Android
La fragmentación de las versiones de Android también parece
encaminado a una solución, ya que actualmente cerca del 60% de los
terminales Android cuentan con la versión 2.1
44. Android Market
Descargas gratuitas o de pago
Un estudio indica que el 98% de las descargas de android market son
de aplicaciones gratuitas.
45. Tipos de aplicaciones
Las aplicaciones que podemos encontrar en el Android
Market son similares a los encontrados en la App Store.
Compras Sociedad
Comunicación Temas
Cómics Viajes
Deportes Biblioteca soft.
Estilo de vida Demostración
Finanzas Arcade y acción
Herramientas Casuales
Multimedia Juegos de Carta
Noticias y tiempo Puzzle
Ocio
Productividad
Referencia
Salud
46. Zona para desarrolladores
El registro en la zona de desarrolladores de Android es
bastante sencilla e intuitiva.
En la zona de desarrollador puedes controlar número de
descargas, reseñas de usuarios, valoraciones, etc…
47. Aplicaciones más vendidas
Utilidades gratuitas como Barcode Scanner o RingDroid son
muy demandadas por los usuarios de Android, alcanzando
más de 250 mil descargas.
Un juego Angry Birds con más de 5 Millones de descarga en 1
semana.
Los primeros puestos están ocupados por aplicaciones y
utilidades, no por videojuegos.
48. Aplicaciones más vendidas
Android Market tiene los precios que oscilan desde los 0 a los
160,00€. La media real de precios ronda los 3,00€.
De las aplicaciones de pago más descargadas, podemos
mencionar DocumentsToGo, que tiene un precio de 14,99$ y
lleva más de 50 mil descargas
También podemos hablar de EasyTether, a 9,95$ y más de 50
mil descargas.
49. Canales de Venta
Market oficial de Google, los markets alternativos y
directamente al cliente o empresa.
Android Market.
Google tiene la política de quedarse con el 30% de las ganancias y 70%
desarrollador.
El Android Market está abierto a Australia, Austria, República Checa, Francia,
Alemania, Italia, Países Bajos, Polonia, Singapur, España, Reino Unido y Estados
Unidos. Se espera la incorporación inminente de México, Brasil, Bélgica, Finlandia,
Hong Kong, Israel, Polonia, Rumania, Rusia, Eslovaquia, Singapur, Argentina y
Sudáfrica.
Market alternativos.(SlideMe)
Política de distribución similar a Google.
Directamente al cliente
50. Publicidad móvil
Se pueden obtener beneficios mediante la publicidad en
aplicaciones Android.
Google compró AdMob por 750 millones de dólares siendo la
mayor plataforma de publicidad móvil del mercado.
Advanced Task Manager ha ganado 30.000$ con la versión
gratuita con publicidad.
51. Conclusiones
Android está teniendo un crecimiento bastante rápido con
más de 200 mil terminales de venta al día.
Android Market alcanza más de 70.000 aplicaciones
Alrededor del 60% de las aplicaciones Android son gratuitas
comparado con el 25% de aplicaciones en el iPhone
El promedio del precio de las aplicaciones Android es 3.00 €
52. Conclusiones
Estados Unidos representa el 65% del mercado de los dispositivos
Android
Mas usuarios iPhone tienden a comprar aplicaciones en
comparación con los usuarios Android (50% Vs. 21%)
Los usuarios Android buscan mas aplicaciones que juegos (17%
juegos, 83% aplicaciones).
Los desarrolladores más brillantes de Android como PolarBit con
más de 1 millón de descargas y Edward Kim recibe US$13.000
mensuales por ventas de sus aplicaciones
53. El camino del programador Java a Android
Distribución y canales de venta
Nuestra experiencia
Ámbito empresarial con Android
54. Nuestra experiencia
Curva de aprendizaje en Alea Technology
Nuestros programadores de J2ME y J2SE tardaron unas 3 semanas en
tener ya una aplicación funcional.
El mayor tiempo se perdió en entender bien el flujo de las aplicaciones
Android y el funcionamiento de las Activities.
56. El camino del programador Java a Android
Distribución y canales de venta
Nuestra experiencia
Ámbito empresarial con Android
57. Ámbito empresarial con Android
Un gran abanico de aplicaciones y servicios en el mundo
empresarial
Terminales con conexión permanente a internet
Aplicaciones de gestión para mostrar datos en tiempo real de clientes,
pedidos, geolocalización y seguimientos de pedidos.
En el market podemos encontrar ERP, CRM, software de
contabilidad,…
Las Api de desarrollo proporcionada por Google juegan un papel
interesante.
http://code.google.com/p/google-api-java-client/
58. Ámbito empresarial con Android
Gestión de cuentas
Sincronización para múltiples cuentas
Soporte en Email de Exchange.
Gestión de mensajería con búsquedas de dentro de SMS y MMS
Navegador con flash y html5 integrado
Android es un sistema operativo y una plataforma de desarrollo Open Source para dispositivos de movilidad.
Un URI es una cadena corta de caracteres que identifica inequívocamente un recurso (servicio, página, documento, dirección de correo electrónico, enciclopedia, etc.). Normalmente estos recursos son accesibles en una red o sistema.
La curva de aprendizaje para un desarrollador Java no es para nada demorada. En caso de no saber Java, aumentaría considerablemente ya que primero tendría que familiarizarse con el lenguaje.
Para un desarrollador Java con una experiencia media, puede tardar entre 2 semanas y 1 mes en dominar de forma básica el desarrollo en Android. Ese dominio básico es suficiente para producir aplicaciones de una calidad más que aceptable, como muchas de las que se venden a buen ritmo hoy en día en el Android Market.
La documentación abundante que se puede encontrar por la red, unida a los numerosos foros y blogs especializados aportan gran información y ejemplos prácticos sobre funcionalidades y aplicaciones.
NetBeans da la posibilidad de instalar el plugin de desarrollo Android para trabajar con dicho entorno.
El IDE Eclipse es uno de los más utilizados del mercado y en este caso es el que utilizamos en Alea Technology para el desarrollo Android.
En dicha url podemos encontrar las versiones más recientes de la SDK, tanto para Windows, Mac y Linux, además de un tutorial bastante explícito de como realizar la instalación en Eclipse.
Recientemente GoogleLabs ha sacado a la luz “App Inventor for Android”, que tiene como objetivo que cualquier usuario pueda desarrollar una aplicación Android, dando la posibilidad de arrastrar componentes predefinidos, editar parámetros de layouts, ejecutar la aplicación, etc.
Para más información: http://appinventor.googlelabs.com/about/
Para el diseño de layouts de forma visual, también tenemos disponible una herramienta interesante, sobretodo para entender la lógica de los XML de Android.
En la url http://droiddraw.org/ encontramos una aplicación web para arrastrar los componentes que nos interesen hasta la pantalla y ver en tiempo real su aspecto. Al finalizar podemos generar los XML para nuestra aplicación.
Para el diseño de layouts de forma visual, también tenemos disponible una herramienta interesante, sobretodo para entender la lógica de los XML de Android.
En la url http://droiddraw.org/ encontramos una aplicación web para arrastrar los componentes que nos interesen hasta la pantalla y ver en tiempo real su aspecto. Al finalizar podemos generar los XML para nuestra aplicación.
Herramientas profiling son herramientas que miden el rendimiento de la aplicación en ejecución.
La "Dalvik Debug Monitor Service" es un herramienta integrada con la "Dalvik Virtual Machine", y nos permite administrar los procesos que corren en una instancia de emulador/dispositivo y nos asiste en la depuración de ellos. Podemos usar esta herramienta para terminar la ejecución de un proceso, seleccionar un determinado proceso para depurar, generar reportes a partir de información de bitácoras, examinar el "heap" y la información de "thread, tomar fotografías de la pantalla del emulador/dispositivo y mucho más.
Herramientas profiling son herramientas que miden el rendimiento de la aplicación en ejecución.
La "Dalvik Debug Monitor Service" es un herramienta integrada con la "Dalvik Virtual Machine", y nos permite administrar los procesos que corren en una instancia de emulador/dispositivo y nos asiste en la depuración de ellos. Podemos usar esta herramienta para terminar la ejecución de un proceso, seleccionar un determinado proceso para depurar, generar reportes a partir de información de bitácoras, examinar el "heap" y la información de "thread, tomar fotografías de la pantalla del emulador/dispositivo y mucho más.
Esta gráfica muestra el próximo terminal que elegirán los usuarios en función de la plataforma actual en la que se encuentran.
Según el estudio, un 21% de los usuarios de Android se cambiarían a un iPhone, mientras que el 71% de los usuarios de Android quiere seguir en la plataforma. Es decir, un nivel de satisfacción bastante alto teniendo en cuenta la juventud del sistema y la cantidad de versiones que hay en el mercado (personalizaciones de las compañías).
También vemos que un 6% de los usuarios de iPhone y un 21% de los usuarios de Blackberry se cambiarían a Android.
Según el mismo estudio, Android ha superado al iPhone en cuota de mercado, justamente por ser un sistema flexible, posibilitando que terminales de diversas características lo lleven instalado. Hay más de un centenar de dispositivos Android en el mercado, llegando a un mayor número de clientes.
En la actualidad el sis tema Symbian ocupa casi el 50% de los teléfonos móviles en el mundo, mientras que el sistema Android cuenta sólo con menos del 2%. Se espera que en el año 2012 la cuota de terminales con el sistema Symbian baje hasta aproximadamente un 39% y la cuota de Android suba hasta ponerse en un 14%.
Las descargas son gratuitas debido al :
- 82% dicen que es por el diseño del market.
- 43% el uso del checkout de google muy complicado
- 46% están preocupados por la fragmentación del s.o android.
A la hora de introducir una aplicación en el Android Market, tenemos que elegir una de las categorías disponibles, lo que no siempre es tarea fácil. Echamos de menos algunas categorías mostradas de forma más explícita, como Educación por ejemplo. Suponemos que estos pequeños fallos se arreglarán en futuras versiones de Android.
Podemos clasificar las aplicaciones en dos niveles: Aplicaciones y Juegos
Registro: Rellenando unos cuantos formularios, tarea que no nos llevará más de unos minutos
Según la gráfica las aplicaciones de redes sociales, mapas y multimedia fueron las más utilizadas en junio de 2010 en las plataformas más importantes del mercado
Según la gráfica las aplicaciones de redes sociales, mapas y multimedia fueron las más utilizadas en junio de 2010 en las plataformas más importantes del mercado
Hay juegos como Robo Defense, a 2,99$ y más de 250 mil descargas
Android Market
A través del Android Market tenemos un mercado potencial enorme, dado el número de usuarios con terminales Android que acceden a diario. Google tiene la política de quedarse con el 30% de las ganancias, siendo el 70% restante para el desarrollador.
Markets Alternativos
Hay otros markets alternativos, tales como SlideMe, con políticas de distribución de ganancias similares a las de Google. Ambas opciones no son excluyentes, así que podemos estudiar siempre la posibilidad de colgar una aplicación en varios markets a la vez.
Directamente al cliente
Esta opción es posible gracias a que los terminales Android permiten la instalación de aplicaciones sin la necesidad de pasar por el Market
Motorola Droid supera en ventas al iPhone durante los primeros dos meses y medio (1.05 millones Vs. 1 millón). Nexus One un poco más de una decima parte de los anteriores (135 mil)
Mientras más usuarios iPhone buscan juegos que aplicaciones (64% juegos, 36% aplicaciones).
Al contar con programadores Java con años de experiencia, tanto en J2SE como en J2ME, no tardamos demasiado en poder programar en Android. De hecho pasaron 3 semanas desde que nos pusimos a ello hasta tener un prototipo funcional de la aplicación que queríamos desarrollar.
Quizás lo que más tiempo nos llevó fue entender el flujo de las aplicaciones Android y el funcionamiento de las Activities. Una vez comprendido esto, lo demás no tuvo más complicación.
C2. Blind
El proyecto Blind nació como una iniciativa de Alea Technology dentro de su departamento de I+D+i. Fue nuestro primer contacto con Android.
Queríamos realizar una aplicación Android para que las personas con deficiencias visuales pudiesen utilizar un móvil con pantalla táctil y acceder a todas sus funcionalidades. Nos basamos para ello en las librerías TTS de Google e implementamos funciones como Lista de Contactos, Galería musical, Reconocimiento de colores primarios a través de la cámara, Localización de la posición actual a través del GPS, Sistema de mensajería de voz con grabación de archivos de audio y posterior envío a un servidor de Alea Technology, etc.
En este proyecto han participado 2 programadores y se ha tardado en total 1 mes.
C3. Find2Take
Es una aplicación Android cuyo objetivo es geolocalizar empresas, mostrarlas en un mapa y ofrecer sugerencias a los usuarios según sus gustos. Es decir, el usuario crea un perfil de lo que más le gusta y las tiendas que tengan artículos que puedan interesarle y que estén cerca de él aparecerán en su mapa. El usuario puede así ver solamente aquellos artículos que le puedan interesar.
En te proyecto ha intervenido 1 programador, con un tiempo de desarrollo de 1 mes y medio.
C4. Moviltest
Moviltest es una aplicación orientada a la educación. Con ella los usuarios pueden realizar cualquier tipo de test en un móvil Android, con una interfaz intuitiva y con funciones interesantes, tales como Creación de Test con preguntas aleatorias, Historial de test realizados, Gráfica de evolución, Creación de Test con las preguntas más falladas y Corrección al finalizar cada test.
Las APIs de desarrollo proporcionadas por Google también juegan un papel interesante. Podemos utilizar los mapas de Google en nuestras aplicaciones, el calendario y muchas otras opciones. Si utilizamos el calendario por ejemplo, y la empresa tiene el calendario en Google Calendar, podemos utilizarlo para las notificaciones, próximas reuniones, etc.
Los contactos también están integrados de forma genial en Android, teniendo una sincronización perfecta entre nuestro móvil Android y nuestra cuenta de Google.
Próximamente sacarán una aplicación nativa para GDocs, lo que hará que la gestión de documentos sea aún más sencilla.
Todo ello puede ser aprovechado para el ámbito empresarial, haciendo que Android sea una alternativa atractiva para todo el que quiera renovar las comunicaciones en su negocio.