Friday, October 29, 2010

Find your polling place and follow the US Election on the go

The United States midterm election is on Tuesday, November 2, and we encourage all eligible US citizens to get out and vote. We’ve made it easy to find your polling place and follow election news by visiting our Election Center mobile site at m.google.com/elections on your Android-powered phone or iPhone.






Enter the address where you’re registered to vote, and we’ll show you a Google Map of your polling place. The Election Center site also has information about candidates running for office in your area.


So come Tuesday, let your mobile phone guide you to your polling place, and let sanity guide your vote!

Thursday, October 28, 2010

New in Google Maps for Android: Updated reviews, search filters, and Latitude real-time updating

Lately, we’ve been working on giving you even better ways to find nearby places with Google Maps for Android, such as the Places icon and rich Place pages. Today, we are launching Google Maps 4.6 with a new design for Place page reviews, more options to filter search results, and a Google Latitude real-time updating option.

Place page reviews
Now, you’ll see that Place pages on Android Maps share the same new design for displaying reviews as used by Place pages on your computer. You can see:
  • “Reviews from around the web” for highlighting sites that have high-quality reviews about the place.
  • “Reviews from Google users” for reviews posted directly to Google Maps by other users
Filter search results
Of course, you’ll first need to narrow down which Place page reviews to check out. In addition to distance and ratings, you can also filter results for some searches by:
  • Open now
  • Neighborhood
  • Related searches

Find the right place with the updated reviews section (left) or search results filters (right).

Google Latitude real-time updating
In Latitude, you can also choose an experimental “Real-time updating” option from an individual Latitude friend’s profile page to help meet up with them by temporarily seeing faster location updates (friends must have Maps 4.6 and Android 2.2+).

Get Google Maps 4.6 for Android 1.6 and above everywhere Maps is already available. Just search for Google Maps in Android Market (or tap here from your phone).

Visit our Help Center to learn more or tell us your feedback and questions in our Help Forum.

Bring Your Phone to Work Day: Managing Android Devices With Google Apps

(Cross-posted and excerpted from the Official Google Enterprise Blog)

With over 200,000 devices activated each day, Android is seeing rapid adoption, and today we are launching new administrative controls that make it possible to securely manage these devices in the Google Apps environment. With this launch, Google Apps provides a comprehensive mobility solution for all major mobile platforms. You can manage most mobile devices right from the browser, without having to deploy dedicated servers.

Many Android devices feature tight integration with Google Apps, including native applications for Gmail, Google Talk, and Google Calendar, as well as mobile access to Google Docs. Now any employee with an Android device running version 2.2 - personal or company-issued - can access their corporate information while allowing administrators to enforce data security policies such as:
  • Remotely wipe all data from lost or stolen mobile devices
  • Lock idle devices after a period of inactivity
  • Require a device password on each phone
  • Set minimum lengths for more secure passwords
  • Require passwords to include letters and numbers
When the employee leaves the company, the administrator can withdraw access to corporate info, which allows the employee to continue to use their device if it’s their own

These policies can be enforced on devices that have installed the Google Apps Device Policy application, which will be available from Android Market in the next few days. They will be available free to all Google Apps Premier and Education Edition customers in the next few days, and can be accessed from the 'Mobile' tab under 'Service Settings' in the Google Apps control panel.

To learn more about these updates in mobile device management for Google Apps, join us for a live webcast with Mayur Kamat, Google Apps Product Manager, on November 10, 2010 at 9 a.m. PDT / 12 p.m. EDT / 6 p.m. GMT. Register now

Wednesday, October 27, 2010

Gmail in mobile Safari: now even more like a native app

Go to gmail.com from your iPhone and you’ll notice two improvements we’ve rolled out over the past few weeks. First, scrolling is snappier: the speed of scrolling reflects the speed of your swipe gesture. This is helpful for long conversations where a few quick flicks will get you to the information you need much faster than before. Second, the toolbars stay on screen while you’re scrolling rather than moving down into view after each scroll. Being able to access your toolbars from any point on the page should make it easier to triage your email and move around the app.



If you use Gmail in your mobile browser a lot, you may have noticed that we recently tried several different variations of these buttons. We‘ve iterated on the design and made improvements based on your feedback. If you have more suggestions, please post them in our forum, or if you use Twitter, mention #gmailmobile and we'll take a look. If you’re a developer and are interested in learning about the Javascript and HTML techniques we used to do this, we’ll post an article to code.google.com/mobile in the coming weeks.

You can see these improvements by visiting gmail.com from the browser of iPhone and iPod touch devices running iOS4 (English-only for now). And if you like Gmail in mobile Safari, make getting to it easier by tapping the “+” at the bottom of the screen and then “Add to Home Screen.” (Don’t see the new changes yet? Try clearing your cache and refreshing the page.)

