Skip to content

Software Development Blogs: Programming, Software Testing, Agile Project Management

Methods & Tools

Subscribe to Methods & Tools
if you are not afraid to read more than one page to be a smarter software developer, software tester or project manager!

Google Code Blog
Syndicate content
News and insights on Google platforms, tools and eventsewood
Updated: 1 week 1 day ago

Upgrade now to Calendar APIv3

Thu, 07/17/2014 - 19:30
Cross-posted from the Google Apps Developers Blog

Back in 2011, we launched Calendar APIv3, which offers developers several improvements over older versions of the API, including better support for recurring events and lightweight resource representation in JSON. At that same time, we also announced that the older versions of the API – v1 and v2 – would be entering a three-year deprecation period in order to give developers time to migrate to the new version. Those three years are coming to an end, and on November 17, the v1 and v2 endpoints will be shut down. If you haven’t already done so, you should migrate your application now to APIv3 so that it continues to work after that date (and to start taking advantage of all that the new API offers!).

For additional resources, check out our Migration and Getting started guides. And if you have questions or issues, please reach out to us on, using tag #google-calendar.

By Lucia Fedorova, Calendar API Team

Lucia Fedorova is a Tech Lead of the Google Calendar API team. The team focuses on providing a great experience to Google Calendar developers and enabling new and exciting integrations.

Posted by Louis Gray, Googler
Categories: Programming

The New Roboto

Wed, 07/16/2014 - 18:00
By Christian Robertson, Android Visual Designer

Along with the Material Design guidelines we released a new version of the Roboto type family. A lot of things have changed as we tuned the font to work across more screen sizes and conditions, from watches to desktops, televisions to cars. It still keeps much of its character that made it successful for both phones and tablets, but almost every glyph has been tweaked and updated in some way.

We see Roboto as an evolving type family and plan to continue to change and update it as the system evolves. It used to be that a type family was designed once and then used without change for many years. Sometimes an updated version was released with a new name, sometimes by appending a "Neue" or "New". The old model for releasing metal typefaces doesn't make sense for an operating system that is constantly improving. As the system evolves over time, the type should evolve along with it.

The easiest way to identify the new version is to look for the R and K. They were some of the rowdier glyphs from version one and have been completely redrawn. Also check for the dots on the letter i or in the punctuation. We have rounded them out to make the types a little more friendly when you look at them closely. We also rounded out the sides of the upper case characters like O and C which makes the font feel less condensed even though it still has a high character count per line.

Some of the most significant changes are in the rhythm and spacing, especially for the caps. This isn't apparent as you look at individual glyphs, but makes for a better texture on the screen. Some of the more subtle fixes were to balance the weights between the caps and lowercase characters (the caps are slightly heavier in this version) and better correction for the distortions that occur in the obliqued italic characters.

Ultimately the purpose of a typeface is to serve the content and help people to understand it. We think that the new updates to Roboto along with the new Material Design guidelines will help it do more of just that.

Posted by Louis Gray, Googler
Categories: Programming

Noto: A CJK Font That is Complete, Beautiful and Right for Your Language and Region

Tue, 07/15/2014 - 23:00
By Xiangye Xiao, Stuart Gill, and Jungshik Shin,
Google Text and Font Team, Internationalization Engineering

Chinese, Japanese and Korean (CJK) readers represent approximately one quarter of the world’s population. Google’s mission is to organize the world’s information and make it universally accessible to all users no matter what language they use. To that end, Google, in cooperation with our partner Adobe, has released a free, high-quality Pan-CJK font family: Noto Sans CJK. These fonts are intended to provide a richer and more beautiful reading experience to the East Asian community in many OSes and software applications.

Noto Sans CJK comprehensively covers Simplified Chinese, Traditional Chinese, Japanese, and Korean in a unified font family and yet conveys the expected aesthetic preferences of each language. Noto Sans CJK is a sans serif typeface designed as an intermediate style between the modern and traditional. It is intended to be a multi-purpose digital font for user interface designs, digital content, reading on laptops, mobile devices, and electronic books. Noto Sans CJK is provided in seven weights: Thin, Light, DemiLight, Regular, Medium, Bold, and Black.

Fully supporting CJK requires tens of thousands of characters—these languages share the majority of ideographic characters, but there are also characters that are unique to only one language or to a subset of the languages. One of the primary design goals of Noto Sans CJK is that each script should retain its own distinctive look, which follows regional conventions, while remaining harmonious with the others.

Chinese ideographic characters are not only used by Simplified and Traditional Chinese, where they are called hanzi, but also by Japanese (kanji) and Korean (hanja). Although all originated from ancient Chinese forms, in each region and language they evolved independently. As a result, the same character can vary in shape across the different languages. For example, the image below shows variants of the same character (骨 - bone) designed for Simplified Chinese, Traditional Chinese, Japanese, and Korean. Look at how the inner top part and inner bottom part are different. Noto Sans CJK is designed to take these variations into account. In addition to ideographic characters, Noto Sans CJK also supports Japanese kana and Korean Hangeul—both contemporary and archaic.

Google and Adobe partnered to develop this free high-quality Pan-CJK typeface. Google will release it as Noto Sans CJK as part of Google's Noto font family. Adobe will release it as Source Han Sans as a part of Adobe's Source family. Adobe holds the copyright to the typeface design, and the fonts are released under the Apache License, version 2.0 which makes them freely available to all without restriction.

About this partnership: Google contributed significant input into project direction, helped to define requirements, provided in-country testing resources and expertise, and provided funding that made this project possible. Adobe brought strong design and technical prowess to the table, along with proven in-country type design experience, massive coordination, and automation. In addition, three leading East Asian type foundries were also brought in to design and draw a bulk of the glyphs—Changzhou SinoType Technology, Iwata Corporation, and Sandoll Communication—due to the sheer size of the project and their local expertise.

Building Noto Sans CJK font is a major step towards our mission to make the reading experience beautiful for all users on all devices. Noto Sans CJK is the newest member of the Noto font family, which aims to support all languages in the world. The entire Noto font family, including Noto Sans CJK, is free and open. Visit the Noto homepage to download Noto Sans CJK and other Noto fonts.

Xiangye Xiao is a Product Manager at Google Inc. where she works on fonts and text input.
Stuart Gill is the Tech Lead and Manager of Google’s Text and Font team.

Jungshik Shin is the Noto visionary and is a Software Engineer in Google’s Internationalization Engineering team working on Text and Fonts as well as on Chrome.

Posted by Louis Gray, Googler
Categories: Programming

Design Sprints for Developers

Thu, 07/10/2014 - 19:04
Author PictureBy Nadya Direkova, Staff Designer and Design Evangelist at Google[x]

At Google and throughout the industry, we all agree that two things matter: design and speed. But how can we do great design quickly? For our teams, one of our most important tools is the design sprint.

While a typical product design process takes months or years, a design sprint compresses this into a week or less. The design sprint combines key design and research methods and focuses on a single challenge or multiple challenges in parallel. It brings all the stakeholders—designers, developers, product managers, and other decision makers—into one place to work together on a short deadline. It often leads to insights and solutions more quickly than anyone thought possible. At Google, we've been using design sprints for over four years, from external projects like Ads, Glass and Project Loon to our internal tools.

