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.


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)

Charlas sobre apps móviles en Campus Party 15

Han pasado unos meses desde campus party y he encontrado por mi escritorio algunos enlaces a charlas que se dieron en Campus Party 15 el verano pasado y que pienso que pueden ser interesantes.

Todas las charlas de campus party (o casi todas) las emiten por streaming en tiempo real y además las puedes ver en diferido en la propua web de campus party, pero habiendo tantas y estando tan mal ordenadas, os comparto aquí algunas que rescaté sobre temas de movilidad, y dicho sea de paso, una vez dentro podéis ver otras charlas de otros temas que sean de vuestro interés… Salud!

APPS NO NATIVAS http://tv.campus-party.org/player-valencia.php?v=jE7Sq-tyDw4

SMARTPHONES http://tv.campus-party.org/player-valencia.php?v=smzUpQWZL0k
ANDROID I http://tv.campus-party.org/player-valencia.php?v=WFLnhYvzKpo (@flipper83)
ANDROID II http://tv.campus-party.org/player-valencia.php?v=DsIH-qGC21I (@flipper83)
IPHONE I http://tv.campus-party.org/player-valencia.php?v=kY4d0ors1bM
IPHONE II http://tv.campus-party.org/player-valencia.php?v=HmzjAcyKNjY

HTML5 I http://tv.campus-party.org/player-valencia.php?v=6qSPIoWQMoc (@jorgecasar)
HTML5 II http://tv.campus-party.org/player-valencia.php?v=cP29BthW5Q0 (@jorgecasar)

HTML5 y CSS3 http://tv.campus-party.org/player-valencia.php?v=7megqzhhU6s

Primeros pasos con Arduino


El pasado mes de Agosto estuve participando en un taller de iniciación a Arduino en el que un voluntario nos estuvo explicando, durante un mes más o menos, cómo empezar a hacer nuestros cacharritos electrónicos basándonos en la plataforma de hardware libre Arduino.

No voy a hacer un tutorial, que para eso hay cientos, sino que voy a enseñaros algunas cosillas sencillas que hicimos allí para que os pique la curiosidad.

Una de las herramientas que me parecieron súper útiles es Frizting (http://fritzing.org/) que es una herramienta para dibujar esquemas electrónicos y realizar las conexiones y que luego además permite exportar el esquema para imprimir en una placa.

Algunas de las cosas que hicimos fue imitar la respiración del led que tiene el macbook cuando entra en suspensión, que es un LED blanco que se enciende y se apaga suavemente como si respirase. Yo decidí hacerlo con la función seno para que quedase mejor y este es el resultado en vídeo:

y el código fuente

También nos pidieron hacer el efecto de las luces del coche fantástico (aunque a mi me gusta más llamarlo efecto Cylon) con este resultado, de nuevo la función seno daba mejores resultados.

y el código fuente

y luego ya por mi cuenta he hecho un medidor de luz con una célula fotoeléctrica y un servo, quedando así de chulo:

con su código fuente para que no digáis que no contribuyo 😛

y ahora lo que estoy intentando, siguiendo esta guía, es conectar mi teléfono Android con Arduino para controlar hardware desde el teléfono, así que si lo consigo, lo pondré por aquí.

Eventos developers en Madrid


Madrid es una ciudad genial para vivir, pero también es genial para las personas emprendedoras e inquietas a las que les gusta participar en todo tipo de iniciativas “mentally challenging” (lo siento, me gusta más como suena en inglés).

Y es que, si eres desarrollador, en Madrid puedes hacer muchas cosas, por ejemplo, puedes asistir a las reuniones periódicas mensuales del Grupo de Usuarios de Tecnologías de Google (GTUG), dónde se reúnen entusiastas de las tecnologías de Google a contarnos, en pequeñas charlas y debates, cosas interesantes sobre Android, Google App Engine, HTML5, incluso Arduino y su interacción con Android, además, en su lista de correo pueden aparecer ofertas de trabajo sobre temas relacionados

Por otra parte, si eres un desarrollador más genérico, puedes pasarte por el BetaBeers, a compartir conocimientos en tecnologías, generalmente pero no limitado a web (tanto front com back) y después compartir unas birras y seguir charlando en un ambiente más informal.

¿Que te gusta más el hardware y la plataforma Arduino? Acaba de montarse un grupo de trabajo sobre Arduino para aprender desde cero y puedes apuntarte aquí.
A MediaLab Prado no he ido nunca, pero sé de buena tinta que también trabajan mucho con hardware, pero a un nivel más artístico.

¿Eres desarrollador de apps para móviles? Entonces puedes pasarte por The App Date y Mobile Monday aunque si prefieres un ambiente mas coloquial y con colegas, puedes pasarte por Android Startup aunque has de estar atento porque se pronuncian muy poco!

Y si por el contrario, te gusta más la acción y lo que quieres es montar una empresa, no dejes de ir a Iniciador, Innosfera y saluda a los chicos de TetuanValley o puedes asistir a alguno de los eventos anuales para lanzar un proyecto en un fin de semana con un grupo de gente emprendedora, como pueden ser iWeekend o Startup Weekend.

Y seguro que me dejo un montón, pero eso ya lo tendrás que investigar por tu cuenta, el caso es que si desarrollas, en Madrid no puedes aburrirte. Una ayuda para empezar… eventosfera.com