Menu

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

Robolectric tests running in Android Studio

Been playing a lot with testing lately, but one thing that bothered me a lot was the shitty hacks one has to do for being able to run Robolectric tests within Android Studio.

I'm sure most of you have encountered this annoying exception: java.lang.RuntimeException: Stub!
There are some useful posts talking about this in Stack Overflow, but the bottom line is always the same: either you have to edit manually the .iml file or you switch to IntelliJ. Either way, you have to make compromises. And that sucks.

At least, for me, none of that stuff worked. But then I found out about gradle-robojava-plugin. You have great documentation in there too.

I am going to work through an example for a library, though using this in an app would be pretty much the same.

Your project-wide build.gradle file neets the robojava-plugin dependency set up:

buildscript {  
  repositories {
    mavenCentral()
    jcenter()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:1.0.0'
    classpath 'com.kageiit:robojava-plugin:1.1.5'
  }
}

You create a new project (let's call it tdd for example) at the same level of your application or library with only a build.gradle file inside, with these contents (keep in

Joined Yahoo!

It's been a hard road, but I moved to London on November and started working for Yahoo! as an Android Software Engineer.

I am really excited to be working here. So much to learn, so much to improve.

This blog update is long overdue, I know, but securing a flat / moving to another country is hard and took all my time and energy.

Simulador Clínica Londres for iOS and Android

This is the result of my latest freelancing effort. It's an app for a very known spanish plastic surgery clinics, Clínica Londres.

The app itself was very fun to code, because apart from all the usual stuff like news or location, it had this section where you could interact applying some effects to the photos you wanted to upload. Never did that kind of stuff in any app, so it was well worth the effort :)

Simulator Before and after comparison

Ideally this was intended for seeing how you would end up with big boobs or with a better nose, but you can do pretty much anything you want with it. It's done by applying some shaders to the pictures. Really fun stuff.

You can watch the app in action in this video.

Society of Wine Educators for Android

An app I've been working on for some time is finally released. It is a trivia game for wine conoisseurs with a social twist. You can download it from here.

Logo

A couple of screenshots...

Shot1

Shot2

I had a blast programming some of the UI animations in this one, and coding some of the custom views too.

About the content, I am a wine neophyte, to say the least, but this helped me to learn a bit. Two birds with one stone, right?

It seems other app I've been working on is just also about to be released too. It's rewarding to see stuff coming along nicely, after a couple of months of working non-stop.