Thursday, October 21, 2010

Voice Search in Russian, Polish, Czech and Turkish

Over the past few weeks we have launched Voice Search in four new languages: Russian, Polish, Czech and Turkish. Try speaking queries like “концерты Юлии Савичевой” (tour dates for Yulia Savicheva), “przepis na pierogi” (recipes for pierogi), “obrázky Hradčan” (pictures of the Prague castle), or “istanbul hava durumu” (weather in Istanbul). Note that you can only speak one language into the app at any time and that you’ll need to change your language setting first.








Voice Search is often preloaded on new Android devices. In that case, all you have to do is press and hold the search button and then speak your query. If you have an Android (2.0 or higher) phone but don’t have Voice Search installed, download the “Voice Search” app from Android Market. If you own an iPhone or other smartphone, you can download Google Mobile App with Voice Search from m.google.com


Improving App Quality

[This post is by Roman Nurik, who is passionate about icons. —Tim Bray]

With thousands of new apps being published in Android Market every week, it’s becoming more and more important to proactively work at breaking through the clutter (hooray for marketing jargon!). One way of improving your app’s visibility in the ecosystem is by deploying well-targeted mobile advertising campaigns and cross-app promotions. However, there’s another time-tested method of fueling the impression-install-ranking cycle: improve the product!

A better app can go a very long way: a higher quality app will translate to higher user ratings, generally better rankings, more downloads, and higher retention (longer install periods). High-quality apps also have a much higher likelihood of getting some unanticipated positive publicity such as being featured in Android Market or social media buzz.

The upside to having a higher-quality app is obvious. However, it’s not always clear how to write a so called ‘better app.’ The path to improving app quality isn’t always well-lit. The term ‘quality’, and its close cousins ‘polish’ and ‘fit and finish’ aren’t always well-defined. In this post, we’ll begin to light the path by looking at a couple of key factors in app quality, and furthermore, look at ways of improving your app along these dimensions.

Listen to your users

Given that pretty much any measure of the ‘success’ of an app involves user-related metrics such as number of downloads, daily actives, retention rates, etc., it’s a good idea to start thinking of your app’s quality as it relates back to your users.

The most obvious way to listen to users is by reading and addressing comments on your app in Android Market. Although the comments aren’t always productive or constructive, some will provide valuable insight on aspects of your app that you may not have consciously considered before. It’s important to remember that users have the opportunity to change their ratings and comments about an app as much as they’d like.

Now, since Android Market doesn’t currently provide a bidirectional communication medium for developers and their users, you should set up your own support and discussion destination(s). There are some great support tools out there that can put you in touch with your users directly such as Google Groups, Zoho Discussions, getsatisfaction.com and uservoice.com. Once you get set up with such a tool, make sure to fill in the support link in your Android Market listing -- users do click through to these.

Another way to better listen to your users is by having a public beta or trusted tester program. It’s crucial to have some amount of real user testing before releasing something in Android Market. Fortunately, you can distribute your apps to users outside of Market via a website; this website can require a login or be publicly accessible — it’s entirely up to you. Take advantage of this opportunity by offering your next planned update to some early adopters, before submitting to Market. You’ll be surprised by how many little, yet impactful, improvements can come out of crowd-sourced, real-user testing.

Improve stability and eliminate bugs

I won’t go into detail about why this is important, because hopefully it’s obvious. And hopefully you’ve been reading this blog and following the best practices outlined in previous posts, so you have a solid idea on how to improve in this arena.

One noteworthy and yet relatively underused tool for catching stability issues like crashes, is the UI/Application Exerciser Monkey (aka Monkey). Monkey will send random UI events to your app’s activitie, allowing you to trigger user flows that can uncover stability problems.

Also, with the new error reporting features in Android 2.2, users now have the ability to report application crashes to developers. These show up in aggregate in the Android Market developer console. Make sure to read these reports and act on them appropriately.

Lastly, keep an external bug and feature request tracker. This will enable your users to engage with the app at a closer level, by following features and bugs that affect them. User frustration with app problems can be effectively managed with diligent issue tracking and communication. Some of the community support tools listed above offer issue tracking features, and if your project is open source, most popular repository hosting sites such as Google Code and GitHub will offer this as well.

Improve UI Responsiveness

One sure-fire way to tick off your users is to have a slow UI. Research has shown that speed matters... for any interface, be it desktop, web, or mobile. In fact, the importance of speed is amplified on mobile devices since users often need their information on the go and in a hurry.

As Brad Fitzpatrick mentioned in his Google I/O 2010 talk, Writing Zippy Android Apps, you can improve your apps’s UI responsiveness by moving long-running operations off the application’s main thread. See the talk for detailed recommendations and debugging tips.

