Me encanta Android!!

Me encanta Android, ¡tenía que decirlo!, y los que me seguís os habréis dado cuenta de lo mucho que hablo de ello. Y es que Android es genial, y os contaré por qué lo prefiero sobre otras plataformas móviles.

Sabiendo desarrollar aplicaciones para Android no sólo puedes crear aplicaciones para smartphones o tablets, puedes hacer aplicaciones para dispositivos que puedes vestir, los famosos “wearables” que se están poniendo muy de moda, cómo las gafas multimedia de Epson en las que puedes ver pelis y juegos en 3D o las ya archiconocidas Google Glass, dispositivo creado por Google y que se pone en la cabeza para tener una pantalla delante del ojo y así poder recibir notificaciones y ver información directamente sin sacar el teléfono del bolsillo.

Google-Glass-White[1]

Pero no sólo eso, si quieres puedes hacer aplicaciones para relojes inteligentes o que se comuniquen con éstos, como el Smartwatch2 de Sony o el Samsung Galaxy Gear, que son un concepto totalmente nuevo, ambos corren Android y el usuario siempre los lleva en la muñeca, ideal para minijuegos, apps de deporte o recibir notificaciones directamente sin sacar el teléfono del bolsillo e inoportunar a la gente que está con nosotros.

Pero esto no se queda aquí, también puedes hacer apps para televisiones con Android para reproducir juegos y películas directamente en la tele, pudiendo manejarlo a distancia con un mando de consola u otro dispositivo con android. Y hablando de tele y videojuegos, haciendo juegos para Android puedes publicarlos para la Ouya, que es una consola de videojuegos, bastante potente, que lleva Android y ya trae un mando para poder disfrutar de los juegos de una manera cómoda.

Y poniendo a prueba los límites de Android, incluso puedes programar aplicaciones para coches o electrodomésticos!

Ahora dime si puedes hacer eso con otras plataformas móviles…
¿A qué esperas para aprender a desarrollar aplicaciones para Android?

Android: Cómo encender o apagar el wifi desde la consola

Una de las condiciones necesarias para que tu aplicación Android sea awesómica, es que debe detectar correctamente cuando pierde la conexión o cuando ésta vuelve y reaccionar en consecuencia, ya sea mostrando un aviso al usuario o poniendo en cola las peticiones web que vayamos a hacer. Y hay veces que tenemos que probar esta circunstancia pero no queremos salir de la actividad para no provocar eventos onPause/onResume, etc.

