Posted:

Posted by Stewart Miles, Fun Propulsion Labs*

To celebrate the holiday season at Fun Propulsion Labs, we're trading our sushi mats and baking pans for candy canes and snowballs. Please join us for a special holiday-themed version of Pie Noon and Zooshi! Zooshi and Pie Noon are open source, cross-platform games built from a suite of libraries that eager C++ developers can use to build their own projects.

You can download and run Zooshi's Santa mode on Google Play and find the latest open source release on our GitHub page. The holiday version of Pie Noon is available on Google Play as Snowdown in Santa Tracker and on our GitHub page. Happy Holidays!

* Fun Propulsion Labs is a team within Google that's dedicated to advancing gaming on Android and other platforms.

Posted:

Posted by Leon Nicholls, Developer Programs Engineer

Remote Display on Google Cast allows your app to display both on your mobile and Cast device at the same time. Processing is a programming language that allows artists and hobbyists to create advanced graphics and interactive exhibitions. By putting these two things together we were able to quickly create stunning visual art and display it on the big screen just by bringing our phone to the party or gallery. This article describes how we added support for the Google Cast Remote Display APIs to Processing for Android and how you can too.

An example app from the popular Processing toxiclibs library on Cast. Download the code and run it on your own Chromecast!

A little background

Processing has its own IDE and has many contributed libraries that hide the technical details of various input, output and rendering technologies. Users of Processing with just basic programming skills can create complicated graphical scenes and visualizations.

To write a program in the Processing IDE you create a “sketch” which involves adding code to life-cycle callbacks that initialize and draw the scene. You can run the sketch as a Java program on your desktop. You can also enable support for Processing for Android and then run the same sketch as an app on your Android mobile device. It also supports touch events and sensor data to interact with the generated apps.

Instead of just viewing the graphics on the small screen of the Android device, we can do better by projecting the graphics on a TV screen. Google Cast Remote Display APIs makes it easy to bring graphically intensive apps to Google Cast receivers by using the GPUs, CPUs and sensors available on the mobile devices you already have.

How we did it

Adding support for Remote Display involved modifying the Processing for Android Mode source code. To compile the Android Mode you first need to compile the source code of the Processing IDE. We started with the source code of the current stable release version 2.2.1 of the Processing IDE and compiled it using its Ant build script (detailed instructions are included along with the code download). We then downloaded the Android SDK and source code for the Android Mode 0232. After some minor changes to its build config to support the latest Android SDK version, we used Ant to build the Android Mode zip file. The zip file was unzipped into the Processing IDE modes directory.

We then used the IDE to open one of the Processing example sketches and exported it as an Android project. In the generated project we replaced the processing-core.jar library with the source code for Android Mode. We also added a Gradle build config to the project and then imported the project into Android Studio.

The main Activity for a Processing app is a descendent of the Android Mode PApplet class. The PApplet class uses a GLSurfaceView for rendering 2D and 3D graphics. We needed to change the code to use that same GLSurfaceView for the Remote Display API.

It is a requirement in the Google Cast Design Checklist for the Cast button to be visible on all screens. We changed PApplet to be an ActionBarActivity so that we can show the Cast button in the action bar. The Cast button was added by using a MediaRouteActionProvider. To only list Google Cast devices that support Remote Display, we used a MediaRouteSelector with an App ID we obtained from the Google Cast SDK Developer Console for a Remote Display Receiver.

Next, we created a class called PresentationService that extends CastRemoteDisplayLocalService. The service allows the app to keep the remote display running even when it goes into the background. The service requires a CastPresentation instance for displaying its content. The CastPresentation instance uses the GLSurfaceView from the PApplet class for its content view. However, setting the CastPresentation content view requires some changes to PApplet so that the GLSurfaceView isn’t initialized in its onCreate, but waits until the service onRemoteDisplaySessionStarted callback is invoked.

When the user selects a Cast device in the Cast button menu and the MediaRouter onRouteSelected event is called, the service is started with CastRemoteDisplayLocalService.startService. When the user disconnects from a Cast device using the Cast button, MediaRouter onRouteUnselected event is called and the service is stopped by using CastRemoteDisplayLocalService.stopService.

For the mobile display, we display an image bitmap and forward the PApplet touch events to the existing surfaceTouchEvent method. When you run the Android app, you can use touch gestures on the display of the mobile device to control the interaction on the TV. Take a look at this video of some of the Processing apps running on a Chromecast.

Most of the new code is contained in the PresentationService and RemoteDisplayHelper classes. Your mobile device needs to have at least Android KitKat and Google Play services version 7.5.71.

You can too

Now you can try the Remote Display APIs in your Processing apps. Instead of changing the generated code every time you export your Android Mode project, we recommend that you use our project as a base and simply copy your generated Android code and libraries to our project. Then simply modify the project build file and update the manifest to start the app with your sketch’s main Activity.

To see a more detailed description on how to use the Remote Display APIs, read our developer documentation. We are eager to see what Processing artists can do with this code in their projects.

Posted:

Posted by Ranjith Jayaram, Product Manager

If you’re looking to drive usage and grow a mobile app, you’re probably testing out referrals, recommendations, and the user onboarding experience. These product flows are resource-intensive to design, build, and optimize. What if you could use a set of tools that help your users share your app, and get more of the right people to download and use your app? What if you could craft a more personalized onboarding experience in your new user’s journey?

