tus camisetas frikis en camisetafriki.com

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

November 16th, 2012 No comments

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

Categories: Android, Programacion Tags:

Consejos para irse a trabajar al extranjero

August 12th, 2012 8 comments

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.

Categories: Munich, Personal Tags:

6 libros imprescindibles para desarrollar en Android

June 11th, 2012 No comments

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.


Mes y medio

May 6th, 2012 No comments

Ya llevamos mes y medio en Múnich y hasta el momento nos está yendo bien. Ya estamos arreglados con el papeleo, menos la cuenta en el banco, que parece que no han recibido todos los datos que necesitaban, no sabemos por qué.

La mayoría de la gente habla inglés, cosa que se agradece, pero siempre está bien preguntar en alemán si hablan inglés, quedas mejor y tienes más posibilidades de que te atiendan. He visto a españoles pedir algo en español en una tienda y que la dependienta no se enterase de nada…

Muchísima gente va en bici aunque el tiempo no sea muy propicio, incluso gente con traje o chicas en minifalda, la bicicleta es un medio de transporte muy típico aquí, tanto que hay bicis aparcadas por todas partes atando únicamente el cuadro a la rueda, ni siquiera las atan a postes o mobiliario fijado al suelo, cosa que en España sería impensable. También la gente es muy deportista y sana, el seguro médico te paga bonificaciones por hacerte revisiones, apuntarte a un gimnasio, etc.

En el supermercado también te devuelven dinero cuando llevas las botellas usadas a una máquina porque éstas se reciclan y las de vidrio incluso se limpian y rellenan, es por eso que algunas tienen marcas de desgaste debido a las cintas transportadoras.

En el trabajo se habla inglés (mayormente) y el ambiente es agradable, tenemos chocolatinas gratis, café, zumos y cerveza gratis, el agua también porque aquí el agua del grifo tiene mucha cal.

El coste de la vida es parecido al de Madrid, comer fuera sale un poco más caro y eso sumado a que es habitual dejar propina, cuando te dicen la cantidad a pagar, tú les dices cuanto quieres que te cobren (más, lógicamente). Eso si, no suelen llevar la cuenta de lo que pides, te preguntan que has tomado y luego te hacen la cuenta.

Y estas son algunas de las impresiones en este mes y medio, intentaré escribir un poco más a menudo.

Categories: Munich, Personal Tags:

Como hacerse una marca personal siendo desarrollador

March 9th, 2012 3 comments


…o también llamado autobombo.

En este artículo quiero comentar mi experiencia personal haciéndome un nombre como desarrollador, que tampoco es que sea yo aquí superfamoso, pero al menos en Madrid unos cuantos me conocen (y ya tengo 1000 followers en twitter que por algo será!)

Soy el primero que reniega del social media pero he de reconocer que las redes sociales están jugando un papel importante a la hora de buscar empleo y dar a conocer las habilidades que uno tiene. Así que voy a daros unos consejos de lo que me ha servido a mi.

Nivel Padawan:
- Hazte un twitter, no hace falta que sea sólo profesional, también hay una persona detrás, tuitea artículos relacionados con tu sector pero también ten conversaciones con otros tuiteros, ya sean sobre temas de tu profesión o sobre cosas del día a día. Ah y pon una foto tuya, te interesa que te reconozcan en los eventos, así como la Bio que es una descripción de quién eres o a qué te dedicas.
- Hazte un perfil en linkedin y rellénalo bien, sobre todo tus habilidades, es algo que las empresas miran mucho para ofrecerte un empleo acorde. Ah, y ponte una foto seria.

Nivel Rogue:
- Hazte un blog, al igual que el twitter, no hace falta que sea 100% sobre temas profesionales, puedes hablar de tu vida y de vez en cuando postear sobre problemas que encuentres en tu día a día profesional, que se vea que hay un ser vivo detrás y ayuda a que te conozcan un poco más y vean que tienes gustos e intereses.
- Hazte un portfolio con tus trabajos y aplicaciones, que la gente vea de lo que eres capaz y de las cosas que sabes hacer.
- Publica aplicaciones, diseños, o lo que hagas en internet para que lo consuma todo el mundo.

