If you are an Android developer, life has so far offered a rather straightforward approach: you would probably use Android Developer Tools atop Eclipse, and that is pretty much it! However, in the past few months, Google has been trying to change things a bit, and back in May, they released Android Studio, an IDE built to help make the life of Android developers that little bit easier.
In this post, I am going to take a deeper look at Android Studio — what it is, what it has to offer, and… what it doesn’t offer.
However, since Google itself has provided a rather extensive and elaborate documentation related to details such as installation and usage, we will be bypassing such details and focus entirely on the performance and features of Android Studio. If you do need a extensive article about installation plus usage of Android Studio, you should check this out.
What is it About?
Android Studio is based on the IntelliJ IDEA by JetBrains and comes with an Apache 2.0 License. It offers an impressive set of useful features, such as:
- Cross-platform (Windows, Linux and Mac OS)
- Live coding with WYSIWYG Editor
- Real-time app rendering
- Developer console with tools and tips for optimization and translation
- Usage statistics such as referrals, promotions, etc.
- Supports BETA releases and staged layouts
- Lint tools for usability and version compatibility
- Build support is Gradle-based
- Rich layout editor with support for multi-screen configurations, drag-and-drog UI components, layout previews
- App-signing capabilities
- Template-based wizards
A Closer Look
To quote the Android Developers’ Blog:
“We’ve added features that are designed specifically for Android development, that simplify and optimize your daily workflow.”
Before we evaluate Android Studio as an IDE, let us clarify some of its key aspects.
As already mentioned, Android Studio uses a build system based on. This new build system is flexible enough to let you build your projects either in the IDE or on your continuous integrations servers. This enables you to manage your build configurations natively, across all the tools and throughout the workflow, no matter how complex such configurations may be!
Of course, the build system also support custom build flavors and dependency resolution. You can read more about the build tools in the documentation itself.
Since Android Studio’s code editor is based on the IntelliJ IDEA editor, it offers support for static code analysis, smart editing and code refactoring.
Static code analysis comes in handy when you are looking for bugs. By using JetBrains’ code inspection technique, the code editor in Android Studio helps you perform custom inspections and analyze your code for potential flaws. Similarly, smart edit features include inline resource lookups and instant editing.
Code refactoring, on the other hand, lets you transform your code across the scope of the entire project. Read more about it here.
Access to Google Services
Of course, what good is Android Studio if it does not have tight integration with other Google services?
There is also a plugin called ADT Translation Manager to help you localize your app. Using it, you can export your string to Google Play Developer Console, translate it therein, and then download and import it back into the project.
Also, once again, Android Studio features a Graphical User Interface which supports drag-and-drop. Drag the widgets to wherever you may wish to, and the IDE will take care of the XML in the required manner.
Now that we are done with the introduction and features of Android Studio, it is time to assess its merits and demerits.
Irrespective of the branding that shouts “Android Studio”, most JAVA folks will not take time in recognizing the similarity that Studio shares with IntelliJ IDEA. Google is well aware of the fact that Eclipse, irrespective of its features, is not the world’s most loved coding tool, whereas IntelliJ IDEA has had a good and loyal following. Thus, we have a free and open source coding IDE in the form of Android Studio, that is based on the community version of the very popular IntelliJ IDEA, and pitches itself as an alternative to the not-so-popular Eclipse — sounds like a recipe for success, doesn’t it?
Android Studio offers a responsive and agile interface (at least for the editor). The IDE also has its own analytical tools. For example, the Android API contains more meta info about routines that may return a null pointer. You can use this to discover and cure potential bugs — once again, the code refactor mechanism of IntelliJ IDEA comes into play, and it works to the advantage of Android Studio.
You can also view your layout in multiple screen resolutions. Considering the fact that more and more devices are coming up that sport screen resolutions which may range from a tiny phone to a large tablet or even a smaller netbook, the ability to pop your design in devices of multiple screen configs is definitely a boon for developers.
However, not everything is as smooth as it seems. To begin with, if you are someone who has gotten used to what Eclipse has to offer, you will not be able to claim mastery over Android Studio in 60 seconds. Similarly, developers who are not used to working with Gradle may encounter certain initial hiccups with the build system in Android Studio.
Some of the early adopters of Android Studio had claimed that the Studio should have been based on Eclipse, instead of IntelliJ IDEA. Even others have had issues getting Android Studio to run on Windows 8, and some other have been unhappy with Gradle itself. Since Android Studio is still in its infancy, such road-blocks are but obvious. The manner in which these are dealt with and future roadmaps are laid remains to be seen.
All said and done, Eclipse is a tool that has been used for Android development, even though Android development was clearly not its original purpose. Android Studio, on the other hand, has been designed purely with Android development in mind.
What do you think of Android Studio? Have you given it a shot yet? Liked it or hated it? Share your thoughts with us in the comments below!