June 15, 2013

A developer's adventure at Google IO 2013 -part I-

by +Mauro Solcia (Smokybob)

I was lucky enough to be able to attend the Google I/O conference this year... This year the conference was less about “incredible wonders” for the general public, and more focused on the tools Google provide to the Developer to build incredible wonders and attempt at “moon shots”. Some new cool features “consumer side” were presented, but nothing as big as last year’s Google Glass presentation.

At first, many at the conference were a little disappointed especially when they told that they were going to give us the Chromebook Pixel as many were anticipating something like a Nexus 5 or a new Tablet.

Some people called the Chromebook Pixel “A browser on a good HW”; while this is in part true, this statement show that some attendees did not use Chrome at his full potential with all the Apps and extensions available in the Chrome Web Store.

Google Glass session were always so packed that you had to go at the presentation before the one you were interested only to take a sit; after the first day many choose to follow the streaming from outside or, like me, to go at other sessions and watch the Google Glass Session the next week.


It was my first time in a big conference like this, when you are waiting for the keynote to start everyone is whispering with other people at what could be presented in moments, this year a lot were wrong.

I’m not going to list all the things that were presented during the keynote, I think many of you already saw the video in streaming or the day after, so I’ll be focusing what I and the people near me felt about some of the new products/features.


A lot of Android Developer were at the I/O and this new feature set was well accepted because it provides a simpler and more optimized way to access Location information.

I have no direct experience with location based Android Apps, but talking with some developers with experience in this field and they confirmed it was a lot of work to balance good location informations and battery consumption.

The best thing about this new APIs is that they are integrated in the Google Play Services, so they are available from Android 2.2 +, we are talking about 80 or 90% of the active devices.


Here the big news are 3.

The first is Upstream messages, now the device can send messages to the server with the same service the server can send the messages to the client; this solve a lot of problems, we don’t need a dedicated service and port to send data to our server and rely on the Google Cloud Messaging only for “heads up” from the server.

The second one, is that the notifications are now synced across the devices, because now the cloud messaging queue is associated to a user id and not to a device, or at least the developer can now have different devices to get notified for the same “queue”.

The third one was not shown in the keynote, but it’s well explained in this session, and is the support of the XMPP protocol that enables application to open a persistent channel to stream messages in nearly real time with our server but leveraging the Google Cloud Messaging.

I’m personally really happy about the last one, as many big clients are not so happy to open ports and authorize external addresses on the firewall, but it’s a lot more simple to have them authorize a single address with google in it and then use the same address for all the different applications we are going to build.


Weeks before the Google I/O, after the My Glass API teardown some news about this new API leaked, but we only supposed what the API was capable of.

The new API is a full infrastructure to manage gaming on Android, from the ability to store scores and progress so that the user can play our game on his phone and then continue on his tablet when it’s back home, to multiplayer management with a lot of problems around it managed by the API.

I’m not a game developer, but some of the people I was roaming around the Google I/O are, and we discussed a lot about the problems behind the multiplayer management, connection, synchronization between devices, etc... a lot of code and a lot of headache for the developers and the server managers.

There were not many session about this but there is one very informative that can be found here.


After seeing that Google made an optimized IDE based on Eclipse for Dart, I was hoping to see a counterpart for Android and here we have Android Studio based on IntellyJ.

The full introductory session can be found on the Google I/O Playlist here.

I have yet to try it fully, there are a lot of changes; some at the core (the new building system Gradle), some other to simplify the development process (new UI templates, new plugins, etc...).

If you already developed for Android with IntelliJ, I was told, you feel at home with new shiny features; if you developed with Eclipse, you feel the IDE is faster and lighter but it’s different and you need some time to adapt to it.

The main problem I've faced is when I try to import apps written using Eclipse, if they are really simple, the import works flawlessly, if the app get’s a little bit complex, some things doesn’t work E.g. Action Bar Sherlock implementations need to be kind of rebuild from the ground up.

My personal advise is to branch your current apps and start working with the new UI, try a quick fix and current implementations should be done with Eclipse, but a full switch by the end of the year is a good thing as some features might not be there in the ADT plugin for Eclipse in the future.


New really anticipated features were added to the Google Play Developer Console, for those that don’t know what it is, that's where developers manages the published apps.

There are 3 major features:

Alpha and Beta versions: Now we can add alpha and beta version and release them to a set of trusted users.

Staged Rollout: Right now, when one deploys a new version, every user gets the new version as soon as possible, when you have 1,000 active users it’s not a big problem, but when you have several thousands and the app connects to your server, it could be a problem. Now we can release the new version to a percentage of users and after some time increment the percentage until you are confident that nothing will break.

Optimization Tips: Using all the data related to the app, the developer console can point out some area of improvement for our app, from the Tablet support, to adding a specific language due to the growing installs on a specific region of apps that are similar to ours.

Other features added to the Developer Console are:

Metrics: It’s kind of an extension of Google Analytics with a specific target on Android Apps.

Revenue Graphs: Better improved graphs for sold apps, with new details to help developer improve their revenues.

App Translation Service: from the developer console we can buy professional translations of our app strings.

Stay around to read the next part of the A developer's adventure at Google I/O 2013 were you can read about:

  • Google Chrome updates.
  • Google plus updates.
  • Google Hangouts.
  • Google Play Music.
  • Google Maps.
  • Google Glass.
  • Google Drive & Google Apps Script.