Nivel Jedi:
- Ve a charlas y eventos sobre tu sector, si son pequeñas mejor porque luego suele haber un rato de networking para conocer gente, a los cuales deberás preguntar su twitter para seguir la conversación en las redes y así mantener el contacto. Seguramente les volverás a ver y además pueden surgir ofertas profesionales ya que alguien puede recomendarte para un puesto. Si eres developer y vives en Madrid, el otro día hablé de algunos eventos que se hacen allí.
- Haz encargos en tu tiempo libre (pero asegúrate de poder llevarlos a cabo) y así haces portfolio, contactos y dinerito.
- Participa en StackOverflow contestando dudas que tengan otras personas, las respuestas aceptadas dan puntos de reputación y luego eso luce mucho ;)

Nivel Maestro Jedi:
- No solo ve a las charlas, da tu las charlas sobre los temas que dominas. Desde eventos pequeños de gente interesada en el tema como eventos multitudinarios como la Campus Party. Te harás un nombre y una reputación y la gente te conocerá como “el que sabe de x”
- Ten proyectos personales en tu tiempo libre y habla de ellos en tu blog o preséntalos en algún evento. Con ello aprendes y demuestras que te interesa el mundillo y eso a las empresas les gusta porque así no tienen que formarte ellas.
- Da formación a empresas sobre tu área de conocimiento, no sólo te haces una reputación sino que además te sacas unos durillos.
- Crea un proyecto open source y cuélgalo en github, no hay nada que de mejor reputación que tener una librería o aplicación de código abierto que use mucha gente y que tengas que dar soporte.

Éstas son algunas claves que yo considero útiles a la hora de labrarse una reputación en internet siendo un desarrolador y no un guruselo del social media.

Categories: General, Personal Tags:

Destination… Munich!

March 5th, 2012 1 comment


Este año 2012 me propuse irme de España, llevaba ya 4 años en la consultora, la cual había sido mi primera empresa y estaba más bien quemado. Había sido una suerte, 15 meses atrás, haber tenido la oportunidad de empezar a trabajar con el sistema Android, lo cual me está abriendo ahora más puertas de lo que podía imaginar, aunque por aquel entonces ya me olía que aquello iba a triunfar, fue toda una inversión y una suerte poder dedicarme a ello profesionalmente.

Después de llevar un año echando currículums en España y de hacer entrevistas en Tuenti, Youzee, Telefónica I+D y Rovio Mobile (los del Angry Birds) entre otras, y de que me rechazasen en todas, yo seguía emperrado en que yo valía más de lo que ellos pensaban y de lo que mi empresa quería reconocer. Así que en Enero me puse a mandar currículums fuera, y a través de Wiseri, a alguno en España que me resultaba interesante.

El destino quiso que me contestasen de una empresa de Munich en la que ya lo había intentado tiempo atrás y otra en Madrid en plan startup. Hice ambas entrevistas, la de Munich por Skype y la otra en persona, y como vale más pájaro en mano que ciento volando, y que en la de España se dieron más prisa en ofrecerme algo interesante, les dije que sí, pensando que en la alemana no me iban a coger ni de coña.

Mi sorpresa fue que en la segunda entrevista por skype con los de Alemania ya me dijeron que si, aunque la cantidad era mejorable. Como la empresa nueva era interesante (aunque me pusieran a hacer PHP en vez de Android…) y acababa de entrar, les pedí un poco más a ver si se estiraban. Mi segunda sorpresa fue que aceptaron y me ofrecieron una cantidad, que sin ser la leche para ser Alemania, estaba bastante mejor que la inicial, y como yo estaba emperrado en irme este año fuera a vivir la experiencia y dejar este país de pandereta, ahí ya les dije que si dejando en la estacada a la empresa que me había contratado, en la cual me he pasado un mes metiendo horas para acabar lo que había empezado, por lo menos no se lo han tomado muy mal y son comprensivos en que hay que aprovechar las oportunidades de huir de este país que va de mal en peor.

Y ahora me encuentro preparando cosas para mudarme, deshaciéndome de trastos que uno acumula durante 4 años en Madrid y viendo como traslado el resto, aprovechándome de la buena voluntad de mis padres para endosarles mis gadgets hasta que tenga un pisito en Munich lo cual parece ardua tarea.

Categories: La nueva vida, Personal Tags:

Horarios de trenes FEVE para Android

January 21st, 2012 No comments

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:

Categories: Android Tags:

Review Galaxy Nexus

January 16th, 2012 7 comments

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)

Categories: Android, Tecnología Tags: ,

Charlas sobre apps móviles en Campus Party 15

September 28th, 2011 No comments

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

September 9th, 2011 No comments


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 :P

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í.

Categories: Freaks, Programacion Tags: ,