Para conseguir esto podemos preparar un BroadcastReceiver que se encargue de cambiar el setting del wifi ya sea a encendido o a apagado en función de un extra que pasaremos en el intent que enviemos por broadcast, éste receiver cogerá el intent y cambiará el estado del wifi, lo que provocará que Android envíe otro broadcast indicando que ha habido un cambio en la conectividad. (Para saber como recibir este intent lo puedes leer aquí http://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html

1
2
3
4
5
6
public class ChangeWifiState extends BroadcastReceiver {
    public void onReceive(Context c, Intent intent) {
        WifiManager wfm = (WifiManager) c.getSystemService(Context.WIFI_SERVICE);  
        wfm.setWifiEnabled(Boolean.parseBoolean(intent.getStringExtra("wifi")));
    }
}

Después lo declaramos en el AndroidManifest.xml junto con el permiso de cambiar el estado del wifi. Como hace falta un permiso para hacer esto, puede que no quieras ponerlo en tu aplicación sino en otra aplicación que tengas instalada y uses para pruebas. Por eso ponemos el atributo exported=”true”, para poder usarlo desde otro aplicación.

1
2
3
4
5
6
7
<receiver android:name="ChangeWifiState" android:exported="true" >
    <intent-filter>
        <action android:name=">WifiChange" />
    </intent-filter>
</receiver>
 
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

Y ya está todo el código necesario, ahora, con el teléfono conectado, podemos usar adb para enviar un intent a ese receiver con el parámetro Wifi puesto a true o false para encender o apagar la conectividad wifi respectivamente, y android enviará el broadcast con el action CONNECTIVITY_CHANGE y podremos ver si lo estamos manejando correctamente o no en nuestra aplicación.

El comando que tenemos que poner en la consola es el siguiente:

adb shell am broadcast -a WifiChange -c android.intent.category.DEFAULT -n com.your.packageName/.ChangeWifiState -e wifi [boolean]

donde:
-a define el Intent Action
-c define la categoria del intent
-n define la clase que recibe el intent
-e el extra y su valor
[boolean] puede ser true o false.

También publicado en Google Plus https://plus.google.com/110502863648146989289/posts

6 libros imprescindibles para desarrollar en Android

Aunque en internet hay muchísimos recursos gratuitos así como foros y blogs donde aprender a resolver esos problemas que encontramos cuando desarrollamos en Android, nunca viene mal tener un libro a mano, escrito por expertos, donde se describa con mayor profundidad algunos de los aspectos más complejos de la plataforma Android.

Según mi experiencia como desarrollador, éstos son algunos de los libros que más útiles me han parecido a la hora de aprender sobre esta tecnología, todos en sus últimas ediciones (todas ellas en inglés).

Professional Android 4 Application Development (Wrox Professional Guides)

Reto Meier es un tech lead en el equipo de relaciones con desarrolladores android en Google y este es su tercer libro sobre Android, actualizado también a la versión 4 Ice Cream Sandwich, en su libro nos cuenta de primera mano las mejores prácticas para desarrollar en esta plataforma y cubre temas tanto básicos como avanzados, por ejemplo NFC y wifi direct, drag and drop, animación avanzada y una pequeña guía sobre como marketizar tus apps entro otros temas interesantes. Sin duda una buena compra.


Pro Android 4 (Apress)
Si ya tienes un nivel decente, en este libro te cuentan todo lo que necesitas saber sobre Android hasta la versión 4, incluyendo la action bar y los fragments introducidos en la versión 3 de Android, sin olvidar los temas básicos como intents, content providers, diálogos, y otros más avanzados como son las preferencias, multithreading, broadcasts, widgets, animación 2D y por supuesto sensores, localización y mapas. También existe una versión para principiantes que se llama Beginning Android 4 (Beginning Apress)


Android in Practice
Este libro, al contrario que los demás, es más bien un libro de recetas de Android, no te enseña a programar para Android sino más bien a cómo usar bien lo que Android te da. Digamos que el SDK te ofrece unas herramientas para hacer tus apps pero con este libro las usarás de la mejor manera posible y respetando las buenas prácticas. Su autor es el creador de la app Qype Radar entre otras y es muy recomendable para sacarle el máximo jugo a la plataforma de desarrollo.


Android Programming Tutorials
Commonsware ha sacado 3 libros pero no son libros comunes, por 40$ al año tienes tienes una suscripción a la última versión de sus libros con ejemplos básicos y avanzados y tutoriales sobre android siempre con lo ultimísimo que haya salido. Además, ofrecen gratis aquellas versiones de los libros que hayan vendido 4000 copias o tengan más de 4 años. Lo encontrarás en commonsware.com y si quieres la versión impresa los puedes encontrar en amazon en formato impreso.


Android Cookbook

Y hablando de recetas, O’Reilly tiene un wiki sobre android que también está lleno de recetas para hacer cosas concretas en android como por ejemplo, integrar twitter y facebook, bluetooh, sensores, juegos, bastante más básico que los demás pero mantenido por la comunidad. Lo puedes ver online en http://androidcookbook.com/



Beginning Android 4 Application Development

Este es un libro para empezar, cubre los aspectos más básicos para empezar a desarrollar con Android incluyendo servicios, geolocalización, networking… así como ejercicios para hacer por el lector.


Horarios de trenes FEVE para Android

Hace unos días publiqué otra aplicación hecha por mi en el Android Market, es muy sencilla y la hice en 3 o 4 días y sirve para comprobar los horarios de los trenes de FEVE. La hice más que nada para mi, que cuando voy a Santander algún fin de semana o en vacaciones, me muevo con trenes de FEVE entre Astillero y Santander, y echaba de menos una aplicación Android para consultar los horarios, ya que FEVE no dispone de versión móvil de su web ni de aplicación para estas consultas.

FEVE app Android

La aplicación en sí no tiene misterio, presenta un formulario con dos campos de texto con autocompletar y botones para invertir el recorrido o consultar el horario entre las estaciones elegidas. Accedo a la web de feve.es para obtener las estaciones y guardarlas en la aplicación parseando la web con la librería Jsoup, luego las empleo para los cuadros de autocompletar y, del mismo modo, cuando el usuario hace click en consultar, llamo a la página web y parseo la tabla de resultados para mostrarla en un listado.

Si veo que la usa bastante gente planeo ponerle una opción para meter los recorridos en favoritos y otra para establecer una alarma que te avise de que queda poco tiempo para que pase el tren que quieras que te avise.

Puedes descargarla haciendo click en el siguiente enlace o escaneando el código QR:

Review Galaxy Nexus

Galaxy Nexus es el nuevo buque insignia de Google y ha llegado a España recientemente de la mano de Vodafone en exclusiva hasta Marzo.

Cómo no podía a esperar para tenerlo libre busqué en internet sitios donde comprarlo libre y tras ver unos precios desorbitados, encontré el terminal en la web de Amazon de Alemania a un precio más o menos asequible.

He de decir que estoy impresionado con el terminal. Tiene un acabado precioso, sin botones físicos en la parte delantera y una superficie ligeramente curvada. Es realmente fino y se coge con facilidad.

Además, trae la última versión Android, el sistema operativo de Google, Ice Cream Sandwich, el cual trae un montón de mejoras como el desbloqueo facial, un completo rediseño de la interfaz entre otras muchas cosas más.

Puedes leer una review completa que hice para el blog 120linux pero si lo que quieres es comprarlo ya mismo, me haces un favor si lo compras con el link de abajo 🙂 Realmente vale la pena este teléfono que no deja de soprenderme cada día (ahora mismo lleva 51 horas funcionando sin cargar)

Algunas configuraciones de dispositivos para probar layouts en Android con ADT

Esto puede ser útil a las personas que estén desarrollando aplicaciones para Android.

He creado algunas configuraciones para probar los layouts con la versión 0.10 del plugin ADT para Eclipse, para ver como queda la interfaz de usuario con distintas resoluciones de pantalla. Las he creado para el EVO 4G, Galaxy TAB de 7 pulgadas, de 8.9 pulgadas y para el motorola Xoom de 10.1 pulgadas, además, he creado una nueva para el Nexus One.

Las puedes ver haciendo clic en la imagen siguiente

ADT Device configurations