Menu

Bye-hoo

Today is my last day at Yahoo.

These months have been really fun; I've learned a lot and got to meet very cool people along the way! I wish you guys the best in your new adventures too!

I will throw some pictures for nostalgia's sake ­čśé

I will miss you too, little buddy

Former desk

The Wolf!

Localio enters 0.1.x family

I had to push a new update to Localio a few days ago, and it was one with breaking changes. The version number left the 0.0.x era, and now welcomes the 0.1.x family.

The offender was Google Drive: Google announced a while ago that its Documents List API was going to be deprecated in April 20th 2015. What that means for local is that the very handy login with login/pass will be no more, so things get a bit more complicated to set up. Now we have to use OAuth2 for this, therefore we need to deal with some other stuff that you will find familiar if you already worked with other Google APIs in the past.

I have written some basic instructions in the README file about how to set it up:

  1. You have to create a new project in Google Developers Console for using Drive API. You can do that here.
  2. After it is created you will be redirected to the credentials section (if not, just select under APIs and authentication in the sidebar the Credentials section), where you will click in the button labeled Create new client ID.
  3. Select the third option,

SmartLocation and its new API

I released the 3.x series of SmartLocation some time ago but I wanted to talk a bit about the API changes. I really wanted it to have a fluid API and be even easier to set up.

The 1.x series relied on some local broadcasting of intents, and the 2.x series used the same intents and wrapped them in a callback. It had some problems with a singleton retaining references, some receivers leaking and was very prone to be misused by users. Also the configuration was a mess, and it was proving to be a pain in the ass to add new features.

So I deleted everything and started from scratch.

I wanted it to be as simple as Picasso to set up. So I wrote down how I would like the API to be used first, and then wrote the code. Now it looks like this:

SmartLocation.with(context).location()  
  .start(new OnLocationUpdatedListener() { ... });

I also wanted to be able to make it extensible. Every time Google Play Services are updated and its API changes, it's a pain and forces me to do the implementation. Now, even if I stopped doing stuff for the library or were