Monthly Archives: May 2015

Gmail API Push notifications: don’t call us, we’ll call you

If your app needs to keep up with changes in a Gmail mailbox, whether it's new mail being received or a label being added, you are likely familiar with periodically polling the Gmail API's history feed for updates. If you find this tedious, we have good news for you. Today, at Google I/O 2015, we're launching push notifications for the Gmail API.

Just subscribe to a Gmail mailbox and whenever a change occurs, the Gmail API will instantly notify your server using webhooks or another Cloud Pub/Sub API notification method. No polling required.

Check out the developers’ guide at https://developers.google.com/gmail/api/guides/push to get started. We can’t wait to see what you build.

Posted by Eric DeFriez, Gmail Extensibility Team. As a technical lead for Gmail APIs, Eric works to make it easy for developers to build on top of Gmail.

Android Design Support Library

Posted by Ian Lake, Developer Advocate

Android 5.0 Lollipop was one of the most significant Android releases ever, in no small part due to the introduction of material design, a new design language that refreshed the entire Android experience. Our detailed spec is a great place to start to adopt material design, but we understand that it can be a challenge for developers, particularly ones concerned with backward compatibility. With a little help from the new Android Design Support Library, we’re bringing a number of important material design components to all developers and to all Android 2.1 or higher devices. You’ll find a navigation drawer view, floating labels for editing text, a floating action button, snackbar, tabs, and a motion and scroll framework to tie them together.

Navigation View

The navigation drawer can be an important focal point for identity and navigation within your app and consistency in the design here can make a considerable difference in how easy your app is to navigate, particularly for first time users. NavigationView makes this easier by providing the framework you need for the navigation drawer as well as the ability to inflate your navigation items through a menu resource.

You use NavigationView as DrawerLayout’s drawer content view with a layout such as:

<android.support.v4.widget.DrawerLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true">

    <!-- your content layout -->

    <android.support.design.widget.NavigationView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            app:headerLayout="@layout/drawer_header"
            app:menu="@menu/drawer"/>
</android.support.v4.widget.DrawerLayout>

You’ll note two attributes for NavigationView: app:headerLayout controls the (optional) layout used for the header. app:menu is the menu resource inflated for the navigation items (which can also be updated at runtime). NavigationView takes care of the scrim protection of the status bar for you, ensuring that your NavigationView interacts with the status bar appropriately on API21+ devices.

The simplest drawer menus will be a collection of checkable menu items:

<group android:checkableBehavior="single">
    <item
        android:id="@+id/navigation_item_1"
        android:checked="true"
        android:icon="@drawable/ic_android"
        android:title="@string/navigation_item_1"/>
    <item
        android:id="@+id/navigation_item_2"
        android:icon="@drawable/ic_android"
        android:title="@string/navigation_item_2"/>
</group>

The checked item will appear highlighted in the navigation drawer, ensuring the user knows which navigation item is currently selected.

You can also use subheaders in your menu to separate groups of items:

<item
    android:id="@+id/navigation_subheader"
    android:title="@string/navigation_subheader">
    <menu>
        <item
            android:id="@+id/navigation_sub_item_1"
            android:icon="@drawable/ic_android"
            android:title="@string/navigation_sub_item_1"/>
        <item
            android:id="@+id/navigation_sub_item_2"
            android:icon="@drawable/ic_android"
            android:title="@string/navigation_sub_item_2"/>
    </menu>
</item>

You’ll get callbacks on selected items by setting a OnNavigationItemSelectedListener using setNavigationItemSelectedListener(). This provides you with the MenuItem that was clicked, allowing you to handle selection events, changed the checked status, load new content, programmatically close the drawer, or any other actions you may want.

Floating labels for editing text

Even the humble EditText has room to improve in material design. While an EditText alone will hide the hint text after the first character is typed, you can now wrap it in a TextInputLayout, causing the hint text to become a floating label above the EditText, ensuring that users never lose context in what they are entering.

In addition to showing hints, you can also display an error message below the EditText by calling setError().

Floating Action Button

A floating action button is a round button denoting a primary action on your interface. The Design library’s FloatingActionButton gives you a single consistent implementation, by default colored using the colorAccent from your theme.

In addition to the normal size floating action button, it also supports the mini size (fabSize="mini") when visual continuity with other elements is critical. As FloatingActionButton extends ImageView, you’ll use android:src or any of the methods such as setImageDrawable() to control the icon shown within the FloatingActionButton.

