Google I/O 2013 Notes for Android Developers

Google I/O 13Google I/O is always a great source of information for Android developers and anyone else who uses Google technology.

Most of us can’t make it there in person (as the tickets sell out immediately), but luckily Google makes the videos available for free.  The Android team went one step further this year, and made a one-stop curated list showing all of the Android videos from I/O 2013!

While I highly suggest viewing a few of the most relevant videos to your needs, let me share a few things to be on the lookout for.  This isn’t a comprehensive list, just a few things I thought were interesting!

New Android Studio IDE based on IntelliJ

AndroidStudio_splash

Many IntelliJ fans (and anyone else interested a new IDE other than Eclipse) were exited by the announcement that the upcoming Android Studio.  It was released as an early release (v0.1), and has already received a small update.  That update, by the way, was much smoother than Eclipse updates.

Besides the potential improvements in developer productivity (touted often by IntelliJ users), I think one of the most important things about this are two-fold:

  • Tighter integration with the IDE may allow the Android Tools team to bring us new capabilities
  • The new IDE is designed to work with Gradle, the new build system.

Hands on with the new Android Studio

Despite the fact that 0.1 is a very early release, many Android developers (myself included) were eager to try out Android Studio.

I was able to create a new project quickly enough, and the UI seems sharp.  It’s been a while since I was new to Eclipse, but I think the experience in IntelliJ would be at least as good for new developers.

AndroidStudio_open

Be prepared for a different folder structure within each project.  The new structure supports the Gradle build system as well as test projects.  Look for your code under

<projectname>/<projectname>/<src>/<main>/<java>

That’s a few more hops than we have with the basic project structure in Eclipse:

<projectname>/<src>

Gradle

I’m rather exited to start using Gradle to automate some of the things I’ve been doing manually and with scripts.

As you may know, I target multiple Android app stores, and since their requirements often conflict I wrote a library (the Android Market Manager) to simplify the custom behavior for certain app markets.  This does leave me with manually creating separate flavors of each app, and I’ve been putting off writing Ant scripts to automate this.  However, it looks like we already have the concept of apk flavors in Android Studio.

In addition, the integration with Maven may finally give me the push to grab my dependencies (like ActionBarSherlock) from Maven rather than maintaining a git clone of my own for the library projects.

Frustratingly, Gradle seems to require a lot of files to run.  To my eyes, this adds a huge amount of junk to manage in addition to your project.  At least the Android Studio IDE can generate it all for you.AndroidStudio_ProjectStructure

I did run into one glitch – on Windows, Gradle does NOT work if you have “=” in the path to your project.  Since the error message wasn’t entirely intuitive, I lost a little time debugging that issue.

When to adopt

My first feelings were mixed:

  • The features in this IDE seem to be very useful, but will require a little bit of time to adapt.
  • I am a huge fan of simplicity.  The new build structure (and the new folder locations) adds a few layers of complexity.
  • Migrating my git repositories and existing projects won’t be a trivial task.

Should you jump ship on Eclipse and use Android Studio?  Eventually, I think so.  However, prepare for some bumps in the transition.  If you’re not an early adopter, the choice to wait for a more stable release should be the clear one.

Billing, Google Play Services, and more

There’s a lot more to share than I thought when I sat down to type, so I’ll need to save the rest for the next article (but it will be up very soon).  There’s good information on getting your app discovered, Google Play In-App Billing v3, the Developer Console, and app design tips.

 

Posted in Android permalink

About ProjectJourneyman

I am a software engineer that escaped the cubicle world at a large company to go solo with Android app development. My attention to detail and quality applies both to my apps and to my research on how to make money with Android. Now that I have the freedom to work on my own projects, I am documenting my efforts in the hopes that it will help other current or aspiring independent Android developers get the income they desire.

Comments are closed.