Día 1020

Sigo en Munich sin saber nada de alemán, y a decir verdad, aunque me da vergüenza llevar aquí tanto tiempo y no haber aprendido nada más que lo más básico para la supervivencia del día a día, no he sentido una imperiosa necesidad de aprenderlo, ya que el trabajo es en inglés y a diferencia de España, la gran mayoría de alemanes habla “a little bit” de inglés, según ellos, luego lo hablan mejor que yo, pero son muy modestos. Y aunque este año ya me disponía a apuntarme a una academia, es posible que no acabemos el año aquí (aunque esto lo llevamos diciendo ya ni se sabe cuánto). Seguiremos informando.

Dos años y medio en Alemania

Cómo pasa el tiempo y qué poco he escrito. Había pensado en publicar una entrada con la experiencia que es vivir en Alemania para un español, pero he encontrado varios artículos recopilando una serie de situaciones y la verdad es que no puedo estar más de acuerdo. Así que los dejo por aquí por si los queréis leer.

http://palabrautil.com/20-curiosidades-en-alemania/
http://palabrautil.com/15-situaciones-espanol-alemania/
http://palabrautil.com/15-maneras-espanol-alemania/
Continue reading Dos años y medio en Alemania

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?

Trucos del viajero frecuente

Hoy os voy a contar algunos de los trucos que he ido aprendiendo a lo largo de los múltiples viajes en avión que he ido haciendo. No es una lista exhaustiva, sino trucos que he ido aprendiendo yo por mi cuenta y que te pueden hacer los viajes algo más cómodos:

Plane seats by riot-baby http://www.flickr.com/photos/riotbaby/

  • Cuando pasas el control del aeropuerto tienes que sacar el portátil de la funda y ponerlo en una bandeja aparte, hazlo, aunque tengas que sacarlo del fondo de la maleta, te van a hacer sacarlo sí o sí, así que ahorra tiempo y llévalo en un sitio de fácil acceso.
  • También tienes que sacar todo lo que lleves en los bolsillos pero no es necesario que lo pongas en una bandeja, aprovecha si llevas un bolso o una bandolera, o incluso una mochila o la funda del portátil y mételo todo ahí, llaves, cartera, móvil… Es más cómodo, evitas que se te pierda algo y es más ágil al pasar el control ya que coges la bolsa con lo que hayas metido dentro y ya te lo colocarás en otro momento.
  • Lo mismo con cinturones y chaquetas, ahorra tiempo quitándotelos y metiéndolos en la mochila o equipaje de mano.
  • Si los asientos son numerados no tengas prisa por entrar, los primeros que entran corriendo siempre son los que se sientan en las primeras filas (como si se los fuesen a quitar) y siempre bloquean el pasillo, así que con calma.
  • Haz el check in online tan pronto como puedas, así podrás elegir un buen asiento. Los asientos en las salidas de emergencia suelen tener más espacio entre el asiento de enfrente y el propio asiento, pero te piden que entiendas el idioma local, prestes atención a las indicaciones y si estás lo suficientemente sano como para salir escopetado y abrir la puerta de emergencia en caso de que sea necesario (vamos, que no estés cojo, manco o sordo). Incluso hay websites como SeatGuru o SeatExpert que te indican los mejores asientos del avión que vas a coger.
  • Si el avión incluye bebidas gratis, normalmente son un vasito o una lata de 20cl, pero si pides cerveza te suelen poner un tercio entero y te dan la botella. De bebida sueles poder repetir.
  • Para salir del avión, lo mismo, no tengas prisa, alguien va a bloquear el pasillo así que con calma.
  • Llévate algo de entretenimiento, yo me suelo llevar el Kindle Paperwhite para leer eBooks o noticias en el avión, que además tiene luz por si es de noche y no quieres molestar al que esté durmiendo al lado.
  • Muchas veces no necesitas ni imprimir la tarjeta de embarque, puedes llevarla en el móvil como una imagen pero asegúrate de tener batería y que el tiempo de espera para que se apague la pantalla sea de un minuto o así, que sino vas a escanear el código en el lector y se apaga la pantalla.
  • ¿Quieres añadir algún truco más? Ponlo en los comentarios.
    Buen viaje!

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

Consejos para irse a trabajar al extranjero

A raíz de una pregunta en la lista de correo de Betabeers, me he animado a contar las cosas a tener en cuenta, desde mi punto de vista, para emigrar a otro país, dado que cada vez más y más gente está planteándose buscar trabajo fuera de España debido a lo mal que está la situación laboral, éstos son algunos consejos basados en mi experiencia de 5 meses en Alemania como programador:

  • Aprende inglés bien, sin inglés olvídate de ir a ningún lado, yo me he venido a Alemania sabiendo solo inglés (y tampoco muy bien), el alemán aquí no parece hacerme mucha falta.
  • Está bien tener experiencia laboral, yo me vine con 4 años de experiencia de los cuales 2 en Android que es lo que hago aquí.
  • Haber vivido unos años independizado también ayuda porque tendrás que sacarte las castañas del fuego tu solo, no solo laboralmente, tendrás que apañartelas para hacer papeleos, buscar un piso de alquiler, contratar servicios (internet, teléfono, etc), incluso hacer la compra y cocinar son cosas que está bien haberlas hecho antes en tu propio país =)
  • Estar dispuesto a irte a otro país a empezar de cero, sin amigos ni familia ni tu idioma, no todo el mundo es capaz ni todo el mundo habla inglés en otro país de habla no inglesa (aunque más que en España).
  • Informate muy MUY bien de cuantos impuestos te van a quitar de tu sueldo bruto y cuanto gana la gente allí en un puesto similar antes de negociar, por ejemplo, 35000 brutos en España puede parecer un sueldo que no está mal si se tiene algo de experiencia y en Alemania con eso casi te mueres de hambre si no compartes piso y vas mucho a tu casa.
  • Busca una empresa que hablen inglés porque contratan gente de otros países como es mi caso, aquí en una empresa Alemana de gente que solo habla Alemán no me habrían cogido pero en mi empresa hay gente de varios países y el idioma oficial es el inglés (que no quita que entre ellos a veces hablen alemán).
  • Entérate de antemano de como va en el país que vayas los temas de sanidad y seguridad social y cuanto te va a costar viajar a casa de vez en cuando (es decir, que tal son las conexiones con tu país).
  • No se si me dejo algo pero eso son las cosas que, después de haber emigrado, me han parecido importantes. Puedes añadir más a los comentarios si crees que hay alguna otra cosa a tener en cuenta.

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.