Snackbar

Providing lightweight, quick feedback about an operation is a perfect opportunity to use a snackbar. Snackbars are shown on the bottom of the screen and contain text with an optional single action. They automatically time out after the given time length by animating off the screen. In addition, users can swipe them away before the timeout.

By including the ability to interact with the Snackbar through swiping it away or actions, these are considerably more powerful than toasts, another lightweight feedback mechanism. However, you’ll find the API very familiar:

Snackbar
  .make(parentLayout, R.string.snackbar_text, Snackbar.LENGTH_LONG)
  .setAction(R.string.snackbar_action, myOnClickListener)
  .show(); // Don’t forget to show!

You’ll note the use of a View as the first parameter to make() - Snackbar will attempt to find an appropriate parent of the Snackbar’s view to ensure that it is anchored to the bottom.

Tabs

Switching between different views in your app via tabs is not a new concept to material design and they are equally at home as a top level navigation pattern or for organizing different groupings of content within your app (say, different genres of music).

The Design library’s TabLayout implements both fixed tabs, where the view’s width is divided equally between all of the tabs, as well as scrollable tabs, where the tabs are not a uniform size and can scroll horizontally. Tabs can be added programmatically:

TabLayout tabLayout = ...;
tabLayout.addTab(tabLayout.newTab().setText("Tab 1"));

However, if you are using a ViewPager for horizontal paging between tabs, you can create tabs directly from your PagerAdapter’s getPageTitle() and then connect the two together using setupWithViewPager(). This ensures that tab selection events update the ViewPager and page changes update the selected tab.

CoordinatorLayout, motion, and scrolling

Distinctive visuals are only one part of material design: motion is also an important part of making a great material designed app. While there are a lot of parts of motion in material design including touch ripples and meaningful transitions, the Design library introduces CoordinatorLayout, a layout which provides an additional level of control over touch events between child views, something which many of the components in the Design library take advantage of.

CoordinatorLayout and floating action buttons

A great example of this is when you add a FloatingActionButton as a child of your CoordinatorLayout and then pass that CoordinatorLayout to your Snackbar.make() call - instead of the snackbar displaying over the floating action button, the FloatingActionButton takes advantage of additional callbacks provided by CoordinatorLayout to automatically move upward as the snackbar animates in and returns to its position when the snackbar animates out on Android 3.0 and higher devices - no extra code required.

CoordinatorLayout also provides an layout_anchor attribute which, along with layout_anchorGravity, can be used to place floating views, such as the FloatingActionButton, relative to other views.

CoordinatorLayout and the app bar

The other main use case for the CoordinatorLayout concerns the app bar (formerly action bar) and scrolling techniques. You may already be using a Toolbar in your layout, allowing you to more easily customize the look and integration of that iconic part of an app with the rest of your layout. The Design library takes this to the next level: using an AppBarLayout allows your Toolbar and other views (such as tabs provided by TabLayout) to react to scroll events in a sibling view marked with a ScrollingViewBehavior. Therefore you can create a layout such as:

 <android.support.design.widget.CoordinatorLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
     
     <! -- Your Scrollable View -->
    <android.support.v7.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior" />

    <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
   <android.support.v7.widget.Toolbar
                  ...
                  app:layout_scrollFlags="scroll|enterAlways">

        <android.support.design.widget.TabLayout
                  ...
                  app:layout_scrollFlags="scroll|enterAlways">
     </android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>

Now, as the user scrolls the RecyclerView, the AppBarLayout can respond to those events by using the children’s scroll flags to control how they enter (scroll on screen) and exit (scroll off screen). Flags include:

  • scroll: this flag should be set for all views that want to scroll off the screen - for views that do not use this flag, they’ll remain pinned to the top of the screen
  • enterAlways: this flag ensures that any downward scroll will cause this view to become visible, enabling the ‘quick return’ pattern
  • enterAlwaysCollapsed: When your view has declared a minHeight and you use this flag, your View will only enter at its minimum height (i.e., ‘collapsed’), only re-expanding to its full height when the scrolling view has reached it’s top.
  • exitUntilCollapsed: this flag causes the view to scroll off until it is ‘collapsed’ (its minHeight) before exiting

One note: all views using the scroll flag must be declared before views that do not use the flag. This ensures that all views exit from the top, leaving the fixed elements behind.

Collapsing Toolbars