Now in beta, App Invites let mobile app developers increase their reach, deep link new users to custom experiences, and tap into your users’ device and Google-wide contacts as a source to drive referrals. This is available for both iOS and Android app developers. We’re launching with UrbanSitter, Yummly, The CW, Coinbase and Picsart apps.

Here’s what some of our early partners had to say:

  • For Andrea Barrett, co-founder and VP of Product at UrbanSitter, “App Invites gives our members the ability to easily share favorite sitters with their friends and Google contacts. As a service targeting busy parents, our user growth thrives on social recommendations and word-of-mouth referrals, so Google’s app invites are a natural fit for us.”
  • Sharing is an important part of TV network The CW’s app growth strategy. “Tools that help fans of our shows recommend The CW app to their contacts and friends are important. App Invites let’s specific users share their favorite shows with selected friends; it's the next evolution of ‘word of mouth’. We’re integrating App Invites into our episode sharing capabilities, so that fans can speak to each other about the The CW app.” - Zach Mannon, Director of Digital Media at Warner Brothers Television
  • For PicsArt, their fast growth to 250M installs has been driven by word-of-mouth. “Google’s new App Invites will accelerate our organic growth even further, giving people the opportunity to proactively invite their friends to join our mission of beautifying the world!" - Arusiak Kanetsyan, Director of Content and Communication
  • Yummly integrated app invites to expand their user base and generate awareness of their app, by allowing people to suggest the app to those who love to cook or are interested in food. “We see this expanding beyond just inviting new users to join our app. In the future, we hope to use this to share different meal ideas and have the opportunity to share your shopping list with family members or even inviting friends over for dinner. With the power of Google and personalized app invites, making a dinner everyone agrees on will never been easier." -- Brian Witlin, Chief Operating Officer

App Invites is available on both Android and iOS. Here’s what’s in the beta toolkit:

  1. Use app invites for expanded reach: Tap into SMS and email invites via your user’s phone and Google contacts.
  2. Make it easy for your users to send invites. We’ll recommend their closest contacts to share your app with, and suggest a preferred method of delivery.
  3. Send actionable invite cards: Include an install button right in an email invite.
  4. Faster Android install flows: Your new Android users can click App Invite and download your app straight from the Play Store, bypassing the browser windows that usually open in between.
  5. Create personalized onboarding flows: New users can get deep linked into a specific onboarding experience - for example, you can offer custom discount codes or content.
  6. Measure app invites using Google Analytics custom reports.

With App Invites, our goal is to take the hard work out of building user referral and onboarding flows and build a toolkit that works across platforms, so that you can focus on your core app experience. Visit https://developers.google.com/app-invites/?utm_campaign=app-invites-529&utm_source=gdbc&utm_medium=blog to get started To learn about opportunities to re-engage app users using goo.gl deep links, check out this post.

Posted:

Posted by Jason Titus, Senior Director of Engineering

This morning, we kicked off our 8th annual Google I/O conference, joined by 5,600 developers at Moscone Center, 530 I/O Extended communities around the world, and millions via the I/O Live stream. This year’s event is focused on delivering incredible experiences on mobile and helping developers build successful businesses through these key themes: Develop, Engage, and Earn.

During the keynote, we had a number of announcements that covered the evolution of the mobile platform, tools for Android, iOS, and Web developers, and the push towards more immersive mobile experiences with VR. Here’s a closer look at the news:

Develop

  • Android M Developer Preview — Get an early look at the next version of Android.
  • Google Play services 7.5 — Check out new features like Smart Lock for Passwords, new APIs for Google Cloud Messaging and
  • Google Cast, and the Google Maps API on Android Wear devices.
  • Android Studio 1.3 — Preview Android Studio v1.3, now with improved Gradle build speed, a new memory profiler, and full editing and debugging support for C/C++.
  • Polymer 1.0 — As the first production-ready release for the web components library, we’re also adding new product lines of elements. Features range from toolbars and menus to offline caching.
  • iOS & CocoaPods — Access your favorite libraries via CocoaPods, the official distribution channel for Google SDKs on iOS.
  • Cloud Test Lab — Building on the technology from our acquisition of Appurify, cloud Test Lab automates the testing of your mobile apps.
  • Firebase — Firebase makes it easy to build apps quickly, without spinning up servers or writing server-side code.

Engage

  • App Indexing — Index your app’s content into Google Search, just like you would with a website. Available for Android, and now piloting on iOS.
  • Google Cloud Messaging — As one of the most popular ways to send messages from the cloud to user's devices on Android and Chrome, GCM is now also available on iOS.
  • Engagement on the Web — Access previously unavailable native functionality on the web with push notifications from your mobile website and add to homescreen.
  • Empowering successful global businesses on Google Play — Get new and powerful tools to help you further grow your business, improve decision making based on smarter insights, and engage and retain a valuable user base.
  • Universal App Campaigns coming soon — Set up app install ads with just a few inputs like your budget and the cost you’re willing to pay per user--we take care of the rest.
  • Measure App Installs Ads with Google Analytics — Measure app install campaigns based on engagement and lifetime value. On iOS, Google Analytics is now integrated with 20+ ad networks making it easy to understand how to spend your acquisition budget.