One team has even run a huge sprint with 175 participants in 23 teams. How did that feel? As Cordell Ratzlaff, User Experience Director for Ads & Commerce, says: “When you participate in a sprint, you either win or you learn.” Our latest Google Design Minutes short tells this story:

Design sprints at scale: Cordell Ratzlaff and team on the importance of constraints

We’re really excited about sharing our design sprint methods more broadly. Design sprints were an important theme in the “Design, Develop, Distribute” message at Google I/O 2014, where developers got a chance to learn about and experience short sprints in person.

The design sprint: from Google Ventures to Google[x]; Daniel Burka, Jake Knapp, Nadya Direkova share insights with developers at Google I/O 2014

However, this was just a first glimpse; over the summer, we’ll be hosting design sprints for select developers in the Bay Area, helping developers design for platforms like Glass and Android Wear or build with the material design approach. To get updates when these limited-seating events become available, sign up here.

No matter what your challenge and design process, design sprints can help you reduce the time it takes to create great ideas. So make great things, and make them quickly!

Categories: Programming

Putting your Professional Group on the Map

Wed, 07/09/2014 - 17:30
By Sarah Maddox, Google Developer Relations team

People love to know what's happening in their area of expertise around the world. What better way to show it, than on a map? Tech Comm on a Map puts technical communication tidbits onto an interactive map, together with the data and functionality provided by Google Maps.

I'm a technical writer at Google. In this post I share a project that uses the new Data layer in the Google Maps JavaScript API, with a Google Sheets spreadsheet as a data source and a location search provided by Google Places Autocomplete.

Although this project is about technical communication, you can easily adapt it for other special interest groups too. The code is on GitHub. The map in action Visit Tech Comm on a Map to see it in action. Here's a screenshot:
The colored circles indicate the location of technical communication conferences, societies, groups and businesses. The 'other' category is for bits and pieces that don't fit into any of the categories. You can select and deselect the checkboxes at top left of the map, to choose the item types you're interested in.

When you hover over a circle, an info window pops up with information about the item you chose. If you click a circle, the map zooms in so that you can see where the event or group is located. You can also search for a specific location, to see what's happening there.

Let's look at the building blocks of Tech Comm on a Map.
Getting hold of a mapI'm using the Google Maps JavaScript API to display and interact with a map. Where does the data come from?When planning this project, I decided I want technical communicators to be able to add data (conferences, groups, businesses, and so on) themselves, and the data must be immediately visible on the map.

I needed a data entry and storage tool that provided a data entry UI, user management and authorization, so that I didn't have to code all that myself. In addition, contributors shouldn't need to learn a new UI or a new syntax in order to add data items to the map. I needed a data entry mechanism that is familiar to most people - a spreadsheet, for example.

In an episode of Google Maps Developer Shortcuts, Paul Saxman shows how to pull data from Google Drive into your JavaScript app. That's just what I needed. Here's how it works.

The data for Tech Comm on a Map is in a Google Sheets spreadsheet. It looks something like this:

Also in the spreadsheet is a Google Apps Script that outputs the data in JSON format:

var SPREADSHEET_ID = '[MY-SPREADSHEET-ID]';var SHEET_NAME = 'Data';function doGet(request) {  var callback = request.parameters.jsonp;  var range = SpreadsheetApp      .openById(SPREADSHEET_ID)      .getSheetByName(SHEET_NAME)      .getDataRange();  var json = callback + '(' +      Utilities.jsonStringify(range.getValues()) + ')';    return ContentService      .createTextOutput(json)      .setMimeType(ContentService.MimeType.JAVASCRIPT);}

Follow these steps to add the script to the spreadsheet and make it available as a web service:
  1. In Google Sheets, choose 'Tools' > 'Script Editor'.
  2. Add a new script as a blank project.
  3. Insert the above code.
  4. Choose 'File' > 'Manage Versions', and name the latest version of the script.
  5. Choose 'Publish' >  'Deploy as web app'. Make it executable by 'anyone, even anonymous'. Note: This means anyone will be able to access the data in this spreadsheet via a script.
  6. Choose 'Deploy'.
  7. Copy the URL of the web service. You'll need to paste it into the JavaScript on your web page.

In your JavaScript, define a variable to contain the URL of the Google Apps script, and add the JSONP callback parameter:
var DATA_SERVICE_URL =   "[MY-SCRIPT-ID]/exec?jsonp=?";

Then use jQuery's Ajax function to fetch and process the rows of data from the spreadsheet. Each row contains the information for an item: type, item name, description, website, start and end dates, address, latitude and longitude.