Adding a Toolbar directly to an AppBarLayout gives you access to the enterAlwaysCollapsed and exitUntilCollapsed scroll flags, but not the detailed control on how different elements react to collapsing. For that, you can use CollapsingToolbarLayout:

<android.support.design.widget.AppBarLayout
        android:layout_height="192dp"
        android:layout_width="match_parent">
    <android.support.design.widget.CollapsingToolbarLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">
        <android.support.v7.widget.Toolbar
                android:layout_height="?attr/actionBarSize"
                android:layout_width="match_parent"
                app:layout_collapseMode="pin"/>
        </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>

This setup uses CollapsingToolbarLayout’s app:layout_collapseMode="pin" to ensure that the Toolbar itself remains pinned to the top of the screen while the view collapses. Even better, when you use CollapsingToolbarLayout and Toolbar together, the title will automatically appear larger when the layout is fully visible, then transition to its default size as it is collapsed. Note that in those cases, you should call setTitle() on the CollapsingToolbarLayout, rather than on the Toolbar itself.

In addition to pinning a view, you can use app:layout_collapseMode="parallax" (and optionally app:layout_collapseParallaxMultiplier="0.7" to set the parallax multiplier) to implement parallax scrolling (say of a sibling ImageView within the CollapsingToolbarLayout). This use case pairs nicely with the app:contentScrim="?attr/colorPrimary" attribute for CollapsingToolbarLayout, adding a full bleed scrim when the view is collapsed.

CoordinatorLayout and custom views

One thing that is important to note is that CoordinatorLayout doesn’t have any innate understanding of a FloatingActionButton or AppBarLayout work - it just provides an additional API in the form of a Coordinator.Behavior, which allows child views to better control touch events and gestures as well as declare dependencies between each other and receive callbacks via onDependentViewChanged().

Views can declare a default Behavior by using the CoordinatorLayout.DefaultBehavior(YourView.Behavior.class) annotation,or set it in your layout files by with the app:layout_behavior="com.example.app.YourView$Behavior" attribute. This framework makes it possible for any view to integrate with CoordinatorLayout.

Available now!

The Design library is available now, so make sure to update the Android Support Repository in the SDK Manager. You can then start using the Design library with a single new dependency:

 compile 'com.android.support:design:22.2.0'

Note that as the Design library depends on the Support v4 and AppCompat Support Libraries, those will be included automatically when you add the Design library dependency. We also took care that these new widgets are usable in the Android Studio Layout Editor’s Design view (find them under CustomView), giving you an easier way to preview some of these new components.

The Design library, AppCompat, and all of the Android Support Library are important tools in providing the building blocks needed to build a modern, great looking Android app without building everything from scratch.

Daily Data-Informed Decisions With Google Analytics Premium and Google BigQuery


The American Precious Metals Exchange (APMEX) is the leading purveyor of precious metals, serving millions of customers worldwide. The company partnered with E-Nor, a Google Analytics Premium Authorized Reseller, to better understand the customer journey and gain insights to improve marketing initiatives.




The first challenge they tackled was to integrate various data assets by exporting Google Analytics Premium data to Google BigQuery. This was accomplished using both the BigQuery export and the User ID features to connect website behavioral data to the company internal customer profiles. This enabled APMEX to use data more effectively to interact with different types of customers.

In addition, by bringing Google Analytics data into the company’s Customer Relationship Management (CRM) system, they empowered their internal teams to make data-informed decisions on a daily basis. For example, when customers call, site usage information is now available to the customer representative talking them. 
“We have found BigQuery data to be immediately actionable. It focuses our marketing efforts, personalizes our onsite experiences, and improves the effectiveness of our sales department. When used in conjunction with our current data systems, there is seemingly no question about our customers that cannot be answered. It’s that powerful.”Andrew Duffle, Director FP&A, Analytics & Optimization, APMEX, Inc.
As a result of the work mentioned above, APMEX has decreased the average cost per acquisition (CPA) by more than 20% while maintaining the same level of new customer orders. 

They have also used Google Analytics Premium data to build a statistical model to target valuable customers earlier in their life cycle. For customers identified in the model, the company has increased email open rates by 58%, email conversion rates by 62%, and revenue per email by 163% as compared to the overall business. 

To read more about how APMEX and E-Nor used Google Analytics Premium along with BigQuery in order to make more informed decisions, download the full case study.


Posted by Daniel Waisberg, Analytics Advocate.

Tour the Code the Road bus


