What's Happening in Android: Google I/O and the Developer Console
From Android Studio to the recent changes made in the Google Play Developer Console, the last few months have revealed a load of big changes for developers working on Android applications! This article provides an overview of what you need to know to keep up!
For most developers Android Studio is by far the biggest news to come out of Google I/O this year. If you've tried designing, developing, and testing an app for Android using Eclipse with ADT, you'll know what a headache fragmentation can give you. By shifting to an IDE that is tailor-made for Android, based on the IntelliJ Idea, rather than an existing and long-standing Java IDE with an Android plug-in, Android development should become a more streamlined process.
Android Studio is currently available for download as what's being referred to as an early access preview, so if you are trying it out expect bugs. Android Studio uses the Gradle build system, with refactoring and fix tools designed specifically for Android, plus Lint tools putting app creators in a much improved position to develop for performance. However, the biggest difference for most developers is likely to be the ability to create user interfaces more effectively for the vast range of device screen sizes.
The Android Studio interface itself is designed to facilitate this process much more easily, with wizards letting you build common layout objects quickly and a hugely improved graphical editor for your layouts, letting you drag and drop components to arrange your interfaces visually, which was difficult at best before. In general, it's going to be a lot easier to build and preview your app screens during development.
At the time of writing I must admit I haven't had much of a chance to play around with Android Studio, but from first impressions the development process doesn't seem hugely different in terms of the application/logic programming (i.e. Java) side of things. Your project structure is presented in much the same way, have a browse through the folders and you find everything you expect in there, with only very slight differences. Class structure navigation is also very similar, and you can toggle which views are available depending on how you like your workspace to look. The big difference is layout design.
When you edit a layout file in design view, the IDE displays the Palette, presenting you with the range of Android UI components, including layouts, widgets, text-fields, and more. You can drag and drop these straight onto your layout. The Component Tree shows the overall structure of your layout, while the Properties view allows you to edit the details of your layout items without switching to the XML text editor.
When you have a layout open in Android Studio, selecting "Preview All Screen Sizes" gives you a real-time indicator of your UI on actual device screen sizes. When you see this in action, you really start to appreciate how clunky the design process has been up until now.
Migrating from Eclipse
At the moment, the official developer guide is still instructing new Android developers to download and install Eclipse with the ADT plug-in, so in practice, the shift to Android Studio may be a way into the future yet. However, it's probably a sensible move for existing developers to start getting acquainted with the new environment. If you want to work on existing apps in Android Studio, you need to migrate them from Eclipse.
Before you attempt to migrate any projects from Eclipse to Android Studio, make sure your ADT plug-in for Eclipse is up to date. When you export the project, select the option to Generate Gradle Build Files. You can then import the project straight into Android Studio.
Google Play Developer Console
As anyone with published Android apps will already know, the Google Play Developer Console has had an overhaul over the past few months. The new console was introduced in October 2012, became default in March 2013, and the old version has been retired completely. Google I/O this year did touch on the console, but let's recap some of the most notable changes you will already be experiencing when it comes to publishing, updating and monitoring the performance of any Android apps you publish through the Google Play store.
The new console was launched in October 2012. Here's the Google Hangout in which the developer console team introduced some of the major features:
There are lots of minor changes, such as general visual improvements to the user interface and the search and navigation functions; these are particularly useful for developers with many published apps. The more significant developments concern statistics, app listings, and the publishing process.
Performance measurement and app optimization within the developer console have been significantly enhanced with improved statistical reports. You can filter these reports to retrieve detailed graphical overviews of an app's performance in terms of installs, ratings and errors. For example, you can view a graph tracking installs over time with optional filters for devices, app versions, Android versions, countries, carriers and language.
As well as installs, the Statistics section can display daily and cumulative average ratings using the same filters. One of the most potentially useful applications of this is the ability to check for any changes in an app's performance after an upgrade, filtering the stats by app version.
In the new developer console you can also view error reports by app version, drilling right down to the stack traces for crashes, including any user messages. This means that you can identify any issues introduced in a new version of an app, letting you address the problem promptly.
Control over the listings for your apps has also been extensively developed, particularly when it comes to language. You can add listing text for specific languages, letting you control exactly what will appear in the Google Play store for users speaking a different language. This includes the ability to use language-specific graphics, which is vital if your app listing uses graphics with linguistic elements in them. You will also be able to get access to professional translations from within the console itself.
Any languages without specific listing text will now be automatically translated by Google. It goes without saying that such translations are not always accurate, but they are surely better than having nothing if you haven't been able to translate the listing properly. Whenever you update a listing, the automated translation will update along with it. You may have used the translation utility before, which you had to opt into manually, but now it is done automatically.
Potential users will simply see the translation of your app listing in their language, whether it's a translation you provided or the Google translation. Language support has also been extended, now including UK English among other language variants.
The publishing process in Google Play Developer Console has vastly improved. It has clarified what information needs to be input as you work through the publishing screen, and you can save without having to complete everything in one go.
It's easier to spot differences between APK versions if you're upgrading an existing app; the APK Upload tool highlights changes from the previous version, giving you the chance to rectify any accidental errors you've made in terms of supported devices, permissions, etc. I must admit, I've always found the process of publishing or upgrading an app in the console to be a bit of a headache, so I'm pleased to see these improvements.
In the APK section for an app in the console, you can now see a lengthy list of actual devices together with an indication of your app's is compatibility. The Device Compatibility window displays a series of devices by manufacturer and model, with a clear graphical indicator of compatibility for each. Rather than scrolling through the whole lot, you can search for any particular device you are interested in.
Surely, one of the most requested developments to the console has been the ability to respond to user comments. The one-way nature of the comment and ratings system has been a frustrating aspect of publishing apps in the Google Play store for many developers. The good news is that the ability to reply to comments regarding your apps is being introduced, albeit in a relatively restricted form.
Over the past few months, this feature has been rolled out completely to all developers, so you should have the ability to do this now via your Developer Console. Essentially, you have the opportunity to publicly respond once to any single comment. The user will be sent an email, including links through which they can update their original comment or contact the app developer for support.
The Google support information on this feature outlines some fairly specific rules on developer responses to comments, making it clear that this ability may be revoked if a developer gives inappropriate or unprofessional responses, so take a deep breath before you draft your replies to any rude commenters! You can alter your developer responses to user comments any time you like, so if a user you've responded to alters their comment as a result, you can update your response accordingly.
The ability to respond to comments on your apps is likely to be most useful with apps for which you are trying to build long term relationships with users - it's clearly intended as a communication medium for resolving issues with your apps rather than a system for exercising your right-to-reply. However, this new feature (combined with the already implemented requirement for commenters to sign in with Google+) does seem to indicate a commitment to improving quality in the comment system for Android apps, something all developers will likely welcome.
Beta Testing and Rollouts
Staged rollouts have been another of the most desired facilities for Android developers. The Developer Console now provides developers with alpha and beta testing/ graduated rollout options. This has been big news for many developers, particularly those with an existing client base they can use to get feedback early in the development lifecycle. With the new rollout options you can release an app version to a selected group of users, minimizing the impact if you use server resources and giving you control over who you get feedback from, hopefully improving the quality of that data.
Previously, you either had to arrange your own testing/ rollout process independently of Google Play, use a third-party service or simply wait until you had a version you were happy to release through the official publication channels and get feedback that way, potentially damaging your app listings. The ratings system on Google Play made this problematic for many development teams, as a poorly received early version of an app could cause a serious blow to your app's ratings that was difficult to counter in the long term.
The beta testing facility within Google Play is provided via Google+, with the company trying hard to make it the default communication medium for all things Android. With Google+ Groups and Communities, you will be able to communicate privately with beta testers, rather than through the existing comments system in which everything said is instantly in the public domain. This lets developers try out new apps and features without the risk of damaging their standings in the public listings - potentially very valuable in the sometimes harsh context of Google Play!
Both Android Studio and the new Google Play Developer Console genuinely seem to represent a real effort to meet developer needs and wants. With access to more detailed information about apps in terms of multiple performance aspects, the new console provides a whole new world of optimization abilities. However, the really big news is Android Studio. At the moment it's hard to say what impact the new IDE will have, but the limited view of it that we have now is already making it look vastly superior as an Android development environment. For most Android developers, the biggest disadvantage to creating apps for the platform is fragmentation, and this IDE represents a serious effort to counter, or at least alleviate that.
Let us know what you think of either the new Developer Console or the announcements at Google I/O in the comments!