One way to improve UI performance is to minimize the complexity of your layouts. If you open up hierarchyviewer and see that your layouts are more than 5 levels deep, it may be time to simplify your layout. Consider refactoring those deeply nested LinearLayouts into RelativeLayout. As Romain Guy pointed out in his World of ListView talk at Google I/O, View objects cost around 1 to 2 KB of memory, so large view hierarchies can be a recipe for disaster, causing frequent VM garbage collection passes which block the main (UI) thread.

Lastly, as Tim pointed out in Traceview War Story, tools like traceview and ddms can be your best frends for improving performance by profiling method calls and monitoring VM memory allocations, respectively.

More resources:

Improve usability

I’ll say it again here, listen to your users! Ask a handful of real Android device users (friends, family, etc.) to try out your application and observe them as they interact with it. Look for cases where they get confused, are unsure how to proceed, or are surprised by certain behaviors. Minimize these cases by rethinking some of the interactions in your app, perhaps working in some of the user interface patterns the Android UI team discussed at Google I/O.

In the same vein, two problems that currently plague Android user interfaces are small tap targets and overly small font sizes. These are generally easy to fix and can make a big impact. As a general rule, optimize for ease of use and legibility, while minimizing, or at least carefully balancing, information density.

Another way to incrementally improve usability, based on real-world data, is to implement Analytics throughout your app to log usage of particular sections. Consider demoting infrequently used sections to the options menu, or removing them altogether. For oftenly-used sections and UI elements, make sure they’re immediately obvious and easily accessible in your app’s UI so that users can get to them quickly.

Lastly, usability is an extensive and well-documented subject, with close ties to interface design, cognitive science, and other disciplines. If you’re looking for a crash-course, start with Donald Norman’s The Design of Everyday Things.

Improve appearance and aesthetics

There’s no substitute for a real user interface designer — ideally one who’s well-versed in mobile and Android, and ideally handy with both interaction and visual design. One popular venue to post openings for designers is jobs.smashingmagazine.com, and leveraging social connections on Twitter and LinkedIn can surface great talent.

If you don’t have the luxury of working with a UI designer, there are some ways in which you can improve your app’s appearance yourself. First, get familiar with Adobe Photoshop, Adobe Fireworks, or some other raster image editing tool. Mastering the art of the pixel in these apps takes time, but honing this skill can help build polish across your interface designs. Also, master the resources framework by studying the framework UI assets and layouts and reading through the new resources documentation. Techniques such as 9-patches and resource directory qualifiers are somewhat unique to Android, and are crucial in building flexible yet aesthetic UIs.

The recently-published Android UI Design Tips slide deck contains a few more best practices for your consideration.

Deliver the right set of features

Having the right set of features in your app is important. It’s often easy to fall into the trap of feature-creep, building as much functionality into your app as possible. Providing instant gratification by immediately showing the most important or relevant information is crucial on mobile devices. Providing too much information can be as frustrating (or even more so) than not providing enough of it.

And again, listen to your users by collecting and responding to feature requests. Be careful, though, to take feature requests with grains of salt. Requests can be very useful in aggregate, to get a sense of what kinds of functionality you should be working on, but not every feature request needs to be implemented.

Integrate with the system and third-party apps

A great way to deliver a delight user experience is to integrate tightly with the operating system. Features like app widgets, live folders, global search integration, and Quick Contacts badges are fairly low-hanging fruit in this regard. For some app categories, basic features like app widgets are par for the course. Not including them is a sure-fire way to tarnish an otherwise positive user experience. Some apps can achieve even tighter OS integration with the new contacts, accounts and sync APIs available in Android 2.0 and later. A few sample apps that show how to use these APIs are SampleSyncAdapter (bundled with the SDK samples) and JumpNote.

Third-party integrations can provide even more user delight and give the user a feeling of device cohesiveness. It’s also a really nice way of adding functionality to your app without writing any extra code (by leveraging other apps’ functionalities). For example, if you’re creating a camera app, you can allow users to edit their photos in Photoshop Express before saving them to their collection, if they have that third-party application installed. More information on this subject is available in the Can I Use this Intent? article.

More resources:

Pay attention to details...

One particular detail I’ll call out is in icon quality and consistency. Make sure your app icons (especially your launcher icon) are crisp and pixel-perfect at all resolutions, and follow the icon guidelines, at least in spirit if not in letter. If you’re having trouble or don’t have the resources to design the icons yourself, consider using the new Android Asset Studio tool (a project I’ve recently open-sourced) to generate a set.

...and more...

Along with this blog, make sure to follow @AndroidDev on Twitter — we’re constantly collecting and sharing tips and tricks on Android application development that you won’t always find anywhere else. And of course, don’t be afraid to ask questions in our support forums on Stack Overflow and Google Groups.

Thanks for reading!