Our road trip has just begun and we already have a lot to share about our Code the Road bus. The bus is a mobile showcase of some of our most innovative customers, applications and websites that harness the power of Maps and location. If you’re in San Francisco, stop by Moscone Center where can experience first-hand what we’ll be featuring on the road. The bus is across from Moscone West at the corner of 4th Street and Howard Street—we’re outside the venue, so you don’t need an I/O registration get on the bus, so come down to visit!

SUGARBEAR, the name given to the bus by its original owners, is a 1959 PD-4104 General Motors Coach, rebuilt from the ground up in 1978. It measures approximately 35’ long by 8’ wide with a Detroit diesel engine outfitted for bio-diesel.

Here’s what we have on the bus:

Visitors are able to test-out the Android Auto navigation system first-hand and while on the road we will be utilizing Android Auto to keep us headed in the right direction.

Our Android Wearables demo wall includes a giant model watch on our Android robot arm, removable android watches for trying on, and an overview of the wearables features.

We highlight six of our location innovator customers and their interactive applications powered by Google Maps APIs. Visitors can demo applications from iFit, PicsArt, Harley-Davidson, Hilton Hotels, The Weather Channel and Walt Disney World Resort.

Toward the back of the bus, the Street View Treks demo, complete with a Trekker backpack with Street View camera, gives visitors a hiker’s view of the trails through an 80” monitor with Street View Treks imagery. And, even Street View racoon is along for the ride.

Outside of the bus we have a Proform bike and treadmill provided by ICON with the iFit app, powered by Google Maps. Visitors can run on the treadmill in Street View to experience a virtual run through town or trail.

We hope to see you on the road to experience the bus first-hand. Visit the Code the Road website to see our up-coming stops and dates.

Posted by Ashley Smith, Developer Marketing, Google Maps APIs

Announcing the Material Design Showcase and Awards

Posted by Rich Fulcher, Material Design Team

When we first announced material design in June 2014, we shared an aspirational highlights reel that demonstrated key material principles for motion, interaction, and visual design across a range of hypothetical apps. “Hypothetical” being the key word here—back then, material design was just an idea. Sure, designers and engineers at Google were already working hard on applying material to Google’s Android, iOS, and web apps, but the notion of a single design system that can work across platforms and brands was just an idea.

Fast-forward to today, and thousands of Android apps are adopting material design using the Android 5.0 SDK and AppCompat, while designers and developers begin to experiment with material design on iOS and the web as well. These apps are starting to realize that aspirational vision we set out with that sizzle reel.

Today, we’re celebrating the amazing design work from Google Play developers and announcing the Material Design Showcase and Material Design Awards.

With the Material Design Showcase, we’re highlighting 18 great material design apps through a collection on Google Play, just like with the Beautiful Design collection in years past.

Of those 18 apps, we’re recognizing 6 with a special award, which we handed out during Google I/O today and announced at the Material Now session hosted by Matias Duarte.

These 6 winners of our first ever Material Design Awards represent best-in-class applications of specific aspects of material design:

B&H Photo Video Audio Pro for Immersive Imagery

New York Times for Elegant Typography

Pocket for Adaptive Layouts

Pocket Casts for Seamless Browsing

Tumblr for Delightful Animation

Weather Timeline for Crafted Simplicity

So today, we have a new highlights reel, featuring these six wonderful and very real apps:


The individuals, teams, and companies behind these apps have made the promise of material design that much more of a reality.

What’s next

But remember, this is only the beginning. We’ll continue to recognize excellent material design in the future, evolving the awards as we evolve material design itself—together as a community.

If you’re a designer or developer just starting out with material design, make sure to check out these 18 apps in the Material Design Showcase. They’re a great source of inspiration, in addition to the awesome content on community sites like Dribbble. And if you’re wondering how to start implementing some of these ideas, get started today with the Creating Apps with Material Design training docs. When you publish your next great app with material design, be sure to let us know on Google+ and Twitter!

Announcing two new versions of the Google Mobile Ads SDK, plus the Native Ads beta!

Today we’re pleased to announce two new versions of the Google Mobile Ads SDK: version 7.5 for Android, and version 7.3.1 for iOS. Included is a brand new way to monetize your apps with the Google Mobile Ads SDK: native ads!

With native ads, publishers can display ad assets directly in native views, using layouts and storyboards they design to fit their user experience. You now have the power to monetize with ads that are seamless with content!

