Month: June 2013

This is part 2 of my series focused on helping developers move from the more traditional development space of Web-based or desktop apps to the world of Mobile on Android.

The series is written from the perspective of a developer coming from a .NET background but is really for anyone with programming experience wanting to learn to program on Android.

Many years ago when I first started teaching and writing training materials, my work was focused on students who were new to programming but for the last decade or so, I’ve been much more focused on advanced and intermediate-to-advanced topics. I had forgotten the joy of breaking concepts down so that they are easily understood by someone new to the environment. Getting to do that again, makes this series is great fun to write.

I feel everything came together on this course and I’m really proud of it. I hope you enjoy it. Part 3 should be available in about a month.

As you’ll recall, I posted yesterday about working around the issue in Android Studio where copying a project to a new folder creates problems because the Android Studio project keeps references to the original folder. After my post yesterday, I figured out an easier way to work around the problem.

You still have to modify just as many files but the steps are easier to follow and perform than my suggestion from yesterday.

The cool thing about this workaround is that after copying the project to the folder, you always make the same (relatively simple) changes. There’s nothing specific about the destination folder in the changes we make.

Note: I’m including line numbers just as estimates. Your line numbers will almost definitely be different.

Be sure that Android Studio is completely closed.

In both of the following files, change the value for PROJECT_ABSOLUTE_PATH to be blank

Change:

To:

And with that, you’re ready to open the destination project in Android Studio.

When you save the project, Android Studio will automatically save the new folder as the PROJECT_ABSOLUTE_PATH value.

I’m finding these changes much easier to manage than the ones I walked through yesterday. But as I mentioned yesterday, the best news of all is that I suspect that this will be a short lived bug and we won’t have to deal with this workaround for long.

Since I write training courses about Android development, I frequently have to copy projects from one folder to another. I commonly create a project in a “before” folder, copy the project to an “after” folder, and then do the work being discussed in the course in the project in the “after” folder. When students view the course they can download “before” and “after” copies of the project.

Well one of the pains I’ve been dealing with in the preview release of Android Studio is the fact that when a project is copied from one folder to another, the project keeps pointers to the original folder. One ends up with a mess where some things in the new project point to the new folder and somethings point to the old. Deleting the original folder makes things even worse.

I’ve reported the issue as an Android Studio bug. It appears to have been accepted as an issue but as of this writing the version of Android Studio currently available still has the problem.

The version available as of this writing…

I’m certain this is an issue that will be addressed so if you’re reading this post substantially beyond the posting date, verify that the problem still exists before doing the steps I list here.

Change:

To:

5.
Now open the project in Android Studio

You may be prompted with a dialog indicating that it’s removing a non-existent project. Let it do that. It’s just cleaning up some internal data, it doesn’t appear to have any impact on the original project.

Voila! We now have a copy of our project.

The best news of all … I’m pretty sure that the bug that’s causing us to have to go through all of these steps (rather than simply copying the project folder) is a bug that will soon be fixed.

If you’re a software developer, you know that the IDE, and specifically the editor, you use becomes a natural extension of the way you think and work.

So often, the editor we use is a factor of the project we’re working on … we use the right tool for the job (or more specifically … the editor in the IDE we’re using). The question of “what is your favorite editor?” can only be answered when there is no pragmatic environmental factor influencing us. You just need to edit some file .. it’s not a C# file, it’s not a Java file, it’s not an XML file … its just some text file (the issue comes up more often than you might think).

I’ve been a dev for nearly 30 years now and a good deal of that was in Microsoft space. I actually worked with Visual C++ 1.0 (the predecessor to Visual Studio), released in Feb. 1993, back when it was installed from 20 floppy disks because not everyone had the ability to read a CD (DVD’s weren’t even around yet). I’ve worked with every version of Visual C++ & Visual Studio since then. As a result, Visual Studio was my go-to editor.

Over the past few years, I’ve been dug in hard in the Android space. Until the past few weeks, JetBrains IntelliJ IDEA (the tool that Android Studio is built on) was my preferred Android dev environment but as much as I liked IntelliJ, Visual Studio was the tool I used to edit an arbitrary text file.

With the release of Android Studio, I feel like the IntelliJ environment (already fantastic) is even better. And just the other day it occurred to me … why am I firing up Visual Studio to edit a text file when I already have Android Studio open. I love working in Android Studio and as I said … I pretty much always have it open.

So with that I realized … after nearly 20 years of using Visual Studio as my go-to editor … Android Studio is now my Editor-Of-Choice.

Have you noticed a shortening of your laptop’s battery life when working with Android Studio?

Android Studio is a great tool and some of the great things it does require fairly substantial processing to occur in the background. Much of this processing is constantly firing performing what are called Inspections.

To get a sense of the kind of background work that’s going on, choose Project \ Settings from the Android Studio menu and then highlight Inspections in the Project Settings pane.

To save power we could go through and turn off some of these inspections so that less background processing occurs. These inspections are good stuff, though. I prefer to have these checks available. Fortunately, Android Studio doesn’t require us to make this choice.

Android Studio gives us the option of stopping the automatic checks and instead running them on demand. You can prevent these inspections from automatically running by selecting Project \ Power Save Mode in the Android Studio menu.

You can then run the checks manually by choosing Analyze \ Inspect Code… from the Android Studio menu.

With this, we get the benefit of Android Studio code inspection while still maximizing our laptop battery life.

The stability of the initial preview release of Android Studio (version 0.1) was pretty impressive. Being built on a long-standing product like JetBrains Intellij IDEA gave it a great start.

That said, it did at times feel like a version 0 product … unexpected message boxes popping up, strange behavior in the feature that displays the string value where string resources are used (sometimes didn’t work .. sometimes showed the string value on a different line than where the resource appeared), those sort’a things.

About a week or so after the initial release Android Studio automatically updated to Android Studio 0.1.1 and there was some improvement but not a huge amount.

Well then yesterday, I received another update, Android Studio 0.1.2 (Build #AI-130.692269) … I’ve only been using it for less than 24 hours but so far this build feels MUCH MUCH better. It’s feeling much more stable.

If you haven’t already done so, I encourage you to download Android Studio and start checking it out. I’m sure there will still be some issues but it’s improving quickly and IMHO is already so much better than using Eclipse that any minor annoyances are a small price to pay to have such a superior dev tool.