Earn

  • AdMob — Monetize your apps intelligently on a single platform, so you can gain insights about your users, drive more in-app purchases and maximize your ad revenue.

What’s Next

  • Android Nanodegree — Enroll in the industry's first Android Nanodegree, developed in collaboration with Udacity. The curriculum was built from the ground up s to meet the high standard we have for Android development. The Nanodegree covers everything from fundamentals to advanced development skills, as well as Google Play services and Material Design.
  • Cardboard SDK — The Cardboard SDK for Unity now supports both Android and iOS.

Posted:

Posted by Fabian Schlup, Software Engineer

Starting now, goo.gl short links function as a single link you can use to all your content — whether that content is in your Android app, iOS app, or website. Once you’ve taken the necessary steps to set up App Indexing for Android and iOS, goo.gl URLs will send users straight to the right page in your app if they have it installed, and everyone else to your website. This will provide additional opportunities for your app users to re-engage with your app.

This feature works for both new short URLs and retroactively, so any existing goo.gl short links to your content will now also direct users to your app.

Zillow shares a short URL on Twitter that automatically links to their native app.

Share links that ‘do the right thing’

You can also make full use of this feature by integrating the URL Shortener API into your app’s share flow, so users can share links that automatically redirect to your native app cross-platform. This will also allow others to embed links in their websites and apps which deep link directly to your app.

Take Google Maps as an example. With the new cross-platform goo.gl links, the Maps share button generates one link that provides the best possible sharing experience for everyone. When opened, the link auto-detects the user’s platform and if they have Maps installed. If the user has the app installed, the short link opens the content directly in the Android or iOS Maps app. If the user doesn’t have the app installed or is on desktop, the short link opens the page on the Maps website.

Try it out for yourself! Don’t forget to use a phone with the Google Maps app installed: http://goo.gl/maps/xlWFj.

How to set it up

To set up app deep linking on goo.gl:

  1. Complete the necessary steps to participate in App Indexing for Android and iOS at g.co/AppIndexing. Note that goo.gl deep links are open to all iOS developers, unlike deep links from Search currently. After this step, existing goo.gl short links will start deep linking to your app.
  2. Optionally integrate the URL Shortener API with your app’s share flow, your email campaigns, etc. to programmatically generate links that will deep link directly back to your app.

We hope you enjoy this new functionality and happy cross-platform sharing!

Posted:

Posted by Ankur Kotwal, Software Engineer

The holiday spirit is about giving and though we’re early into April, we’re still in that spirit. Today, we’re announcing that Google's Santa Tracker is now open source on GitHub at google/santa-tracker-web and google/santa-tracker-android. Now you can see how we’ve used many of our developer products to build a fun and engaging experience that runs across the web and Android.

Santa Tracker isn’t just about watching Santa’s progress as he delivers presents on December 24. Visitors can also have fun with the winter-inspired games and an interactive North Pole village while Santa prepares for his big journey throughout the holidays.

Below is a summary of what we’ve released as open source.

Android app

  • The Santa Tracker Android app is a single APK, supporting all devices running Ice Cream Sandwich (4.0) and up. The source code for the app can be found here.
  • Santa’s village is a canvas-based graphical launcher for videos, games and the tracker. In order to span 10,000 pixels in width, the village uses the Android resource hierarchy in a unique way to scale graphics without needing assets for multiple density buckets, thereby reducing the APK size.
  • Games on Santa Tracker Android are built using a combination of technologies such as JBox2D (gumball game), Android view hierarchy (memory match game) and OpenGL with a purpose-built rendering engine (jetpack game).
  • To help with user engagement, the app uses the App Indexing API to enable autocomplete support for Santa Tracker games from Google Search. This is done using deep linking.

Android Wear

  • The custom watch faces on Android Wear provide a personalized touch. Having Santa or one of his friendly elves tell the time brings a smile to all. Building custom watch faces is a lot of fun but providing a performant, battery friendly watch face requires certain considerations. The watch face source code can be found here.
  • Santa Tracker uses notifications to let users know when Santa has started his journey. The notifications are further enhanced to provide a great experience on wearables using custom backgrounds and actions that deep link into the app.

On the web

  • Santa Tracker on the web was built using Polymer, a powerful new library from the Chrome team based on Web Components. Santa Tracker’s use of Polymer demonstrates how easy it is to package code into reusable components. Every scene in Santa's village (games, videos, and interactive pages) is a custom element, only loaded when needed, minimizing the startup cost of Santa Tracker.
  • Santa Tracker’s interactive and fun experience is built using the Web Animations API, a standardized JavaScript API for unifying animated content - this is a huge leap up from using CSS animations. Web Animations can be written imperatively, are supported in all modern browsers via polyfills and Polymer uses them internally to create its amazing material design effects. Examples of these animations can be found using this GitHub search.
  • Santa believes in mobile first; this year's experience was built to be optimized for the mobile web, including a fully responsive design, touch gesture support using Polymer, and new features like meta-theme color and the application manifest for add to homescreen.
  • To provide exceptional localization support, a new i18n-msg component was built, a first for Web Components. Modeled after the Chrome extension i18n system, it enables live page-refresh for development but has a build step for optimization.