Native ads are currently in a beta with a limited group of publishers, but the code is included in the latest releases of the Mobile Ads SDK for iOS and Android. Those of you using Android Studio can download Google Repository (Rev. 19) via the Android SDK Manager to get the latest Gradle artifacts, and developers with Eclipse projects can find it listed as Google Play services (Rev. 25). Publishers with iOS apps can snag the latest SDK for that platform by updating their Podfile to pull version 7.3.1.

For AdMob, DFP, and AdX publishers, there are two system-defined native ad formats: App Install and Content. Each provides a set of image and string assets that make up the ad. App Install ads contain assets named “price,” “star rating,” and so on, while Content ads have “body,” “logo,” and others. See the AdMob and DFP help center articles for more information about the formats.

Publishers using DFP can also take advantage of custom native ad formats. With a custom format, you can create your own set of asset definitions, and then upload creatives with a matching set of values.

Native ads are loaded using the new AdLoader and GADAdLoader classes, which can request a single format or several at the same time, helping you maximize the value of your impressions. Here’s an example showing how to request an App Install ad on Android:


AdLoader adLoader = new AdLoader.Builder(this, DFP_AD_UNIT_ID)
.forAppInstallAd(new NativeAppInstallAd.OnAppInstallAdLoadedListener() {
@Override
public void onAppInstallAdLoaded(NativeAppInstallAd ad) {
/* display the ad */
}
}).build();
adLoader.loadAd(new AdRequest.Builder().build());

And here’s the iOS equivalent:


self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:DFP_AD_UNIT_ID
rootViewController:rootViewController
adTypes:@[ kGADAdLoaderAdTypeNativeAppInstall ]
options:nil];
self.adLoader.delegate = self;
[self.adLoader loadRequest:[GADRequest request]];

Check out the native ads guide (Android | iOS) for more information about native ads. For a full list of Mobile Ads SDK changes, check out our release notes. For technical questions, post them on our forum.

A new way for the whole family to play

[Cross-posted from the Android Official Blog]

Whether you’re trying to entertain a toddler on a crowded plane, encourage your child’s newfound love of reading or simply find a movie for the whole family to enjoy, finding the right content should be just a tap or two away. Parents want the best for their kids, but when it comes to digital entertainment, it can be difficult to know what to look for.

Starting today, we’re making it easier to find great family-friendly content on Google Play. Parents can now find family destinations across the Play store, with new features for browsing by age and interests. We’re also providing more useful information about apps and content on Google Play and improved tools so you can decide what’s right for your family.

Follow the family star
On the AppsGames and Movies & TV homepages, you can now tap the Family button to browse our new family-friendly experiences. On the Books homepage, tap the Children’s Books button. Since toddlers and tweens have different interests and abilities, these pages let you browse by age range to find content that’s the best fit for your family. Whether your child is still learning shapes and colors, or is getting into more scrapes than Judy Moody, you’ll find inspiring ideas for every age. What’s more -- top charts, recommendations, and even searches from family homepages are filtered to our family-friendly catalog.
Play with your favorite characters
For many of us, childhood memories include at least one favorite character: a plucky personality from a book, the superhero from a movie or a beloved stuffed animal. Characters are just as relevant today, and Lego, Barbie and other kids and family brands are some of the most popular searches on Google Play. To help you browse Google Play content around a favorite character, we’ve created special pages featuring dozens of top characters from across the globe, like PBS KIDS, Pororo and Peppa Pig. From the Play store app, take a tour through all of our popular characters to find apps, movies, books and more from your family’s favorites.
Empowering parents
When it comes to finding content on Google Play, our goal is to empower parents by giving them practical information and better tools for making decisions. Our new family star badges convey the specific age range that an app, movie or book was designed for. On our app detail pages, you’ll now find a new label telling you when family apps are ad-supported and new locally relevant content maturity ratings. Finally, Google Play has updated parental controls, so you can restrict downloads, purchases or streaming of mature content.
We’re rolling out the new family discovery experience over the next couple weeks, and many of the best-known brands in family entertainment are celebrating along with us. Check out our featured collection of new and exclusive content, including Legacy Games’ Crayola DJ, TabTale’s Cutie Patootie, Speakaboos’ Thomas’s Musical Day for Percy, The Jim Henson Company’s Doozers-Play Along Stories, and more -- just a tap or two away.

Posted by Eunice Kim, on behalf of the Google Play team

A new way for the whole family to play

[Cross-posted from the Android Official Blog]