$.ajax({  url: DATA_SERVICE_URL,  dataType: 'jsonp',  success: function(data) {    // Get the spreadsheet rows one by one.    // First row contains headings, so start the index at 1 not 0.    for (var i = 1; i < data.length; i++) {{        properties: {          type: data[i][0],          name: data[i][1],          description: data[i][2],          website: data[i][3],          startdate: data[i][4],          enddate: data[i][5],          address: data[i][6]        },        geometry: {          lat: data[i][7],          lng: data[i][8]        }      });    }  }});The new Data layer in the Maps JavaScript API
Now that I could pull the tech comm information from the spreadsheet into my web page, I needed a way to visualize the data on the map. The new Data layer in the Google Maps JavaScript API is designed for just such a purpose. Notice the method in the above code. This is an instruction to add a feature in the Data layer.

With the basic JavaScript API you can add separate objects to the map, such as a polygon, a marker, or a line. But by using the Data layer, you can define a collection of objects and then manipulate and style them as a group. (The Data layer is also designed to play well with GeoJSON, but we don't need that aspect of it for this project.)

The tech comm data is represented as a series of features in the Data layer, each with a set of properties (type, name, address, etc) and a geometry (latitude and longitude).

Style the markers on the map, with different colors depending on the data type (conference, society, group, etc):

function techCommItemStyle(feature) {
 var type = feature.getProperty('type');
 var style = {
   icon: {      path: google.maps.SymbolPath.CIRCLE,      fillOpacity: 1,      strokeWeight: 3,      scale: 10            },    // Show the markers for this type if    // the user has selected the corresponding checkbox.    visible: (checkboxes[type] != false)  };
 // Set the marker colour based on type of tech comm item.  switch (type) {    case 'Conference':      style.icon.fillColor = '#c077f1';      style.icon.strokeColor = '#a347e1';      break;    case 'Society':      style.icon.fillColor = '#f6bb2e';      style.icon.strokeColor = '#ee7b0c';      break;. . . SNIPPED SOME DATA TYPES FOR BREVITY    default:      style.icon.fillColor = '#017cff';      style.icon.strokeColor = '#0000ff';  }  return style;}

Set listeners to respond when the user hovers over or clicks a marker. For example, this listener opens an info window on hover, showing information about the relevant data item:'mouseover', function(event) {    createInfoWindow(event.feature);;  });The Place Autocomplete search
The last piece of the puzzle is to let users search for a specific location on the map, so that they can zoom in and see the events in that location. The location search box on the map is provided by the Place Autocomplete widget from the Google Places API.What's next?
Tech Comm on a Map is an ongoing project. We technical communicators are using a map to document our presence in the world!

Would you like to contribute? The code is on GitHub.

Posted by Louis Gray, Googler
Categories: Programming

Art, made with code, opens at London’s Barbican

Wed, 07/02/2014 - 19:30
Author PhotoBy Paul Kinlan, Staff Developer Advocate and tinkerer

Good News Everybody! DevArt has officially opened at the Barbican’s Digital Revolution Exhibition, the biggest exploration of digital creativity ever staged in the UK.

(Images - Andrew Meredith)
Technology has long gone hand in hand with art and with DevArt we’re showcasing the developers who use technology as their canvas and code as their raw material to create innovative, interactive digital art installations. Karsten Schmidt, Zach Lieberman, and duo Varvara Guljajeva and Mar Canet, have been commissioned by Google and the Barbican for Digital Revolution. Alongside these three commissions, a fourth - Cyril Diagne and Beatrice Lartigue - were handpicked as a result of DevArt’s global initiative to discover the interactive artists of tomorrow. You can also see their incredible art online and through our exhibition launch film here:

Play the World, 2014. Zach Lieberman [View on Github]
Using Google Compute Engine, Google Maps Geolocation API and openFrameworks, Zach has been able to find musical notes from hundreds of live radio stations around the world, resulting in a unique geo-orientated piece of music every time a visitor plays the piano at the centre of the piece.

Image by Andrew Meredith

Wishing Wall, 2014, Varvara Guljajeva & Mar Canet [View on Github]
Taking advantage of Google Compute Engine, Web Speech API, Chrome Apps, openFrameworks and node.js, Varvara and Mar are able to capture a whispered wish, and let you watch it transform before your eyes, allowing you to reach out and let it land on your hand.

Image by Andrew Meredith

Co(de) Factory, 2014, Karsten Schmidt [View on Github]
Android, Google Cloud Platform, Google Closure Compiler, WebGL, WebSockets, and YouTube have been combined by Karsten to allow anybody to create art and become an artist. It empowers people by giving them the tools to create, and offers them the chance to have their digital piece fabricated in 3D and showcased in the exhibition.

Image by Andrew Meredith

Les Métamorphoses de Mr. Kalia, 2014, Béatrice Lartigue and Cyril Diagne [View on Github]
Android, Chrome Apps, Google App Engine, node.js, openFrameworks have enabled Béatrice and Cyril to create tracking technology that transforms movement into a visual performance where visitors take on the persona of Mr. Kalia, a larger-than-life animated character, that undergoes a series of surreal changes while following your every movement.

Image by Andrew Meredith

DevArt will tour the world with the Digital Revolution Exhibition for up to five years following the Barbican show in London.

Soon we’re also starting our DevArt Young Creators program — an education component of DevArt designed to inspire a new generation of coders — each led by the DevArt interactive artists. Developed alongside the UK’s new computing curriculum, the workshops have been designed especially for students aged 9-13 years who have never tried coding before. Each workshop will be developed into lesson plans in-line with the UK’s new national computing curriculum, and distributed to educators by arts and technology organisations.

Paul Kinlan is a Developer Advocate in the UK on the Chrome team specialising on mobile. He lives in Liverpool and loves trying to progress the city's tech community from places like DoES Liverpool hack-space.

Posted by Louis Gray, Googler
Categories: Programming

Cloud Enabling your Mobile App

Thu, 06/26/2014 - 20:00
By Jason Polites, Cloud Platform Team

Many mobile apps today suffer from “app-nesia” — the affliction that causes an app to forget who you are. Have you ever re-installed an app only to discover you have to re-create all your carefully crafted preferences? This is typically because the user’s app data lives only on the device.

By connecting your apps to a backend platform, you can solve this issue, but it can be challenging. Whether it’s building basic plumbing, or just trying to load and save data in a network & battery-efficient way, spending time dealing with the backend can take precious time away from building an awesome app. So, we’re introducing two new features to help make your life easier.

Google Cloud Save
Google Cloud Save allows you to easily load and save user data to the cloud without needing to code up the backend. This is handy for situations where you want to save user state and have that state synchronized to multiple devices, or survive an app reinstall.

We handle all the backend logic as well as the synchronization services on the client. The synchronization services work in the background, providing offline support for the data, and minimizing impact on the battery. All you need to do is tell us when and what to save, and you do this with just 4 simple methods:
  • .save(client, List<Entity>)
  • .delete(client, Query)
  • .query(client, Query)
  • .requestSync(client)
All data is written locally first, then automatically synchronized in the background. The save, delete and query methods provide your basic CRUD operations while the requestSync method allows you to force a synchronization at any time.On the backend the data is stored in Google Cloud Datastore which means you can access the raw data directly from a Google App Engine or Google Compute Engine instance using the existing Datastore API. Changes on the server will even be automatically synced back to client devices. Importantly, this per-user data belongs to you, the developer, and stored in your own Google Cloud Datastore database. Cloud Save (3).pngGoogle Cloud Save is currently in private beta and will be available for general use soon. If you’re interested in participating in the private beta, you can sign up here!

Cloud Tools for Android Studio
To simplify the process of adding an App Engine backend to your app, Android Studio now provides three App Engine backend module templates which you can add to your app:
  • App Engine Java Servlet Module - Minimal Backend
  • App Engine Java Endpoints Module - Basic Endpoint scaffolding 
  • App Engine with Google Cloud Messaging - Push notification wireup 
When you choose one of these template types your project is updated with a new Gradle module containing your new App Engine backend. All of the required dependencies/permissions will be automatically set up for you. Built-in rich editing support for Google Cloud Endpoints
Once you have added the backend module to your Android application, you can use Google Cloud Endpoints to streamline the communication between your backend and your Android app. Cloud Endpoints automatically generates strongly-typed, mobile optimized client libraries from simple Java server-side API annotations, automates Java object marshalling to and from JSON, and provides built-in OAuth 2.0 support.On deployment, this annotated Endpoints API definition class generates a RESTful API. You can explore this generated API (and even make calls to it) by navigating to Endpoints API explorer as shown in the image below: api-explorer.png

To simplify calling this generated API from your Android app, Android Studio will automatically set up your project to include all compile dependencies and permissions required to consume Cloud Endpoints, and will re-generate strongly-typed client libraries if your backend changes. This means that you can start calling the client libraries from your Android app immediately after defining the server-side Endpoints API. The underlying work-horses: Gradle, and Gradle plug-in for App EngineUnder the hood, Gradle is used to build both your app and your App Engine backend. In fact, when you add an App Engine backend to your Android app, the open-source App Engine plug-in for Gradle is automatically downloaded by Android Studio, and common App Engine tasks become available as Gradle targets. This allows you to use the same build system across your IDE, command-line or continuous integration environments.Checkout more details on the new Cloud Endpoints features in Android Studio on the Android Developer Blog.

Posted by Louis Gray, Googler
Categories: Programming

Sneak peek: Google Cloud Dataflow, a Cloud-native data processing service

Thu, 06/26/2014 - 14:00
By Frances Perry, Google Cloud Platform Team

In today's world, information is being generated at an incredible rate. However, unlocking insights from large datasets can be cumbersome and costly, even for experts.

It doesn’t have to be that way. Yesterday, at Google I/O, you got a sneak peek of Google Cloud Dataflow, the latest step in our effort to make data and analytics accessible to everyone. You can use Cloud Dataflow:
  • for data integration and preparation (e.g. in preparation for interactive SQL in BigQuery)
  • to examine a real-time stream of events for significant patterns and activities
  • to implement advanced, multi-step processing pipelines to extract deep insight from datasets of any size
In these cases and many others, you use Cloud Dataflow’s data-centric model to easily express your data processing pipeline, monitor its execution, and get actionable insights from your data, free from the burden of deploying clusters, tuning configuration parameters, and optimizing resource usage. Just focus on your application, and leave the management, tuning, sweat and tears to Cloud Dataflow.

Cloud Dataflow is based on a highly efficient and popular model used internally at Google, which evolved from MapReduce and successor technologies like Flume and MillWheel. The underlying service is language-agnostic. Our first SDK is for Java, and allows you to write your entire pipeline in a single program using intuitive Cloud Dataflow constructs to express application semantics.

Cloud Dataflow represents all datasets, irrespective of size, uniformly via PCollections (“parallel collections”). A PCollection might be an in-memory collection, read from files on Cloud Storage, queried from a BigQuery table, read as a stream from a Pub/Sub topic, or calculated on demand by your custom code.

Because PCollections can be arbitrarily large, Cloud Dataflow includes a rich library of PTransforms (“parallel transforms”), which you can customize with your own application logic. For example, ParDo (“parallel do”) runs your code over each element in a PCollection independently (like both the Map and Reduce functions in MapReduce or WHERE in SQL), and GroupByKey takes a PCollection of key-value pairs and groups together all pairs with the same key (like the Shuffle step of MapReduce or GROUP BY and JOIN in SQL). In addition, anyone can define new custom transformations by composing other transformations -- this extensibility lets you write reusable building blocks which can be shared across programs. Cloud Dataflow provides a starter set of these composed transforms out of the box, including Count, Top, and Mean.

Writing in this modular, high-level style naturally leads to pipelines that make multiple logical passes over the same data. Cloud Dataflow automatically optimizes your data-centric pipeline code by collapsing multiple logical passes into a single execution pass. However, this doesn't turn the system into a black box: as you can see below, Cloud Dataflow’s monitoring UI uses the building block concept to show you the pipeline as you wrote it, not as the system chooses to execute it.

 Code snippet and monitoring UI from the Cloud Dataflow demo in the IO keynote.
The same Cloud Dataflow pipeline may run in different ways, depending on the data sources. As you start designing or debugging, you can run against data local to your development environment. When you’re ready to scale up to real data, that same pipeline can run in parallel batch mode against data in Cloud Storage or in distributed real-time processing mode against data coming in via a Pub/Sub topic. This flexibility makes it trivial to transition between different stages in the application development lifecycle: to develop and test applications, to adapt an existing batch pipeline to track time-sensitive trends, or to fix a bug in a real-time pipeline and backfill the historical results.

When you use Cloud Dataflow, you can focus solely on your application logic and let us handle everything else. You should not have to choose between scalability, ease of management and a simple coding model. With Cloud Dataflow, you can have it all.

If you’d like to be notified of future updates about Cloud Dataflow, please join our Google Group.

Posted by Louis Gray, Googler
Categories: Programming

Google I/O: Design, Develop, Distribute

Wed, 06/25/2014 - 22:45
Author PictureBy Monica Tran, Developer Marketing team

Today at Moscone, we kicked off our 7th annual Google I/O. This year, we’re focusing on three key themes: design, develop, distribute, helping you build your app from start to finish. It’s been amazing to see how far you’ve come: in fact, since the last Google I/O, we’ve paid developers more than $5 billion, a testament to the experiences you’re creating. In the keynote, we had a number of announcements geared towards meeting the user wherever they go: on the TV, in the car and on your wrist. Below is a taste of some of the goodies we unveiled to help you along the way:


  • Material design: we introduced material design, which uses tactile surfaces, bold graphic design, and fluid motion to create beautiful, intuitive experiences
  • L-Release of Android, with material design: Bringing material design to Android is a big part of the L-Release of Android: we’ve added the new Material theme (which you can apply to your apps for a new style) and the ability to specify a view’s elevation, allowing you to cast dynamic, real-time shadows in your apps.
  • Bringing material design to Polymer: As a developer, you’ll now have access to all the capabilities of material design via Polymer, bringing tangibility, bold graphics, and animations to your applications on the web, all at 60fps.


  • L Developer Preview: Get extra lead time to make great apps for the next version of Android, with 5,000 new APIs to make Android simpler and more consistent on screens everywhere
  • Google Play services 5.0 is rolling out worldwide with great new features for developers.
  • Android TV SDK — Explore, learn and build apps and games for the biggest screen in the home. Your hard work will pay off in the fall when Asus, Razer and other partners launch their first Android TV devices.
  • Google Cast SDK: Help users find your content more easily with the improved Google Cast SDK developer console, which lets your app get discovered on and on Google Play.
  • Android Auto SDK coming Bring your app experience to the car by extending your existing app with Android Auto APIs. Be in millions of cars - with just one app.
  • Google Fit: An open fitness platform giving users control of their fitness data so that developers can focus on building smarter apps and manufacturers can focus on creating amazing devices
  • Gaming: Learn what's new about Google Play Games and the Android platform to take games to the next level.
  • Google Cloud Platform: Get help with debugging, tracing, and monitoring applications in with new developer productivity tooling. Also, try Cloud Dataflow, a new fully managed service that simplifies the process of creating data pipelines.
  • The new Gmail API: Add Gmail features to your app with RESTful access to threads, messages, labels, drafts and history


With the keynote behind us, we’ve still got two full days of session content for your viewing enjoyment at No matter where you are in the lifecyle of your app--whether you’re digging into user research, coming up against a tough technical challenge, or looking to get your app in the hands of millions of users--you can tune into the I/O Live stream for talks covering the themes of Design, Develop, and Distribute.

Posted by Louis Gray, Googler

.footer__link, .footer__text{ color: #8b8b8b !important; display: block; font-size: 12px; line-height: 1.33333; margin-bottom: 10px; text-decoration: none; } .hoverable .footer__link:hover { text-decoration: underline; }
Google I/O 2014I/O LivestreamsI/O Bytes Videos+Google DevelopersGoogle DesignAndroid WearAndroid TVAndroid AutoExplore the conference with the Google I/O 2014 Android app:Get it on Google Play
Categories: Programming

Cloud Platform at Google I/O - Enabling developers to tame production systems in the cloud

Wed, 06/25/2014 - 22:00
Author PictureBy Brad Abrams, Google Cloud Platform Team

Whether it’s the next viral game, social sharing app or hit SaaS application, the velocity of your innovation is driven by the productivity of your dev team. This week at Google I/O we talked about several new tools that enable developers to understand, diagnose and improve their systems in production.

Cloud Debugger
Today the state of the art of debugging for cloud applications isn’t much more than writing out diagnostic messages and spelunking the logs for them. When the right data is not being written to the logs, developers have to make a code change and redeploy the application to production. That is the last thing you want to do when investigating an issue in production. Traditional debuggers aren’t well suited for cloud-based services for two reasons. First, it is difficult to know which process to attach to. Second, stopping a process in production makes it hard to reproduce an issue and gives your end-users a bad experience.

The Cloud Debugger completely changes this model. It allows developers to start where they know best - in the code. By simply setting a watchpoint on a line of code, the next time a request on any of your servers hits that line of code, you get a snapshot of all the local variables, parameters, instance variables and a full stack trace. This works no matter how many instances you are running in production. There is zero setup up time and no complex configuration to enable. The debugger is ideal for use in production. There is no overhead for enabling the debugger on a project and when a watchpoint is hit very little noticeable performance impact is seen by your users.

  Screen Shot 2014-06-19 at 10.34.21 AM.png

Cloud Trace
Performance is an important feature of your service which directly correlates with end user satisfaction and retention. No one intends to build a slow service, but it can be extremely difficult to isolate the root cause of sluggishness when it happens. Especially when the issue hits only a fraction of your users.

Cloud Trace helps you visualize and understand the time spent by your application for request processing. This enables you to quickly identify and fix performance bottlenecks. You can even compare performance from release to release with a detailed report. You can leave Cloud Trace enabled in production because it has very little performance overhead.

In this screenshot, you can see we have investigated a particularly slow trace and we see a detailed breakdown of where the time is being spent. It looks like the problem could be these numerous sequential calls to Datastore, so maybe we should consider batching them.

Short Waterfall.png

So we go update our service to batch the Datastore calls, and deploy the updated service. Now we can use Cloud Trace to verify the fix.

  Selection_081.pngAs a developer, you can easily produce a report that shows the performance change in your service from one release to another. In the following report, the blue graph shows the performance without datastore batching and the orange graph shows the performance after releasing the change to use datastore batching. The X-axis of the graph represents the time taken (logarithmic scale) to service requests, and the left shift of the orange graph shows the significant performance gain due to Datastore batching.


Cloud Monitoring, Powered by Stackdriver

Cloud Monitoring provides rich dashboards and alerting capabilities that help developers find and fix performance problems quickly.

With minimal configuration and no separate infrastructure to maintain, Cloud Monitoring provides you with deep visibility into your Cloud Platform services. For example, you can use Cloud Monitoring dashboards to diagnose cases where your customers are reporting slow response times or errors accessing your applications:

Likewise, you can create alerting policies so that you are notified when key metrics, such as latency or error rates, pass a given threshold in the future:

You can configure alerts for any metric in the system, including those related to the performance of Cloud SQL databases, App Engine modules and versions, Pub/Sub topics and subscriptions, and Compute Engine VMs. With Compute Engine VMs, you can create alerts for both core system metrics (CPU, memory, etc.) and application services running in the VMs (Apache, Cassandra, MongoDB, etc.).

You can also create dashboards that make it easier to correlate metrics across services. For example, it takes a few clicks to create a dashboard that tracks key metrics for an App Engine module that connects to a set of Redis VMs running on Compute Engine:

Finally, you can create endpoint checks to monitor availability and response times for your end-user facing services. Endpoint checks are performed by probes in Oregon, Texas, Virginia, Amsterdam, and Singapore, enabling monitoring of latency from each of these five regions.

SSH to your VM instantly

Sometimes it is inevitable to connect directly to a VM to debug or fix a production issue. We know this can be a bit of a pain, especially when you are on the road, so now you can do that from just about anywhere. With our new browser based SSH client you can quickly and securely connect to any of your VMs from the Console. No need to install any SDK or tools. The best part is, this works from any desktop device with most major web browsers.

Screen Shot 2014-06-15 at 7.19.10 AM.png

Ready for a Spin? All of these features are just about ready for your applications. Stay tuned to this blog, we will post updates as they are more widely available.

Posted by Louis Gray, Googler

.footer__link, .footer__text{ color: #8b8b8b !important; display: block; font-size: 12px; line-height: 1.33333; margin-bottom: 10px; text-decoration: none; } .hoverable .footer__link:hover { text-decoration: underline; }
Google I/O 2014I/O LivestreamsI/O Bytes Videos+Google DevelopersGoogle DesignAndroid WearAndroid TVAndroid AutoExplore the conference with the Google I/O 2014 Android app:Get it on Google Play
Categories: Programming

Building successful global app businesses

Wed, 06/25/2014 - 19:58

By: Purnima Kochikar, Director, Google Play Apps & Games

With over 1 billion active Android users, an increasing number of developers like you are building successful global businesses on Google Play. Since the last Google I/O, we’ve also paid out more than $5 billion to developers.

This week at Google I/O, we announced new ways to help you build a successful business. These solutions work together at scale to help you find more users, understand and engage them, and effectively convert your active users into buyers.

Build an engaging app

Last year, Google Play became an even better place to try new ideas. Since May 2013, Google Play offers Alpha and Beta Testing so that you can engage users early to get feedback on your new app. Feedback provided by users is private, allowing you to fix issues before publicly launching the app, and without impacting your public ratings and reviews. Over 80,000 apps on Google Play are actively using beta testing. You can also ensure new versions get a positive response by updating through staged rollouts.

Scale operations

As your app business grows, you dedicate more time to release management. Today we announced the Google Play Developer Publishing API to help you scale your release operations. The new API will let you upload APKs, manage your in-app products and localized store listings. You will be able to integrate publishing operations with your release processes and toolchain through a RESTful API. With the Google Play Developer Publishing API you’ll spend less time managing your releases and more time managing your business. This API is currently in closed beta and we look forward to making it available to all developers.

Actionable insights

The Google Play Developer Console now offers more actionable insights into your app’s performance by sending you email notifications for Alerts and providing Optimization Tips. We’re also offering new revenue metrics including number of buyers and average revenue per paying user. You’ll also be able to export user reviews for further analysis. Click on Announcements in the Developer Console for a list of new features.

For game developers, we recently launched enhanced Play Games statistics on the Google Play Developer Console. You get a daily dashboard that visualizes player and engagement statistics for signed in users, including daily active users, retention analysis, and achievement and leaderboard performance.

Enhance discovery and engagement

With AdWords, we're building a robust platform to help you promote your app and drive re-engagement. This week we are launching Installed App Category Targeting, a new way to promote your app to new users. It helps you reach potential customers across the AdMob network who have already installed apps from related categories on Google Play and other app stores. For example, an action-oriented game developer may wish to reach users who have previously installed apps from the category Action & Adventure Games.

Ads can also remind users about the apps they already have. Through Google mobile display and search ads deep linking, you can re-engage users who have already installed your Android app by taking them directly to specific pages in the app. Let’s say someone has the Hotel Tonight app installed on their phone. If they search Google for “hotels in San Francisco," they'll see an ad that will open Hotel Tonight app and take them directly to a list of San Francisco hotels.

This deep-linking is also available through search for all apps that implement app indexing. If a user with the Walmart Android app searches for “Chromecast where to buy”, they’ll go directly to the Chromecast page in the Walmart app. The new App Indexing API is now open to all Android developers, globally. Get started now.

New services for game developers

For game developers using Play Games, we announced a new Game Profile that is automatically customized based on the gameplay and achievements earned in those games. Since its launch last year, users have loved saving their game progress in the cloud. We’re now evolving this feature to Saved Games, where users can save up to 3 “bookmarks” of their progress in the Play Games app, complete with images and descriptions. Finally, we announced a new service called Quests — it you run online, time-based goals in your game; for example, players can collect bunch of in-game items on a specific day, and the quests services coordinates with your game to know who completed the goal. These APIs run events for your players, and reward them, without the need to update your game.

New monetization tools

Today, we announced that users who have set up Direct Carrier Billing on their smartphone can also make purchases on Google Play from their tablet, charging to the same mobile phone bill. In addition to our recent launch of payments through PayPal, these new user payment options expand monetization opportunities for your apps.

As announced earlier this year, Google Analytics is now directly available in the AdMob interface, giving you powerful segmentation tools to determine the best monetization strategy for each user. For example, you might want to display in-app purchase ads to users most interested in buying, while showing regular ads to those less likely to buy right now. Once you’ve segmented your audience in this way, you can use AdMob to build interstitial ads that promote in-app purchase items to users at a point in your app that’s useful to them. This creates a more customized experience for users, can help prolong engagement and grow in-app purchase revenue. Learn more.

Join us

If you're at Google I/O 2014, please join us at our breakout sessions today and tomorrow, where we'll be talking about these features in much more detail. (Add us to your calendar!) And if you can't make I/O, you can always join us on the livestream or watch the videos online later.

Posted by Louis Gray, Googler

.footer__link, .footer__text{ color: #8b8b8b !important; display: block; font-size: 12px; line-height: 1.33333; margin-bottom: 10px; text-decoration: none; } .hoverable .footer__link:hover { text-decoration: underline; }
Google I/O 2014I/O LivestreamsI/O Bytes Videos+Google DevelopersGoogle DesignAndroid WearAndroid TVAndroid AutoExplore the conference with the Google I/O 2014 Android app:Get it on Google Play
Categories: Programming

Cast Away with Android TV and Google Cast

Wed, 06/25/2014 - 19:55

By Dave Burke and Majd Bakar, Engineering Directors and TV Junkies

Last summer, we launched Chromecast, a small, affordable device that lets you cast online video, music and anything from the web to your TV. Today at Google I/O, we announced Android TV, the newest form factor to the Android platform, and a way to extend the reach of Google Cast to more devices, like televisions, set-top boxes and consoles.

Check out Coming to a Screen Near You for some details on everything we’re doing to make your TV the place to be.

For developers though--sorry, you don’t get to unwind in front of the TV. We need you to get to work and help us create the best possible TV experience, with all of the new features announced at I/O today.

Get started with Android TV

In addition to Google Cast apps that send content to the TV, you can now build immersive native apps and console-style games on Android TV devices. These native apps work with TV remotes and gamepads, even if you don’t have your phone handy. The Android L Developer Preview SDK includes the new Leanback support library that allows you to design smoother, simpler, living room apps.

And this is just the beginning. In the fall, new APIs will allow you to cast directly to these apps, so users can control the app with the phone, the remote, or even their Android Wear watch. You’ll also start seeing Android TV set-top boxes, consoles and televisions from Sony, TP Vision, Sharp, Asus, Razer and more.

Help more users find your Google Cast app

We want to help users more easily find your content, so we’ve improved the Google Cast SDK developer console to let you upload your app icon, app name, and app category for Android, iOS and Chrome. These changes will help your app get discovered on and on Google Play.

Additional capabilities have also been added to the Google Cast SDK. These include: Media Player Library enhancements, bringing easier integration with MPEG-DASH Smooth Streaming, and HLS. We’ve also added WebAudio & WebGL support, made the Cast Companion Library available, and added enhanced Closed Caption support. And coming soon, we will add support for queuing and ID delegation.

Ready to get started? Visit and for the SDKs, style guides, tutorials, sample code, and the API references. You can also request an ADT-1 devkit to bootstrap your Android TV development.

Posted by Louis Gray, Googler

.footer__link, .footer__text{ color: #8b8b8b !important; display: block; font-size: 12px; line-height: 1.33333; margin-bottom: 10px; text-decoration: none; } .hoverable .footer__link:hover { text-decoration: underline; }
Google I/O 2014I/O LivestreamsI/O Bytes Videos+Google DevelopersGoogle DesignAndroid WearAndroid TVAndroid AutoExplore the conference with the Google I/O 2014 Android app:Get it on Google Play
Categories: Programming

Cloud Platform at Google I/O - new Big Data, Mobile and Monitoring products

Wed, 06/25/2014 - 19:30
Author PictureBy Greg DeMichillie, Google Cloud Platform team

Today at Google I/O, we are introducing new services that help developers build and optimize data pipelines, create mobile applications, and debug, trace, and monitor their cloud applications in production.

Introducing Google Cloud Dataflow
A decade ago, Google invented MapReduce to process massive datasets using distributed computing. Since then, more devices and information require more capable analytics pipelines — though they are difficult to create and maintain.

Today at Google I/O, we are demonstrating Google Cloud Dataflow for the first time. Cloud Dataflow is a fully managed service for creating data pipelines that ingest, transform and analyze data in both batch and streaming modes. Cloud Dataflow is a successor to MapReduce, and is based on our internal technologies like Flume and MillWheel.

Cloud Dataflow makes it easy for you to get actionable insights from your data while lowering operational costs without the hassles of deploying, maintaining or scaling infrastructure. You can use Cloud Dataflow for use cases like ETL, batch data processing and streaming analytics, and it will automatically optimize, deploy and manage the code and resources required.

Debug, trace and monitor your application in production
We are also introducing several new Cloud Platform tools that let developers understand, diagnose and improve systems in production.

Google Cloud Monitoring is designed to help you find and fix unusual behavior across your application stack. Based on technology from our recent acquisition of Stackdriver, Cloud Monitoring provides rich metrics, dashboards and alerting for Cloud Platform, as well as more than a dozen popular open source apps, including Apache, Nginx, MongoDB, MySQL, Tomcat, IIS, Redis, Elasticsearch and more. For example, you can use Cloud Monitoring to identify and troubleshoot cases where users are experiencing increased error rates connecting from an App Engine module or slow query times from a Cassandra database with minimal configuration.

We know that it can be difficult to isolate the root cause of performance bottlenecks. Cloud Trace helps you visualize and understand time spent by your application for request processing. In addition, you can compare performance between various releases of your application using latency distributions.

Finally, we’re introducing Cloud Debugger, a new tool to help you debug your applications in production with effectively no performance overhead. Cloud Debugger gives you a full stack trace and snapshots of all local variables for any watchpoint that you set in your code while your application continues to run undisturbed in production. This brings modern debugging to cloud-based applications.

New features for mobile development
With rapid autoscaling, caching and other mobile friendly capabilities, many apps like Snapchat or Rising Star have built and run on Cloud Platform. We’re adding new features that make building a mobile app using Cloud Platform even better.

Today, we’re demonstrating a new version of Google Cloud Save, which gives you a simple API for saving, retrieving, and synchronizing user data to the cloud and across devices without needing to code up the backend. Data is stored in Google Cloud Datastore, making the data accessible from Google App Engine or Google Compute Engine using the existing Datastore API. Google Cloud Save is currently in private beta and will be available for general use soon.

We’ve also added tooling to Android Studio, which simplifies the process of adding an App Engine backend to your mobile app. In particular, Android Studio now has three built-in App Engine backend module templates, including Java Servlet, Java Endpoints and an App Engine backend with Google Cloud Messaging. Since this functionality is powered by the open-source App Engine plug-in for Gradle, you can use the same build configuration for both your app and your backend across IDE, CLI and Continuous Integration environments.

We’ll be doing more detailed follow-up posts about these announcements in the coming days, so stay tuned.

Greg DeMichillie has spent his entire career working on developer platforms for web, mobile, and the cloud. He started as a software engineer before making the jump to Product Management. When not coding, he's an avid photographer and gadget geek.

Posted by Louis Gray, Googler

Apache, Nginx, MongoDB, MySQL, Tomcat, IIS, Redis, Elasticsearch and Cassandra are trademarks of their respective owners.

.footer__link, .footer__text{ color: #8b8b8b !important; display: block; font-size: 12px; line-height: 1.33333; margin-bottom: 10px; text-decoration: none; } .hoverable .footer__link:hover { text-decoration: underline; }
Google I/O 2014I/O LivestreamsI/O Bytes Videos+Google DevelopersGoogle DesignAndroid WearAndroid TVAndroid AutoExplore the conference with the Google I/O 2014 Android app:Get it on Google Play
Categories: Programming

This is material design

Wed, 06/25/2014 - 19:20
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

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.

Categories: Programming

What to expect at I/O’14 - Distribute

Tue, 06/24/2014 - 22:45
By Ellie Powers, Google Play team

Less than one day to go until Google I/O 2014! In our third post on what to expect at Google I/O 2014, we'd like to share what’s coming up if you’re looking to grow your app distribution, engage users, and make money on Google Play.

Now that you've designed your app and developed it with the power of Google technologies, you need to attract, retain and grow your audience Here are a few of the sessions we'll be hosting at I/O to help you build a successful app business with Google:

  • Making Money on Google Play || Wednesday, 1-1:45PM (room 4) Developers are finding great success on Google Play. In this session, we’ll review developer success stories and the drivers of revenue, and we’ll share tips for developers to get the most out of Google Play.
  • Google Play Power Session || Wednesday, 2-2:45PM (room 4) The multi-device mobile app world presents huge opportunities for developers to connect with users, and Google Play is one of the richest and most competitive business ecosystems on the planet. Understand how to leverage the complete suite of Google products to make a great app, build your userbase, expand your app onto new device types, and reach people globally.
  • Going Global with Google Play || Thursday, 9-9:45AM (room 7 - live streamed) Think your app or game has what it takes to become a global hit? Get key insights into major international markets and trends of successful apps and games in those regions. Leverage these pro tips and best practices to expand your game to a global audience.
  • Maximize app engagement, monetization and distribution || Thursday, 2-2:45PM (room 7 - live streamed) You built an app. Awesome. Do you have a monetization plan? An easy way for your users to pay? Does anyone know about it? How are you tracking success? In addition to providing the platforms and tools to design and develop your apps, we also have solutions to help make it discoverable and more profitable. Learn how you can turn your app into a business by understanding your most valuable users, finding more of them, and tailoring the monetization experience for each different group. We can also help enable fast and seamless transactions so users can purchase products or services in your app.

We’ll also be hosting ‘Box talks with Google product teams who will share best practices for distributing mobile, web, Glass and Google Cast apps, as well as broadening reach with Google+. In addition, we’ve invited entrepreneurs and VCs to discuss their experiences (and maybe even inspire the creation of a few great new businesses).

Have specific questions and want to talk with experts? We’ll have designated Office Hours for Google Play, Google Wallet, AdMob and Google Analytics, and Knowledge Graph.

For more info on how to grow your app business with Google, visit and

See you at I/O!

Ellie Powers is a product manager at Google Play, focused on developing the apps ecosystem. She joined Google to re-launch the Google Play Developer Console, and is now working to make Play the best place for developers and users alike.

Posted by Louis Gray, Googler
Categories: Programming

Join I/O 2014 from anywhere!

Tue, 06/24/2014 - 19:30
By Billy Rutledge, Director of Developer Relations

We’re loading the big green robot into Moscone and watching the event come to life in front of our eyes. We're really looking forward to seeing you here, but even if you aren't able to attend in person, you can still follow everything that's happening in real time. Here is how:

  • The Keynote and selected sessions will be live streamed throughout the 2 days, on 4 different channels. Tune into on June 25 starting at 9AM PDT to see everything from the comfort of your couch.
  • Download the mobile app which allows you to access the live stream on the go, discover I/O-related conversations on Google+ and be reminded when sessions in your personalized schedule are about to start.
  • Join an Extended event happening near you and watch I/O with friends.

  • Put in your I/O requests and questions about what's happening on the ground. All you need is to post publicly on Google+ using the "#io14request" hashtag and it will be picked up and answered by our team of onsite community managers. Read more about the program here.
  • Follow our +Google Developers feed so you learn about the conference announcements and highlights as they happen.
  • If you’re interested in bringing the I/O live stream and Google+ social feed directly to your audience, customize and embed our Live Blogging Gadget on your website and/or blog. Get started here.

Can’t wait for I/O to begin? Over the past few days, we have been rolling out I/O Bytes -- short videos to help developers like you dive in and experience I/O anywhere, anytime. Over 100 videos will be available on the Developers YouTube channel, throughout the I/O live stream, and on the I/O website once the event starts.

See you on Wednesday!

Billy Rutledge, Director of Developer Relations

Posted by Louis Gray, Googler
Categories: Programming

What to expect at I/O’14 - Develop

Mon, 06/23/2014 - 19:20
By Reto Meier, Google Developer Advocate

Google I/O 2014 will be live in less than 48 hours. Last Friday we shared a sneak peek of content and activities around design principles and techniques. This morning we’re excited to give a glimpse into what we have in store for develop experiences.

Google I/O at its core has always been about providing you with the inspiration and resources to develop remarkable applications using Google’s platforms, tools and technologies.

This year we’ll have a full lineup of sessions from the Android, Chrome and Cloud Platform teams, highlighting what’s new as well as showcasing cross-product integrations. Here’s a sample of some of the sessions we’ll be live streaming:
  • What’s new in Android || Wednesday 1-1:45PM (Room 8): Join us for a thrilling, guided tour of all the latest developments in Android technologies and APIs. We’ll cover everything that’s new and improved in the Android platform since…well, since the last time.
  • Making the mobile web fast, feature rich and beautiful || Thursday 10-10:45AM (Room 6): Reintroducing the mobile web! What is the mobile web good at? Why should developers build for it? And how do mobile web and native complement each other? The mobile web is often the first experience new users have with your brand and you're on the hook for delivering success to them. There's been massive investment in mobile browsers; so now we have the speed, the features, and the tools to help you make great mobile web apps.
  • Predicting the future with the Google Cloud Platform || Thursday 4-4:45PM (Room 7): Can you predict the future using Big Data? Can you divine if your users will come back to your site or where the next social conflict will arise? And most importantly, can Brazil be defeated at soccer on their own turf? In this talk, we'll go through the process of data extraction, modelling and prediction as well as generating a live dashboard to visualize the results. We’ll demonstrate how you can use Google Cloud and Open Source technologies to make predictions about the biggest soccer matches in the world. You’ll see how to use Google BigQuery for data analytics and Monte Carlo simulations, as well as how to create machine learning models in R and pandas. We predict that after this talk you’ll have the necessary tools to cast your own eye on the future.
In addition, we’ve invited notable speakers such as Ray Kurzweil, Regina Dugan, Peter Norvig, and a panel of robotics experts, hosted by Women Techmakers, and will be hosting two Solve for X workshops. These speakers are defining the future with their groundbreaking research and technology, and want to bring you along for the ride.

Finally, we want to give you ample face to face time with the teams behind the products, so are hosting informal ‘Box talks for Accessibility, Android, Android NDK / Gaming Performance, Cloud, Chrome, Dart, and Go. Swing by the Develop Sandbox to connect, discuss, learn and maybe even have an app performance review.

See you at I/O!

Reto Meier manages the Scalable Developer Advocacy team as part of Google's Developer Relations organization, and wrote Professional Android 4 Application Development.

Posted by Louis Gray, Googler
Categories: Programming

What to expect at I/O’14 - Design

Fri, 06/20/2014 - 22:00

By Roman Nurik, Design Advocate

Google I/O 2014 is less than a week away, and we could not be more excited to show you what we have planned to help you create great experiences for your users.

Over the next few days, we’ll be sharing things to look out for both in-person and virtually that highlight design principles and techniques, the latest tools and implementations with which to develop, and developer-minded products and strategies to help distribute your app. First up, design!

As we shared in April, this year’s event will include content geared to designers and developers who are interested in design. These include:

SESSIONS: Designing for wearables || Wednesday, 4-5PM (Room 8): In this session, lead Google designers will discuss the process for Android Wear and Glass, and give tips for developers and designers working in this emerging space. By attending you’ll hear our take on new design approaches to wearable technology. This is just one of a number of sessions from Google user experience researchers and designers discussing our approach to cross-platform design, as well as opportunities to learn about testing and rapid prototyping. Filter by “Design, Sessions, Live Streaming” to find the design sessions we’ll be playing over the live stream.

WORKSHOPS: Design sprints with Google Ventures || Thursday, 11AM -1PM (Workshop 1): We’ll offer a full slate of interactive workshops ranging from designing for Glass to effectively using data in your design processes, including this workshop on design techniques that you can use to gather data about customers, get your team focused on the same challenges, quickly sketch new ideas, and turn those sketches into prototypes.

PANELS: Cross-platform design panel || Thursday, 1:15-2PM (Design Sandbox, Floor 2): This year, the sandbox will be alive with talks, panels and opportunities to meet directly with Googlers. During this panel, Google designers will share their thoughts on designing for multiple platforms, providing background information on how the design team creates consistent, intuitive and delightful experiences in a multi-platform world. There are many opportunities like this as well as for UX reviews and informal ‘Box talks in the Design Sandbox, offering you opportunities to connect with Googlers who share your passion for designing simple and engaging applications.

To see the full Google I/O schedule, visit

See you at I/O!

Roman Nurik is a Design Advocate at Google, helping designers and developers build amazing products on platforms like Android and the web.

Posted by Louis Gray, Googler
Categories: Programming

mod_spdy is now an Apache project

Thu, 06/19/2014 - 19:30
Author PictureBy Matthew Steele, PageSpeed Insights Team

Just over two years ago, we launched mod_spdy, a plugin for the popular Apache Web Server that adds support for the SPDY protocol. At the time, our goal was both to speed up the web and help fuel the growth and adoption of SPDY by making it easy for Apache 2.2 users to install and enable SPDY on their sites. Today, SPDY is now widely adopted, officially supported by several web servers and many popular sites, and the IETF is using it as the basis for the upcoming HTTP/2.0 protocol. The time seems right for mod_spdy to cease being a third-party add-on, and to instead become a core part of Apache httpd.

We’re pleased to announce that Google has formally donated mod_spdy’s code to the Apache Software Foundation, and it is now a part of the Apache httpd codebase. “The intent is to work on making it fully part of [Apache] 2.4 and, of course, a core part of 2.6/3.0” - Jim Jagielski, co-founder of the ASF. Being a part of Apache core will make SPDY support even more widely available for Apache httpd users, and pave the way for HTTP/2.0. It will also further improve that support over the original version of mod_spdy by better integrating SPDY and HTTP/2.0’s multiplexing features with the core part of the server.

We’re grateful for all the adoption and feedback we’ve gotten from mod_spdy users over the past two years, and we’re very excited to see the Apache Software Foundation take it from here!

Matthew Steele is a Software Engineer on the Google PageSpeed Insights Team in Cambridge, MA. He and his team focus on developing tools to help site owners make their sites faster and more usable.

Posted by Louis Gray, Googler
Categories: Programming

Web Fundamentals and Web Starter Kit: Resources for Modern Web Development

Thu, 06/19/2014 - 18:45
Cross-posted from the Chromium Blog

Author PhotoBy Paul Kinlan, Chrome Developer Relations

The web is a rich computing platform with unparalleled reach. In recent years, mobile devices have brought the web to billions of new users and introduced many new device capabilities, screen sizes, input methods, and more. To help developers navigate this brave new world, we built Web Fundamentals, a curated source for modern best practices. Today, we’re making it even easier to build multi-device experiences with the Beta release of the Web Starter Kit.

Web Fundamentals Preview

Web Fundamentals' guidelines are intended to be fundamental to the platform: useful no matter which framework you choose or which browser your users run. We have articles about responsive layouts, forms, touch, media, performance, device capabilities, and setting up a development workflow. Articles cover both coding and design. For example, the article on layout design patterns explains both the usability tradeoffs between different layout options and how to implement them. The performance section complements PageSpeed Insights, an auditing tool that encourages instant (<1 second) mobile web sites.

Designed to help you apply Web Fundamentals’ best practices in new projects, Web Starter Kit is a lightweight boilerplate with templates and tooling. Web Starter Kit gives you responsive layout, a visual style guide, and optional workflow features like performance optimization so you can keep your pages lean and fast.

Web Starter Kit preview animation

Both Web Fundamentals and the Web Starter Kit are actively developed and curated by a team of developers from Google and several open-source contributors. Our source code is available on GitHub, and we welcome contributions and feedback. Looking ahead, we’ll be adding new content and working with the web development community to refine our advice. Please file an issue or submit a pull request to help us capture web development best practices.

We look forward to a more modern, multi-device web!

Posted by Paul Kinlan, Developer Advocate and Web Fundamentalist

Posted by Louis Gray, Googler
Categories: Programming