Now that the source code is also available, developers can see many of the parts that come together to make Santa Tracker. We hope that developers are inspired to make their own magical experiences.

Posted:

Posted by Wouter van Oortmerssen, Fun Propulsion Labs at Google*

Originally posted to the Google Open Source blog

After months in development, the FlatBuffers 1.1 update is here. Originally released in June 2014, it’s a highly efficient open source cross-platform serialization library that allows you to read data without parsing/unpacking or allocating additional memory. It supports schema evolution (forwards/backwards compatibility) and optional JSON conversion. We primarily created it for games written in C++ where performance is critical, but it’s also useful more broadly. This update brings:

  • an extensive overhaul to the Java API
  • out-of-the-box support for C# and Go
  • an optional verifier to make FlatBuffers practical in untrusted scenarios
  • .proto parsing for easier migration from Protocol Buffers
  • optional manual assignment of field IDs
  • dictionary functionality through binary search on a key field
  • bug fixes and other improvements thanks to 200+ commits from 28 contributors -- thank you!

Download the latest release from our github page and join our discussion list for more details.

*Fun Propulsion Labs is a team within Google that's dedicated to advancing gaming on Android and other platforms.

Posted:
By Nicholas Jitkoff, Designer

When we started building for the first mobile devices, mobile meant less: less screen space, slower connection, fewer features. A mobile experience was often a lesser experience. But mobile devices have evolved—they have become more powerful, faster, and more intuitive—so must our approach to design.

And as Google, including the Android platform, expands into new form factors, we’re introducing one consistent design that spans devices across mobile, desktop, and beyond. Today at Google I/O, we introduced material design, which uses tactile surfaces, bold graphic design, and fluid motion to create beautiful, intuitive experiences.

In material design, surface and shadow establish a physical structure to explain what can be touched and what can move. Content is front and center, using principles of modern print design. Motion is meaningful, clarifying relationships and teaching with delightful details.

We needed something that felt at home on the smallest watch, the largest TV, and every screen in between. We used it for Android Wear, our project to extend Android wearables, as well as Android TV, and Android Auto. So as you create applications and services for this expansive new range of devices, we’ve created one unified set of style guidelines that works across any platform. We’re releasing the first version of these guidelines as part of our preview today. You can find them on google.com/design.

Material design, in L

Bringing material design to Android is a big part of the L-Release of Android, the version we previewed today. We’ve added the new Material theme, which you can apply to your apps for a new style: it lets you easily infuse your own color palette into your app, and offers new system widgets, screen transitions and animated touch feedback. We’ve also added the ability to specify a view’s elevation, allowing you to raise UI elements and cast dynamic, real-time shadows in your apps.

Bringing material design to the web, with Polymer

Last year at I/O we announced Polymer, an ambitious UI toolkit for the web. As a developer, you’ll now have access to all the capabilities of material design via Polymer, bringing tangibility, bold graphics, and smooth animations to your applications on the web.

If you’d like to learn more about material design, please take a look at our guidelines. Join us as we continue to design and iterate at +Google Design.

Posted:
By Austin Robison, Android Wear team

Cross-posted from the Android Developers blog

Android Wear extends the Android platform to wearables. These small, powerful devices give users useful information just when they need it. Watches powered by Android Wear respond to spoken questions and commands to provide info and get stuff done. These new devices can help users reach their fitness goals and be their key to a multiscreen world.
We designed Android Wear to bring a common user experience and a consistent developer platform to this new generation of devices. We can’t wait to see what you will build.

Getting started

Your app’s notifications will already appear on Android wearables and starting today, you can sign up for the Android Wear Developer Preview. You can use the emulator provided to preview how your notifications will appear on both square and round Android wearables. The Developer Preview also includes new Android Wear APIs which will let you customize and extend your notifications to accept voice replies, feature additional pages, and stack with similar notifications. Head on over to developer.android.com/wear to sign up and learn more.
For a brief introduction to the developer features of Android Wear, check out these DevBytes videos. They include demos and a discussion about the code snippets driving them.

What’s next?

We’re just getting started with the Android Wear Developer Preview. In the coming months we’ll be launching new APIs and features for Android Wear devices to create even more unique experiences for the wrist.
Join the Android Wear Developers community on Google+ to discuss the Preview and ask questions.
We’re excited to see what you build!
Posted by Louis Gray, Googler

Posted:
Author PhotoBy John Affaki, Engineering Manager

Updated Feb. 14 to say that the Google Cast SDK for Android is now available.

Back in July we announced the developer preview of the Google Cast Software Development Kit (SDK), the underlying Chromecast technology that enables multi-screen experiences across mobile devices (phones, tablet, laptops) and large-screen displays. Starting today, the Google Cast SDK is available for developing and publishing Google Cast-ready apps.

The Google Cast SDK is simple to integrate because there’s no need to write a new app. Just incorporate the SDK into your existing mobile and web apps to bring your content to the TV. You are in control of how and when you develop and publish your cast-ready apps through the Google Cast developer console. The SDK is available on Android and iOS as well as on Chrome through the Google Cast browser extension.



Receiver app support
You have many options for displaying content on Chromecast. For simple media applications, you can use the default media player that can play back HTML5 media content. You can also customize it with your own branding and style using CSS.