Whether you’re trying to entertain a toddler on a crowded plane, encourage your child’s newfound love of reading or simply find a movie for the whole family to enjoy, finding the right content should be just a tap or two away. Parents want the best for their kids, but when it comes to digital entertainment, it can be difficult to know what to look for.

Starting today, we’re making it easier to find great family-friendly content on Google Play. Parents can now find family destinations across the Play store, with new features for browsing by age and interests. We’re also providing more useful information about apps and content on Google Play and improved tools so you can decide what’s right for your family.

Follow the family star
On the Apps and Games homepages, you can now tap the Family button to browse our new family-friendly experiences. Whether your child is still learning shapes and colors, or is getting into more scrapes than Judy Moody, you’ll find inspiring ideas for every age. What’s more -- top charts, recommendations, and even searches from family homepages are filtered to our family-friendly catalog.
Play with your favorite characters
For many of us, childhood memories include at least one favorite character: a plucky personality from a book, the superhero from a movie or a beloved stuffed animal. Characters are just as relevant today, and Lego, Barbie and other kids and family brands are some of the most popular searches on Google Play. To help you browse Google Play content around a favorite character, we’ve created special pages featuring dozens of top characters from across the globe, like PBS KIDS, Pororo and Peppa Pig. From the Play store app, take a tour through all of our popular characters to find apps and games from your family’s favorites.
Empowering parents
When it comes to finding content on Google Play, our goal is to empower parents by giving them practical information and better tools for making decisions. Our new family star badges convey the specific age range that an app, movie or book was designed for. On our app detail pages, you’ll now find a new label telling you when family apps are ad-supported and new locally relevant content maturity ratings. Finally, Google Play has updated parental controls, so you can restrict downloads, purchases or streaming of mature content.
We’re rolling out the new family discovery experience over the next couple weeks, and many of the best-known brands in family entertainment are celebrating along with us. Check out our featured collection of new and exclusive content, including Legacy Games’ Crayola DJ, TabTale’s Cutie Patootie, Speakaboos’ Thomas’s Musical Day for Percy, The Jim Henson Company’s Doozers-Play Along Stories, and more -- just a tap or two away.

Posted by Eunice Kim, on behalf of the Google Play team

You say you want a mobile revolution…

This morning, more than 6,000 developers descended on San Francisco’s Moscone Center to burn through 1,500 gallons of coffee and join millions of others via live stream for our 8th annual Google I/O—a time to fill people in on what we’ve been building recently, and how we’re tackling the future.

Android growth and momentum
In just a short number of years, mobile technology has completely changed the way we find information and entertainment, communicate with friends and family, and get things done. Having a supercomputer in our pocket is now second nature; today more searches on Google come from mobile than from desktop computers, and by some estimates there are more mobile devices than there are people on the planet. For evidence of the mobile revolution, look no further than the growth of Android. There are now more than one billion Android users worldwide—a long way from when we launched the first Android phone back in 2008. And there are 4,000 unique Android devices on the market, from more than 400 manufacturers and over 500 carriers.

The devices themselves have changed a lot, too. In today’s multi-screen world, you can now use Android on your phone, your tablet, your wrist, in your car and in your living room, and move seamlessly between each. Many of these new form factors have arrived just in the last year. You can now choose from seven different Android Wear watches, not to mention bands, styles, and more than 1,500 watch faces built by developers.

By the end of this year, 35 car models will offer Android Auto, helping you access Search, Maps, music and other information through your car’s controls. And the first sets running Android TV have now arrived.

With all of these new places and devices for people to use Android, developers have even more opportunities to build the apps that people use for education and engagement and entertainment. So today we talked about the new tools and features we’re giving them to build more powerful experiences on the Android platform.


M is for more performance and an improved user experience
Android M is the most powerful Android release yet, with hundreds of improvements made to the platform. Among the highlights, we’ve improved battery life and streamlined permissions for apps to make it easier for you to decide what information the apps on your phone can use. We previewed Android Pay, which lets you pay for things with your phone, without even opening an app. And we’re making it much easier to find information in apps, as well as making some important updates to Google Now (more on that below!).

Organizing the world’s information, better
Your mobile phone packs a lot of information, but it’s not always easy to find that nugget of information when you need it—as you know if you’ve ever tried to navigate your email, organize hundreds of photos across devices, or search for restaurant reviews when you’re chatting about dinner plans with friends. Luckily, finding and organizing information is something Google is good at (some might even call it our mission).