For non-media applications, or for more flexibility and design options, you can build your own custom receiver application using standard web technologies. With a custom receiver you can build virtually any application while including support for many streaming protocols, including MPEG-DASH, HLS, and Microsoft Smooth Streaming, all of which are available in the Media Player Library.

Sample apps
To make it easier for you to provide an optimized user experience on the TV screen, we have created sample apps for Android, iOS and Chrome. For Android, you’ll find a Cast Companion library to make your integration of Google Cast even easier.

Availability
All Chromecast devices have already been updated to the latest software with support for the Google Cast SDK. The Google Cast extension for Chrome supporting the latest SDK will start rolling out today. The Google Cast SDK for Android is now available on Android devices worldwide as part of the Google Play services 4.2 update. The Google Cast SDK for iOS is available starting today. You can find the details for each platform in our documentation.

Head over to the Google Cast Developers site to get started with the Google Cast SDK. We look forward to your feedback and seeing what you develop with the SDK.

Happy casting!


John Affaki manages the client software and services teams for Google Cast. He never grew out of childhood and spends his free time playing video games and reading comic books, but is glad to have some real kids now.

Posted by Scott Knaster, Editor

Posted:
Author PhotoBy Magnus Hyttsten, Developer Advocate, Google Drive

With today's developer preview of the Google Drive Android API in Google Play Services 4.1, you can add the convenience of Google Drive cloud storage to your apps without breaking a sweat.

While Drive integration on Android was possible in the past, the new API creates a faster, seamless experience that enables your apps to integrate with the Drive backend within minutes.

The new API offers a number of benefits:

1. Transparent use and syncing of local storage

The Google Drive Android API temporarily uses a local data store in case the device is not connected to a network. So, no need to worry about failed API calls in your app because the user is offline or experiencing a network connectivity problem. Data stored locally in this fashion will automatically and transparently be stored in the Google Drive cloud by Android’s sync scheduler when connectivity is available to minimize impact on battery life, bandwidth, and other resources.


2. Designed for Android and available everywhere

The API was developed for Android and conforms to the latest Android design paradigms, such as using the new uniform client API GoogleAPIClient. And being part of the latest release of Google Play Services provides additional benefits:
  • There’s minimal impact on the weight of your apps. As the client library is a stub to Google Play Services, incorporating the API has minimal impact on the size of your .apk binaries, resulting in faster downloads, fewer updates, and smaller execution footprint.
  • User files are automatically synced between different devices (provided the app has the same namespace and is signed with the same key).
  • Any device running the Gingerbread or later releases of Android and Google Play Services will automatically have support for the Google Drive Android API.

3. User interface components

File picker and creator user interface components are provided with this initial release of the Google Drive Android API, enabling users to select files and folders in Google Drive.


For example, the file picker is implemented as an Intent and allows you develop a native Android user experience with just a couple lines of code. This following code snippet launches the picker and allows the user to select a text file:
// Launch user interface and allow user to select file
    IntentSender i = Drive.DriveApi
        .newOpenFileActivityBuilder()
        .setMimeType(new String[] { “text/plain” })
        .build(mGoogleApiClient);
    startIntentSenderForResult(i, REQ_CODE_OPEN, null, 0, 0, 0);

The result is provided in the onActivityResult callback as usual.

4. Direct access to Drive functionality

You may be wondering how the Google Drive Android API relates to the Storage Access Framework released as part of Android 4.4 KitKat.

The Storage Access Framework is a generic client API that works with multiple storage providers, including cloud-based and local file systems. While apps can use files stored on Google Drive using this generic framework, the Google Drive API offers specialized functionality for interacting with files stored on Google Drive — including access to metadata and sharing features.

Additionally, as part of Google Play services the Google Drive APIs are supported on devices running Android 2.3 Gingerbread and above.

How to get started

As you incorporate the Google Drive Android API into your apps, we hope it makes your life a little bit easier, and enables you to create fun, powerful apps that take advantage of all that Android and Google Drive can do together.

For more information visit our documentation or explore our API demo and other sample applications on the official Google Drive GitHub repository.

Also check out the official launch video:


Let’s keep the discussions going on +GoogleDrive, and Stack Overflow (google-drive-sdk).


Magnus Hyttsten is a Developer Advocate on the Google Drive team. Beyond work, he enjoys trying out new technologies, thinking about product strategies, and exploring California.

Posted by Scott Knaster, Editor

Posted:

Cross-posted from the Android Developers Blog

Today we're launching a new release of Google Play services. Version 4.0 includes the Google Mobile Ads SDK, and offers improvements to geofencing, Google+, and Google Wallet Instant Buy APIs.

With over 97% of devices now running Android 2.3 (Gingerbread) or newer platform versions, we’re dropping support for Froyo from this release of the Google Play services SDK in order to make it possible to offer more powerful APIs in the future. That means you will not be able to utilize these new APIs on devices running Android 2.2 (Froyo).

We’re still in the process of rolling out to Android devices across the world, but you can already download the latest Google Play services SDK and start developing against the new APIs using the new Android 4.4 (KitKat) emulator.

Google Mobile Ads

If you’re using AdMob to monetize your apps, the new Google Mobile Ads SDK in Google Play services helps provide seamless improvements to your users. For example, bug fixes get pushed automatically to users without you having to do anything. Check out the post on the Google Ads Developer Blog for more details.