So as part of M release, we’re expanding Google Now to give people on-demand assistance in the moment they need it—like seeing if there’s an open table at a new restaurant or when and where “Pitch Perfect 2” is playing—no matter where you are on your phone. We’re also making it much easier to find new apps and in-app content—which is good news for both users and developers.

We’ve also put our years of research into machine learning to work in other ways, making Search more useful and your inbox more insightful. And now it’s also helping you make sense of all your photos. Today we launched a new Photos app that gives you a single place for all your photos and videos, and helps you sort through them more quickly, bring them to life in cool new ways, and share them however you choose.

A new platform for the Internet of Things
We’re surrounded by devices, but they often exist independently of each other. Our day-to-day lives will be much simpler when these technologies can talk to each other—if our recipe app, for example, could communicate with our smart oven to turn the temperature to exactly the right setting. ​Or outside the home—from transportation systems that notify commuters of schedule changes, to farms where harvesters and irrigation systems are controlled from phones. ​

But many roadblocks remain—the user experience is inconsistent and confusing, manufacturers often redo their work for every device, devices don’t interoperate, and developers often have no way to create great experiences across devices.

Enter Project Brillo, a new platform derived from Android that lets developers and manufacturers build connected devices. As part of Brillo, we’re introducing a communications protocol (Weave) developed in partnership with Nest, a set of developer APIs, a core set of schemas and a certification program to ensure device and app interoperability.

Although it will launch later this year, we previewed Brillo today because we’re committed to fostering a vibrant ecosystem in which we all work together to move the industry forward.

New mobile experiences
Mobile has evolved so much in the past few years, with connected screens for different experiences depending on your needs. But we are just at the start of what will prove to be a much more immersive mobile experience. At last year’s I/O we introduced Cardboard, which lets you turn your phone into a virtual reality experience. Now there are more than 500 Cardboard apps for film, games, tours and learning, and more than 1 million Cardboard viewers have been shipped. Today we announced iOS support for developers and debuted Google Expeditions, which lets students take virtual trips with Cardboard to places like the moon and underwater. We also shared a preview of Jump, which lets you capture the world in video that you can step inside of.

The next billion users
The first billion users of the Internet came online through desktops. The next billion are taking a different path to computing—coming online through mobile and smartphones—and present a unique set of opportunities and challenges. We’re working hard on ensure these people have a great experience across our products.

In addition to making devices more affordable with Chromebooks and Android One (now in seven countries), we’re making changes to ensure that our software works even where there aren’t great Internet connections. We’ve launched a streamlined version of our Search results page in 13 countries, and 73 million people now use data saver mode in Chrome to browse the web more efficiently. Finally, we previewed the new offline maps—that’s right, and it’s as simple as it sounds—maps that you can take offline, even with turn-by-turn directions.

Solving complex problems for a mobile world
From our earliest days in Search, our aim has always been to build products for everyone, applying unique technical insight to tackle big problems. That’s just as relevant in today’s mobile-centric world—from finding the information scattered across apps, to helping someone organize and share the photos of their kids; from taking people on a virtual trip to the Pyramids to helping the next billion people come online.

And by providing a platform on top of which any developer can innovate, we can reach people around the world and put the power of the Internet in their hands—no matter what device they use, where they live or who they are.

So here’s to the mobile revolution. We can’t wait to see what comes next.

You say you want a mobile revolution…

This morning, more than 6,000 developers descended on San Francisco’s Moscone Center to burn through 1,500 gallons of coffee and join millions of others via live stream for our 8th annual Google I/O—a time to fill people in on what we’ve been building recently, and how we’re tackling the future.

Android growth and momentum
In just a short number of years, mobile technology has completely changed the way we find information and entertainment, communicate with friends and family, and get things done. Having a supercomputer in our pocket is now second nature; today more searches on Google come from mobile than from desktop computers, and by some estimates there are more mobile devices than there are people on the planet. For evidence of the mobile revolution, look no further than the growth of Android. There are now more than one billion Android users worldwide—a long way from when we launched the first Android phone back in 2008. And there are 4,000 unique Android devices on the market, from more than 400 manufacturers and over 500 carriers.

The devices themselves have changed a lot, too. In today’s multi-screen world, you can now use Android on your phone, your tablet, your wrist, in your car and in your living room, and move seamlessly between each. Many of these new form factors have arrived just in the last year. You can now choose from seven different Android Wear watches, not to mention bands, styles, and more than 1,500 watch faces built by developers.

By the end of this year, 35 car models will offer Android Auto, helping you access Search, Maps, music and other information through your car’s controls. And the first sets running Android TV have now arrived.

With all of these new places and devices for people to use Android, developers have even more opportunities to build the apps that people use for education and engagement and entertainment. So today we talked about the new tools and features we’re giving them to build more powerful experiences on the Android platform.



M is for more performance and an improved user experience
Android M is the most powerful Android release yet, with hundreds of improvements made to the platform. Among the highlights, we’ve improved battery life and streamlined permissions for apps to make it easier for you to decide what information the apps on your phone can use. We previewed Android Pay, which lets you pay for things with your phone, without even opening an app. And we’re making it much easier to find information in apps, as well as making some important updates to Google Now (more on that below!).

Organizing the world’s information, better
Your mobile phone packs a lot of information, but it’s not always easy to find that nugget of information when you need it—as you know if you’ve ever tried to navigate your email, organize hundreds of photos across devices, or search for restaurant reviews when you’re chatting about dinner plans with friends. Luckily, finding and organizing information is something Google is good at (some might even call it our mission).

So as part of M release, we’re expanding Google Now to give people on-demand assistance in the moment they need it—like seeing if there’s an open table at a new restaurant or when and where “Pitch Perfect 2” is playing—no matter where you are on your phone. We’re also making it much easier to find new apps and in-app content—which is good news for both users and developers. 

We’ve also put our years of research into machine learning to work in other ways, making Search more useful and your inbox more insightful. And now it’s also helping you make sense of all your photos. Today we launched a new Photos app that gives you a single place for all your photos and videos, and helps you sort through them more quickly, bring them to life in cool new ways, and share them however you choose.

A new platform for the Internet of Things
We’re surrounded by devices, but they often exist independently of each other. Our day-to-day lives will be much simpler when these technologies can talk to each other—if our recipe app, for example, could communicate with our smart oven to turn the temperature to exactly the right setting. ​Or outside the home—from transportation systems that notify commuters of schedule changes, to farms where harvesters and irrigation systems are controlled from phones. ​

But many roadblocks remain—the user experience is inconsistent and confusing, manufacturers often redo their work for every device, devices don’t interoperate, and developers often have no way to create great experiences across devices.

Enter Project Brillo, a new platform derived from Android that lets developers and manufacturers build connected devices. As part of Brillo, we’re introducing a communications protocol (Weave) developed in partnership with Nest, a set of developer APIs, a core set of schemas and a certification program to ensure device and app interoperability.

Although it will launch later this year, we previewed Brillo today because we’re committed to fostering a vibrant ecosystem in which we all work together to move the industry forward.

New mobile experiences
Mobile has evolved so much in the past few years, with connected screens for different experiences depending on your needs. But we are just at the start of what will prove to be a much more immersive mobile experience. At last year’s I/O we introduced Cardboard, which lets you turn your phone into a virtual reality experience. Now there are more than 500 Cardboard apps for film, games, tours and learning, and more than 1 million Cardboard viewers have been shipped. Today we announced iOS support for developers and debuted Google Expeditions, which lets students take virtual trips with Cardboard to places like the moon and underwater. We also shared a preview of Jump, which lets you capture the world in video that you can step inside of.

The next billion users
The first billion users of the Internet came online through desktops. The next billion are taking a different path to computing—coming online through mobile and smartphones—and present a unique set of opportunities and challenges. We’re working hard on ensure these people have a great experience across our products.

In addition to making devices more affordable with Chromebooks and Android One (now in seven countries), we’re making changes to ensure that our software works even where there aren’t great Internet connections. We’ve launched a streamlined version of our Search results page in 13 countries, and 73 million people now use data saver mode in Chrome to browse the web more efficiently. Finally, we previewed the new offline maps—that’s right, and it’s as simple as it sounds—maps that you can take offline, even with turn-by-turn directions.

Solving complex problems for a mobile world
From our earliest days in Search, our aim has always been to build products for everyone, applying unique technical insight to tackle big problems. That’s just as relevant in today’s mobile-centric world—from finding the information scattered across apps, to helping someone organize and share the photos of their kids; from taking people on a virtual trip to the Pyramids to helping the next billion people come online.

And by providing a platform on top of which any developer can innovate, we can reach people around the world and put the power of the Internet in their hands—no matter what device they use, where they live or who they are.

So here’s to the mobile revolution. We can’t wait to see what comes next.