Maps and Location Based Services

The Maps and Geofencing APIs that launched in Google Play services 3.1 have been updated to improve overall battery efficiency and responsiveness.

You can save power by requesting larger latency values for notifications alerting your app to users entering or exiting geofences, or request that entry alerts are sent only after a user stays within a geofence for a specified period of time. Setting generous dwell times helps to eliminate unwanted notifications when a user passes near a geofence or their location is seen to move across a boundary.

The Maps API enhances map customization features, letting you specify marker opacity, fade-in effects, and visibility of 3D buildings. It’s also now possible to change ground overlay images.

Google+ and Google Wallet Instant Buy

Apps that are enabled with Google+ Sign-In will be updated with a simplified sign-in consent dialog. Google Wallet Instant Buy APIs are now available to everyone to try out within a sandbox, with a simplified API that streamlines the buy-flow and reduces integration time.

Google Wallet Instant Buy also includes new Wallet Objects, which means you can award loyalty points to a user's saved rewards program ID for each applicable Google Wallet Instant Buy purchase.

New user control over advertising identifier

To give users better controls and to provide you with a simple, standard system to continue to monetize your apps, this update contains a new, anonymous identifier for advertising purposes (to be used in place of Android ID). Google Settings now includes user controls that enable users to reset this identifier, or opt out of interest-based ads for Google Play apps.

More About Google Play Services

To learn more about Google Play services and the APIs available to you through it, visit the Google Services area of the Android Developers site.



Posted by Scott Knaster, Editor

Posted:
Author Photo
By Louis Gray, Program Manager, Google Developers Live

One year ago, we took the magic of Google I/O and brought it home with Google Developers Live (+GDL)  - engaging with our developer community all year round, live, from our offices around the world. Nearly 1,000 videos and several million views later, we’ve seen you connect with Googlers and industry experts every day, gaining knowledge, sharing insights, and getting feedback on how to create incredible apps and leverage Google’s tools.

Thanks to the combination of Google+ Hangouts and YouTube Live, you can now see our engineers face to face and gain up to the minute insights on +Android+Google Chrome+Google Cloud Platform, and many more.

But Google Developers Live is not just all Google products, all the time. It’s an interactive platform for innovative applications, design wizards and entrepreneurs. We’ve hosted initiatives like Women Techmakers, Google Top Geek from Mexico City, Android Design In Action and Root Access, and we hear directly from the minds behind applications many of us use every day.



It was on GDL where we saw Google Fellow +Sebastian Thrun introduce a new HTML5 course on Udacity. GDL debuted the Mirror API for +Project Glass. And it was on GDL where we first demonstrated YouTube API v3, went behind the scenes with Santa Tracker, and answered questions on the Blink rendering engine.

And when we returned to I/O last month, it was Google Developers Live with wall-to-wall broadcasts, featuring exceptional guests like Megan Smith of Google[x], Bradley Horowitz of Google+ and Hiroshi Lockheimer and Hugo Barra of Android.

While we love the live interaction, Google Developers Live is more than just live. Our archives make it easy for you to watch on your own schedule - in any order, on any product.

Although GDL is only a year old, we’re now broadcasting from Mountain View, New York, Sydney, Tokyo, Milan, Moscow, Buenos Aires, and many places around the world, to bring you the latest Google tools for developers in your time zone, in your language. And we’ve got a lot more planned. So make sure you don’t miss a show, by subscribing to Google Developers on YouTube and staying tuned to https://developers.google.com/live/.


+Louis Gray is a Program Manager on Google's Developer Relations Team, running Google Developers Live. He believes life is but a (live) stream.

Posted by +Scott Knaster, Editor

Posted:
Author Photo
By Tim Bray, Google Identity Team

During the Android portion of the Google I/O keynote, we showed Cross-Platform Single Sign-On; the effect was that for Wallet and Google+ users, signing in to a Web browser resulted in automatic download of, and sign-in to, an Android app.

To support this, we have introduced general-purpose API tools which allow developers to achieve cross-client authentication and authorization, in particular between Android and Web apps.

Not having to sign in repeatedly feels so natural for users that they don’t even notice it. But as more and more apps deploy this sort of magic, you don’t want to be the hold-out that’s pestering users for passwords on Web sites or, worse, on tiny mobile-device keyboards.

On the Android side, client libraries like PlusClient, GamesClient, and WalletClient have “connect” methods that take care of this as automatically as possible; they check whether any of the accounts on the phone have already been authorized for access to the service in question, conduct sign-in if necessary but avoid it if possible, and when they return to your code, everything’s all set up.

If you’re writing server-side code and using libraries like Google+ Sign-In, once again, all the right things happen automatically; when you start accessing the service, the software imposes the minimum necessary pain on the user, ideally zero, and lets you get to work.

Of course, some people want less automation, and finer control over how things work. If you want to access our services at the HTTP level rather than via a library, or to deal with multiple accounts on an Android device in a customized way, you can do these things and in most cases still deliver the no-sign-in magic.

Of course, this involves working with HTTP message flows, validating tokens, and securing shared secrets. This may sound intimidating but will be straightforward for one well-versed in HTTP-level Web programming. If you’re one of those, check out the low-level protocols and APIs that support this, in “Cross-Client Identity”.

The time is now to start moving your apps towards a sign-in-free future.


Tim says: By day, I help in the struggle against passwords on the Internet.
The rest of my life is fully documented on my blog.


Posted by Scott Knaster, Editor

Posted:
Author PhotoBy Greg Hartrell, Lead Product Manager

We love to talk about games at Google. Especially the old ones, like Pac-man, Pitfall and Frogger. Since those classics, games have changed a lot. They’ve moved from that clunky box in your living room to the screen that you carry with you in your pocket wherever you go. They’re mobile, they’re social, and they’re an important part of Google Play.

Today, we’re launching Google Play game services, a core part of building a gaming platform for the next generation of games. These services help you make your games more social, with achievements, leaderboards, and multiplayer, as well as more powerful, storing game saves and settings in the cloud. They are available on Android, and many on iOS or any other connected device. By building on Google’s strengths in mobile and cloud services, you can focus on what you’re good at as game developers: creating great gaming experiences for your users.

With game services, you can incorporate:
  • Achievements that increase engagement and promote different styles of play.
  • Social and public leaderboards that seamlessly use Google+ circles to track high scores across friends and across the world.
  • Cloud saves that provide a simple and streamlined storage API to store game saves and settings. Now players never have to replay Level 1 again.
  • Real-time multiplayer for easy addition of cooperative or competitive game play on Android devices. Using Google+ Circles, a game can have up to 4 simultaneous friends or auto-matched players in a game session together with support for additional players coming soon.



Several great Android games are already using these new game services, including World of Goo, Super Stickman Golf 2, Beach Buggy Blitz, Kingdom Rush, Eternity Warriors 2, and Osmos.

And many more titles launch today as well:



Google Play game services are available today through an SDK for Android, and a native iOS SDK for iPhone and iPad games. Web and other platform developers will also find corresponding REST APIs, with libraries for JavaScript, Java, Python, Go, Dart, PHP, and more.

We’re excited to see what games will do with these new services and experiences, and this is only the beginning. Wait until you get to the boss battle... er.. Check out our developer site to get started: https://developers.google.com/games/.


Greg Hartrell is Lead Product Manager on Google Play game services, devoted to helping developers make incredible games through Google Play. In his spare time, he enjoys jumping from platform to platform, boss battles and matching objects in threes.

Posted by Scott Knaster, Editor

Posted:
By Seth Sternberg, Director of Product Management, Google+

Cross-posted from the Google+ Developers Blog

Today we’re adding a new feature to the Google+ platform: application sign-in. Whether you’re building an app for Android, iOS or the web, users can now sign in to your app with Google, and bring along their Google+ info for an upgraded experience. It’s simple, it’s secure, and it prohibits social spam. And we’re just getting started.



In this initial release, we've focused on four key principles to make things awesome for users:

1. Simplicity and security come first 
If you sign in to Gmail, YouTube or any other Google service, you can now use your existing credentials to sign in to apps outside of Google. Just review the Google+ permissions screen (outlining the data you're sharing with the app, and the people who can see your activity), and you're all set. Google+ Sign-In also comes with the protections and safeguards you’ve come to expect from your Google account (like 2-step verification), so you can always sign in with confidence.


Managing your signed-in apps is easy too: visit plus.google.com/apps at any time, or open the new Google Settings app on Android.

2. Desktop and mobile are better together 
Many developers offer web and mobile versions of their app, yet setting things up across a browser, phone and tablet is still a major hassle. Starting today, when you sign in to a website with Google, you can install its mobile app on your Android device with a single click.


3. Sharing is selective; spraying is just spam 
Sometimes you want to share something with the world (like a high score), but other times you want to keep things to yourself (like fitness goals). With Google+ Sign-In and circles you decide who to share with, if at all. In addition: Google+ doesn’t let apps spray “frictionless” updates all over the stream, so app activity will only appear when it’s relevant (like when you’re actually looking for it).


4. Sharing is for doing, not just viewing 
Pictures and videos are great for viewing, but sometimes you actually want to do stuff online. That's why, when you share from an app that uses Google+ Sign-In, your friends will see a new kind of "interactive" post in their Google+ stream. Clicking will take them inside the app, where they can buy, listen to, or review (for instance) exactly what you shared.




If you’re building an app for Android, iOS or the web, and you’d like to include Google+ Sign-In, simply dive into our developer docs and start checking stats once your integration is live. Android apps will require the latest version of Google Play Services, which is rolling out to all devices in the next day or so.

To see what other developers are doing with Google+ Sign-In, just visit any of the following sites, and look for the new "Sign in with Google" button (also rolling out gradually):



Written by Seth Sternberg, Director of Product Management, Google+

Posted by Scott Knaster, Editor

Posted:
Author Photo
By Scott Knaster, Google Developers Blog Editor

This post is abridged and cross-posted from the YouTube API Blog.


Adding a high-quality video experience to your Android application just got a whole lot easier. Starting today, you can embed and play YouTube videos in your app using the new YouTube Android Player API.

The API, which was pre-announced at Google I/O 2012, offers these benefits:
We are launching the API as experimental, although we do not expect major interface changes going forward.

The only limit now is your imagination (and ToS)

These instructions explain how to include the API client library in your Android application. The library is supported on Android devices running version 4.2.16 or newer of the Android YouTube app. By including the library in your project, you can create rich video playback experiences through the ability to control and customize the video player. Flipboard, shown below, is a good example. See the full post for more cool app examples.


Flipboard
Flipboard

Learn more

If you would like to learn more about the YouTube Android Player API, read the full post on The YouTube API Blog. The post features several companies already using the API and contains useful links to source code examples and documentation. Alternatively, get started by watching some of the videos from our YouTube Android Player API playlist.




Scott Knaster is the Editor of Google Developers Blog. His programming books have been translated into several languages, including Japanese and Pascal.

Posted:
Author Photo
By Soonson Kwon, Developer Relations Program Manager

For developers and engineers, the best way to learn something is to get your hands dirty and try making something. That is why Google hosts many hackathons around the world. Last November 17 and 18, we had a bigger experiment at Gangnam (yes, this is the very Gangnam in Gangnam Style!) in Seoul, South Korea which expanded a 1-2 day hackathon into a much longer one which we called Google HackFair.



The idea was to give developers enough time (2 months) to develop something bigger and provide a nice chance to showcase their projects. 153 developers submitted 92 projects, and 40 projects were chosen from among them and displayed. Developers used many different technologies, including Android, Chrome, App Engine, and HTML5, and they completed creative and interesting projects: a remote controlled car guided by Android, a serial terminal for Chrome, a braille printer using Go, and many more!


Besides the exhibition, we also prepared a mini-conference and GDG (Google Developers Group) booth where Googlers and community developers gave 27 sessions in total.


More than 1000 people attended and enjoyed the Google HackFair. Although the event is finished, developers continue updating and polishing their projects. It was a great time indeed.

If you are interested in details for the projects including full demos or source code, please check here.


Soonson Kwon is Developer Relations Program Manager and Country Lead for South Korea. His mission is to help Korean developers make better use of Google’s developer products. He is also passionate about Open Source.

Posted by Scott Knaster, Editor

Posted:
Author Photo By Chukwuemeka Afigbo, Program Manager, Sub-Saharan Africa

Cross-posted from the Google Africa Blog

Creating applications and services that use Google platforms to make the internet more relevant to Africans is a big part of Google’s vision in Africa. This is why we are always excited whenever we come across individuals or companies whose efforts are in line with this vision. Here are a few of the interesting applications we have seen in recent months.

Battabox, co founded by Christian Purefoy and Yemisi Ilo, is an online social television platform developed in Nigeria that aims to provide everything Nigerian from music, film, street-life to news, comedy and cooking using the YouTube platform. Crowdsourcing videos is an important part of the Battabox strategy and they were able to achieve this using YouTube Direct running on Google App Engine integrated into their website. They also provided an Android App that enables users to upload videos directly from their Android phones.




Battabox website screenshot

There are many other examples from further afield. In South Africa we met Nomanini who have a Google App Engine backend for Lula, their airtime vending device, which promises to change the way airtime is distributed in the region. Envaya SMS is an amazing application that turns your Android phone into an SMS gateway and has been used by many NGOs in East Africa. SAF SMS is a school management solution built with Google Web Toolkit that has been adopted in more than 100 schools in Nigeria. We also met Serengeti Advisers, a consultancy firm in Tanzania that uses Google Chart Tools to create interactive reports on their website.



Nomanini’s Lula terminal communicates with a backend powered by Google App Engine

As part of our drive to meet and interact with app developers in Africa, our Android Developer Relations team also recently hosted the developers of AfriNolly and the Nigerian Constitution Android app on their weekly Android DevRel office hours hangout on Google+ for Europe, Middle East and Africa. At the hangout, these African developers shared information about their apps with other Android developers.

You can follow the exploits of these and more developers in Sub Saharan Africa as they continue to make things happen with Google APIs and platforms by keeping an eye on our case studies page.

Do you feel your app should be featured here? Let us know!


Chukwuemeka Afigbo is a Program Manager in the Sub-Saharan Africa Outreach Team. He is an avid football (soccer) fan.

Posted by Scott Knaster, Editor

Posted:
Author Photo
By Scott Knaster, Google Code Blog Editor

This is the last Fridaygram of 2011, and like most everybody else, we’re in a reflective mood. It’s also the 208th post on Google Code Blog this year, which means we’ve averaged more than one post every two days, so that’s plenty of stuff for you to read. What did we write about?

At Google, we love to launch. Many of our posts were about new APIs and client libraries. We also posted a bunch of times about HTML5 and Chrome and about making the web faster. And we posted about Android, Google+, and Google Apps developer news.

Many of our 2011 posts were about the steady progress of App Engine, Cloud Storage, and other cloud topics for developers. We also published several times about commerce and in-app payments.

2011 was a stellar year for Google I/O and other developer events around the world. Some of our most popular posts provided announcements, details, and recaps of these events. And we welcomed a couple dozen guest posts during Google I/O from developers with cool stories to tell.

The two most popular Code Blog posts of the year were both launches: the Dart preview in October, and the Swiffy launch in June.

Last, and surely least, I posted 26 Fridaygrams in an attempt to amuse and enlighten you. Thank you for reading those, and thanks for dropping by and reading all the posts we’ve thrown your way this year. See you in 2012!

And finally, please enjoy one more Easter egg.