Category Archives: Google Developers Blog

News and insights on Google platforms, tools and events

Creating More Realistic AR experiences with updates to ARCore & Sceneform

Posted by Ashish Shah, Product Manager, Google AR & VR

The magic of augmented reality is in the way it blends the digital and the physical worlds. For AR experiences to feel truly immersive, digital objects need to look realistic -- as if they were actually there with you, in your space. This is something we continue to prioritize as we update ARCore and Sceneform, our 3D rendering library for Java developers.

Today, with the release of ARCore 1.6, we're bringing further improvements to help you build more realistic and compelling experiences, including better plane boundary tracking and several lighting improvements in Sceneform.

With 250M devices now supporting ARCore, developers can bring these experiences to an even larger and growing user base.

More Realistic Lighting in Sceneform

Previous versions of Sceneform defaulted to optimizing ambient light as yellow. Version 1.6 defaults to neutral and white. This aligns more closely to the way light appears in the real world, making digital objects look more natural. You can see the differences below.

Left side image: Sceneform 1.5Right side image: Sceneform 1.6

This change will also make objects rendered with Sceneform look as if they're affected more naturally by color and lighting in the surrounding environment. For example, if you're viewing an AR object at sunset, it would appear to be illuminated by the red and orange hues, just like real objects in the scene.

In addition, we've updated Sceneform's built-in environmental image to provide a more neutral scene for your app. This will be most noticeable when viewing reflections in smooth metallic surfaces.

Adding screen capture and recording to the mix

To help you further improve quality and engagement in your AR apps, we're adding screen capture and recording to Sceneform. This is something a number of developers have requested to help with demo recording and prototyping. It can also be used as an external facing feature, allowing your users to share screenshots and videos on social media more easily, which can help get the word out about your app.

You can access this functionality through the surface mirroring API for the SceneView class. The API allows you to display the Sceneform view on a device's screen at the same time it's being rendered to another surface (such as the input surface for the Android MediaRecorder).

Learn more and get started

The new updates to Sceneform and ARCore are available today. With these new versions also comes support for new devices, such as the Samsung Galaxy A3 and the Huawei P20 Lite, that will join the list of ARCore-enabled devices. More information is available on the ARCore developer website.

Sync Google Drive files to apps using the Drive REST API, bidding farewell to the Drive Android API

Posted by Remy Burger, Product Manager, Google Drive

If you're looking to make Google Drive files accessible from within your application, chances are you might use the Google Drive REST API or the Google Drive Android API to help. Both tools allow users to download or upload files from Drive from inside of another application.

Starting today, we're simplifying options for developers by retiring the Drive Android API. We will focus solely on expanding functionality for the Drive REST API.

If you're new to the Drive REST API, it offers all of the same functionality as the Drive Android API, including ways to:

If you use the Google Drive Android API, you will need to migrate your existing applications to other services prior to December 6, 2019, when all calls to the API and any features in your applications that depend on it will be shut down. Note: if you've been using the Drive Android API for its offline sync capability, you can continue to provide an offline-first model by using a SyncAdapter with the Drive REST API.

What to do if you currently use the Google Drive Android API

We want to make it easy for you to migrate your applications to use the Drive REST API. To get started, reference this migration guide which details replacements for each of the major services fulfilled by the Drive Android API. Additionally, check out this sample app, which demonstrates each of these proposed replacements. If you have any issues, check out the google-drive-sdk tag on StackOverflow.

Upgrade to version 2 of the Google Drive Activity API

Posted by Jeremy S. Meredith, Google Drive Activity API Team

Today, we are announcing a new version of the Google Drive Activity API, used to access the record of user activity in Google Drive. This new API offers an expanded data model to provide meaningful representations of actions, actors, and targets of activity in Google Drive. It also offers new features for filtering the results of requests made to the API.

The version of the API released today replaces the existing Drive Activity API v1, so you should migrate your applications to the new version of the API soon. We will shut down the v1 API on December 31, 2019. At that time, any application that depends on the v1 API will no longer work.

A migration guide is available to help with this transition to the new Drive Activity API v2. You may also want to read the overview and guides for the new version, peruse the reference documentation, or jump right in and try it out in the APIs Explorer.

Flutter 1.0: Google’s Portable UI Toolkit

Posted by Tim Sneath, Group Product Manager for Flutter

Today, at Flutter Live, we're announcing Flutter 1.0, the first stable release of Google's UI toolkit for creating beautiful, native experiences for iOS and Android from a single codebase.

Cross-platform mobile development today is full of compromise. Developers are forced to choose between either building the same app multiple times for multiple operating systems, or to accept a lowest common denominator solution that trades native speed and accuracy for portability. With Flutter, we believe we have a solution that gives you the best of both worlds: hardware-accelerated graphics and UI, powered by native ARM code, targeting both popular mobile operating systems.

Introducing Flutter

Flutter doesn't replace the traditional Apple and Android app models for building mobile apps; instead, it's an app engine that you can either embed into an existing app or use for an entirely new app.

We think of the characteristics of Flutter along four dimensions:

  1. Flutter enables you to build beautiful apps. We want to enable designers to deliver their full creative vision without being forced to water it down due to limitations of the underlying framework. Flutter lets you control every pixel on the screen, and its powerful compositing capabilities let you overlay and animate graphics, video, text and controls without limitation. Flutter includes a full set of widgets that deliver pixel-perfect experiences on both iOS and Android. And it enables the ultimate realization of Material Design, Google's open design system for digital experiences.
  2. Flutter is fast. It's powered by the same hardware-accelerated Skia 2D graphics engine that underpins Chrome and Android. We architected Flutter to be able to support glitch-free, jank-free graphics at the native speed of your device. Flutter code is powered by the world-class Dart platform, which enables compilation to native 32-bit and 64-bit ARM code for iOS and Android.
  3. Flutter is productive. Flutter introduces stateful hot reload, a revolutionary new capability for mobile developers and designers to iterate on their apps in real time. With stateful hot reload, you can make changes to the code of your app and see the results instantly without restarting your app or losing its state. Stateful hot reload transforms the way developers build an app -- and in user surveys, developers say it makes their development cycle three times more productive.
  4. Lastly, Flutter is open. Flutter is an open source project with a BSD-style license, and includes the contributions of hundreds of developers from around the world. In addition, there's a vibrant ecosystem of thousands of plug-ins. And because every Flutter app is a native app that uses the standard Android and iOS build tools, you can access everything from the underlying operating system, including code and UI written in Kotlin or Java on Android, and Swift or Objective-C on iOS.

Put this all together, combine it with best-in-class tooling for Visual Studio Code, Android Studio, IntelliJ or the programmer's editor of your choice, and you have Flutter -- a development environment for building beautiful native experiences for iOS or Android from a single codebase.

Flutter Growth and Momentum

We announced the first beta of Flutter at Mobile World Congress ten months ago, and we've been excited to see how quickly it has been adopted by the broader community, as evidenced by the thousands of Flutter apps that are already published to the Apple and Google Play stores even before our 1.0 release. It's clear that developers are ready for a new approach to UI development.

Internally, Flutter is being used at Google for a wide array of products, with Google Ads already having switched to Flutter for their iOS and Android app. And even before 1.0, a wide range of global customers including Abbey Road Studios, Alibaba, Capital One, Groupon, Hamilton, JD.com, Philips Hue, Reflectly, and Tencent are developing or shipping apps with Flutter.

Michael Jones, Senior Director of Engineering from the Capital One team, says the following about their experiences with Flutter:

"We are excited by Flutter's unique take on high-performing cross-platform development. Our engineers have appreciated the rapid development promise and hot reload capabilities, and over the past year we have seen tremendous progress in the framework and especially the native integration story.

"Flutter can allow Capital One to think of features not in an 'iOS or Android-first' fashion, but rather in a true mobile-first model. We are excited to see Flutter 1.0 and continue to be impressed with the pace of advancement and the excitement in the engineering community."

At the Flutter Live event today, the popular payment service Square announced two new Flutter SDKs that make it easy to accept payments for goods and services with Flutter, whether in-person using a Square payment reader or by taking payments inside a mobile app. Square demonstrated an example of using their payments SDK using an app from Collins Family Orchards, a family farm that grows and sells fruit in farmers markets around the Pacific Northwest.

The developer of the Collins Family Orchards app, Dean Papastrat, had this to say about his experience:

"I was blown away by the speed of all the animations and transitions in production builds. As a web developer, it was super easy to make the transition to Flutter, and I can't believe I was able to build a fully working app that can take payments in just a week."

Also at Flutter Live, 2Dimensions announced the immediate availability of Flare, a remarkable new tool for designers to create vector animations that can be embedded directly into a Flutter app and manipulated with code. Flare eliminates the need to design in one app, animate in another, then convert all of that to device-specific assets and code.

Animations built with Flare can be embedded into an existing Flutter app as a widget, allowing them to participate in the full compositor and be overlaid with other text, graphical layers or even UI widgets. Integrating in this way frees animations from the 'black box' limitations of other architectures, and allows ongoing collaboration between designers and developers right up to the completion of the app. Such tight integration between Flutter and Flare provides a uniquely compelling offering for digital designers and animators who want to create highly-polished mobile experiences.

Another partner who has bet on Flutter is Nevercode, a fast-growing provider of continuous integration and delivery (CI/CD) tooling for mobile apps. At Flutter Live, they announced Codemagic, a new tool designed specifically for Flutter to make it easy to automate the process of building and packaging Flutter apps for both Android and iOS from a single automation. Available today in beta, Codemagic allows you to select a GitHub repo containing a Flutter project, and with just a few clicks, create continuous build flows that run tests, and generate binary app bundles that you can upload to the Apple and Google Play stores.

We put together a short video to highlight the range and variety of the apps developers have been building with Flutter since the beta:

New Features in Flutter 1.0

Since the first beta, we've been working to add features and polish to Flutter. In particular, we rounded out our support for pixel-perfect iOS apps with new widgets; added support for nearly twenty different Firebase services; and worked on improving performance and reducing the size of Flutter apps. We've also closed out thousands of issues based on feedback from the community.

Flutter also includes the latest version of the Dart platform, 2.1, an update to Dart 2 that offers smaller code size, faster type checks, and better usability for type errors. Dart 2.1 also has new language features to improve productivity when building user experiences. Developers who have already adopted Dart 2.1 tell us they're seeing significant speed improvements just by switching to the latest engine:

While the primary focus of the 1.0 release is bug fixes and stabilization, we're also introducing previews of two major new features for developers to try out in preview mode that we anticipate will ship in our next quarterly release in February 2019: Add to App and platform views.

Add to App

When we first built Flutter, we focused on productivity for the scenario where someone is building a new application from scratch. But of course, not everyone has the luxury of being able to start with a clean slate. Talking to some of our larger customers, it was clear that they wanted to use Flutter for new user journeys or features within an existing application, or to convert their existing application to Flutter in stages.

The architecture of Flutter supports this model well: after all, every Flutter app includes a host Android and iOS container. But we've been working to make it easier to incrementally adopt Flutter by updating our templates, tooling and guidance for existing apps. We've made it easier to share assets between Flutter and host code. And we've also reworked the tooling to make it easy to attach to an existing Flutter process without launching the debugger with the application.

We will continue to work to make this experience even better. Even though a number of customers are already using our guidance on Add to App successfully, we're continuing to add samples and expand support for complex scenarios. In the meantime, our instructions for adding Flutter to existing apps are on our wiki, and you can track the remaining work on the GitHub project board.

Platform Views

While Add To App is useful as a way to gradually introduce Flutter to an existing application, sometimes it's useful to go the other way round and embed an Android or iPhone platform control in a Flutter app.

So we've introduced platform view widgets (AndroidView and UiKitView) that let you embed this kind of content on each platform. We've been previewing Android support for a couple of months, but now we're expanding support to iOS, and starting to add plug-ins like Google Maps and WebView that take advantage of this.

Like other components, our platform view widgets participate in the composition model, which means that you can integrate it with other Flutter content. For example, in the screenshot above, the floating action button in the bottom right corner is a Flutter widget that has background color with 50% alpha. This demonstrates the unique architectural advantages of Flutter well.

While this work is ready for developers to try out, we're continuing to work on improving performance and device compatibility, so we recommend caution if deploying apps that depend on PlatformViews. We're continuing to actively optimize platform views and expect them to be ready for production in time for our next quarterly update.

Flutter Beyond Mobile

The primary target for Flutter has so far been iOS and Android. Yet our ambitions for Flutter extend beyond mobile to a broader set of platforms. Indeed, from the outset Flutter was architected as a portable UI toolkit that is flexible enough to go wherever pixels are painted.

Some of this work has already been taking place in the open. Flutter Desktop Embedding is an early-stage project that brings Flutter to desktop operating systems including Windows, MacOS, and Linux. We also recently published informal details of using Flutter on Raspberry Pi, as a way to demonstrate Flutter embedding support to smaller-scale devices that may not include a full desktop environment.

This week, at Flutter Live, we gave the first sneak peek of an experimental project we're working on in the labs that significantly expands where Flutter can run.

Hummingbird is a web-based implementation of the Flutter runtime that takes advantage of the capability of the Dart platform to compile not just to native ARM code but also to JavaScript. This enables Flutter code to run on the standards-based web without change.

We have a separate blog article on Medium that describes the technical implementation details of Hummingbird. And we'll have a lot more to share on Hummingbird at Google I/O in 2019: hope to see you there!

Of course, mobile remains our immediate priority, and you can expect to see the bulk of our investment in these core mobile scenarios over the coming months.

Conclusion

With the release of Flutter 1.0, we've established a new 'stable' channel, in addition to the existing beta, dev, and master channels. The stable channel updates less often than other channels, but we have a higher confidence in its quality since builds have already been vetted through the other channels. We anticipate that we'll update our stable channel on a quarterly basis with our most battle-tested builds.

You can download Flutter 1.0 from our website at https://flutter.io, where you can also find documentation for developers transitioning from other frameworks, code labs, a cookbook of common samples, and technical videos.

We owe a particular debt to the early adopters who have joined us on the journey so far, providing feedback, identifying issues, creating content, and generally shaping the product. The Flutter community is one of our greatest assets as a project: a welcoming, diverse, helpful group of individuals who volunteer selflessly because they also care about this open source project. Thank you!

Flutter is ready for you. What will you build?

Introduction to Fairness in Machine Learning

Posted by Andrew Zaldivar, Developer Advocate, Google AI

A few months ago, we announced our AI Principles, a set of commitments we are upholding to guide our work in artificial intelligence (AI) going forward. Along with our AI Principles, we shared a set of recommended practices to help the larger community design and build responsible AI systems.

In particular, one of our AI Principles speaks to the importance of recognizing that AI algorithms and datasets are the product of the environment—and, as such, we need to be conscious of any potential unfair outcomes generated by an AI system and the risk it poses across cultures and societies. A recommended practice here for practitioners is to understand the limitations of their algorithm and datasets—but this is a problem that is far from solved.

To help practitioners take on the challenge of building fairer and more inclusive AI systems, we developed a short, self-study training module on fairness in machine learning. This new module is part of our Machine Learning Crash Course, which we highly recommend taking first—unless you know machine learning really well, in which case you can jump right into the Fairness module.

The Fairness module features a hands-on technical exercise. This exercise demonstrates how you can use tools and techniques that may already exist in your development stack (such as Facets Dive, Seaborn, pandas, scikit-learn and TensorFlow Estimators to name a few) to explore and discover ways to make your machine learning system fairer and more inclusive. We created our exercise in a Colaboratory notebook, which you are more than welcome to use, modify and distribute for your own purposes.

From exploring datasets to analyzing model performance, it's really easy to forget to make time for responsible reflection when building an AI system. So rather than having you run every code cell in sequential order without pause, we added what we call FairAware tasks throughout the exercise. FairAware tasks help you zoom in and out of the problem space. That way, you can remind yourself of the big picture: finding the undesirable biases that could disproportionately affect model performance across groups. We hope a process like FairAware will become part of your workflow, helping you find opportunities for inclusion.

FairAware task guiding practitioner to compare performances across gender.

The Fairness module was created to provide you with enough of an understanding to get started in addressing fairness and inclusion in AI. Keep an eye on this space for future work as this is only the beginning.

If you wish to learn more from our other examples, check out the Fairness section of our Responsible AI Practices guide. There, you will find a full set of Google recommendations and resources. From our latest research proposal on reporting model performance with fairness and inclusion considerations, to our recently launched diagnostic tool that lets anyone investigate trained models for fairness, our resource guide highlights many areas of research and development in fairness.

Let us know what your thoughts are on our Fairness module. If you have any specific comments on the notebook exercise itself, then feel free to leave a comment on our GitHub repo.


On behalf of many contributors and supporters,

Andrew Zaldivar – Developer Advocate, Google AI

Meet the Grow with Google Developer Scholarships graduates

Posted by Peter Lubbers, Senior Program Manager, Google Developer Training

In January, as a part of Grow with Google’s ongoing commitment to create economic opportunities for Americans, the Google Developer Scholarship Challenge—hosted in partnership with Udacity—awarded nearly 50,000 scholarships to aspiring developers from a wide range of backgrounds and experience levels.

In April, the 5,000 top performers in the Scholarship Challenge earned scholarships for a full Udacity Nanodegree program. These scholars come from every part of the United States, range in age from the late teens to the late sixties, and vary in experience from beginning to advanced. Despite these differences, they share a desire to strengthen their web and Android development skills, and to grow professionally.

Together, they’ve created nearly 18,000 web and Android apps, and exchanged over 2 million messages on the support channels. Students all across the country have reported new jobs, career advancement, and engagement in community programs as a result of their scholarships.

We’d share every story if we could, as they’re all remarkable. But today, we introduce you to five scholars in particular. Because of their hard work, and what they’ve made of the scholarship opportunity, their lives and careers have changed in dramatic ways. Let’s meet them now.


Tony Boswell

Kansas City, MO

From Missouri Long-Haul Trucker to Web Developer

Tony Boswell was a long-haul truck driver for 14 years. He covered over 1.5 million miles, drove through almost every state in the US, and hauled everything from fresh produce to crude oil. It was steady work, but it required being away from home 320 days out of every year. Tony told us “My wife was home alone and we were living two entirely separate lives.”

Last year, at age 48, Tony decided he had to make a change. Despite not having any transferable skills or relevant work history, he believed he could become a developer. He applied to the Grow with Google Developer program, and earned the Nanodegree scholarship. It was the right move. Tony completed his Nanodegree program in September, and recently found a full-time position focused on front-end web development. Thanks to the career lessons included in his program, he was able to confidently negotiate a $10,000+ increase in his starting salary offer.

“I am happy to say, thanks to the education, training, and coaching that I received from this program, I have finally completed my transition from the open road and a steering wheel, to accepting the title of Technical Support Specialist — Web Developer. I can truly say that my whole life has changed because of coding.”


Kimberly McCaffery

Virginia Beach, VA

From Virginia Homemaker to Technology Apprentice

Kimberly McCaffery applied for the Grow with Google scholarship to acquire new skills that would help her transition back to the workforce. She is a mother of four, and has been a military spouse and homemaker for over 20 years. She was motivated to apply because she recognized the need to contribute financially to her family:

“Since 1999, we’ve moved 10 times; in the US and overseas. When we got back to Virginia, I returned to the workforce as a substitute teacher. The W2 I received was my first one this century, but, my total pay was less than $500! As my husband approaches retirement, I knew it would help us all if I could shoulder more of the load.“

After completing her Front-End Nanodegree program earlier this fall, Kimberly got a job as a Technology Apprentice at MAXX Potential in Norfolk, Virginia. “I’m so pleased and proud! It's 10 minutes from the kid's school, very flexible, and full of challenges with IT as a service. And there is plenty of room within the company to grow as fast as I want!”



Charles Rowland

Glendive, MT

From unemployed to Software Engineer

After being laid off from a job in Pennsylvania, Charles and his family moved back to his wife’s hometown in rural Montana, where he struggled to find work as a freelancer. It was a very difficult time, and his confidence suffered.

“I fell into major depression. When my phone rang, I had panic attacks because it was people asking for money. Job-wise, there was nothing in our small town.”

Charles had applied for, and earned, a Grow with Google Scholarship, but there didn’t seem to be a single place where he could apply his skills. He was desperate, but one interview changed everything for him:

“In June I applied for a job at the local cable company to do cable installation. In August I finally got called in for an interview. Immediately the CEO asked me why I didn’t apply for their programming position. I never actually saw it. Instead of an interview for an installer job it turned into the first of 2 interviews for a programming job. For the 2nd interview, I loaded up my phone with all the apps I had made during the Android Basics program. In the interview I answered all the standard questions but it was when I pulled my phone out and showed off the applications I made in the Nanodegree program, that I could tell that I nailed it.“

Two days later, they called and offered Charles the job.

“I never imagined I’d end up doing a job like this. My first day was on September 24.”


Anna Scott

Tularosa, NM

Working with Students to Build an Apache Language App

Anna is a Special Education teacher and STEM program coordinator for a middle school in New Mexico. She has a passion for technology, and applied for the Google Developer Scholarship to gain new knowledge and be more helpful to her students and her community.

Anna lives and works near the Mescalero Apache Tribal lands and is now working with her students to develop an Apache language app.

“Students are collecting Apache words and phrases as raw data for the app, and have been working closely with our Apache Language teacher, who is a member of the tribe. Students are designing artwork for the app and are consulting their elders to make it meaningful for Apache people.”

Anna is also having a school-wide drawing contest for the launching icon. During the STEM meetings, students work with Android Studio—they learn how to change the look of their app with XML, and make it do things with Java. “My students are really motivated by this project!”



Lourdes Wellington

Castine, ME

Building A Website for African Widows and Orphans

Lourdes Wellington worked in the information technology field, but in the back of her mind, she harbored a desire to learn software development. She was gearing up to make that transition, when a serious health crisis put a hold on her plans—it was cancer, and survival meant having part of her right arm amputated. Despite the challenge, she was determined to move forward both physically and mentally:

“Losing my arm was a small price to pay considering I did not lose my life. My mental aptitude became stronger and I began to consider how I wanted to move forward in the future with my life.”

Lourdes successfully applied for the Grow with Google scholarship, and with the new skills she learned in her Front-End Nanodegree program, she went looking for a meaningful way to make an impact. She learned about an organization that benefits African widows and orphans, and decided to get involved. She created a website to help increase visibility for the organization, calling attention to their efforts to raise funds so a fish hatchery and fish ponds can be constructed to feed small villages.

“Taking programming classes with Udacity for website development has motivated me to create even more websites for charity.”

It has been an honor and a pleasure to play a small part in the remarkable journeys each of these scholarship students has undertaken since we first met them back in January. We look forward to seeing how each and every graduate puts their new skills to work to advance their lives, their careers, and the world around them!



Recap: Build Actions For Your Community

Posted by Leon Nicholls, Developer Programs Engineer

In March, we announced the "Build Actions for Your Community" Event Series. These events are run by Google Developers Groups (GDG) and other community groups to educate developers about Actions on Google through local meetup events.

The event series has now ended and spanned 66 countries with a total of 432 events. These events reached 19,400 developers with 21% women attendance.

Actions on Google is of interest to developers globally, from Benin City, Nigeria, to Valparaíso, Chile, Hyderabad, India, Košice, Slovakia, and Omaha, Nebraska.

Developers in these cities experienced hands-on learning, including codelabs and activities to design and create Actions for their communities.

Developers consider creating Actions for the Google Assistant as a way of applying machine learning to solve real world problems. Here, for example, are the winners of the #IndiaBuildsActions Campaign:

You can try Meditation Daily to help you relax, English King to learn about grammar, or Voice Cricket to play a game of cricket.

We also got valuable feedback directly from developers about how to improve the Actions on Google APIs and documentation. We learned that developers want to do Actions for feature phones and want the Assistant to support more languages. Developers also asked for more codelabs, more workshops and more samples (subsequently, we've added a 3rd codelab).

It was exciting to see how many developers shared their experiences on social media.

"Event series was impressive, Awesome and amazing. Knowledge well acquired" (Nigeria)

"The experience I had with the participants was unforgettable. Thank you" (Philippines)

It was also very encouraging to see that 76% of developers are likely to build new Actions and that most developers rated the Actions on Google platform better than other platforms.

Thanks to everybody who organized, presented, and attended these events all around the world. For even more events, join a local GDG DevFest to share ideas and learn about developing with Google's technologies. We can't wait to see what kinds of Actions you create for the Google Assistant!

Want more? Head over to the Actions on Google community to discuss Actions with other developers. Join the Actions on Google developer community program and you could earn a $200 monthly Google Cloud credit and an Assistant t-shirt when you publish your first app.

Migrating G Suite extensions from Chrome Web Store to G Suite Marketplace

Originally posted on the Google Cloud Blog by Greg Brosman, Product Manager, G Suite Marketplace

Starting today, we're making it possible for you to access all of your favorite G Suite extensions in one place by bringing add-ons and web apps from the Chrome Web Store into the G Suite Marketplace.

If you're not familiar with the G Suite Marketplace, it's the app store for G Suite. Whether you want to boost your productivity, take control of your calendar or do more from within your inbox, you can browse more than a thousand options to customize how you work in G Suite. IT admins also have the ability to manage access and controls of apps from within the G Suite Marketplace—like whitelisting app access for users or installing an app for an entire domain (read more about best practices here). If you're an admin, you can access the marketplace from within the Admin console (Go to Tools > G Suite Marketplace).

How to migrate existing apps if you're a developer

Going forward, new G Suite extensions will be listed only on the G Suite Marketplace to make it easier for you to manage your listings. This includes all G Suite apps with add-ons, like Docs, Sheets and Drive. If you have existing apps listed on the Chrome Web Store, you'll have 90 days to migrate them. Here are specific instructions for editor add-ons, Drive v3 apps, and Drive v2 apps to get that process started. Ratings and reviews will be included in the migration, and existing users will continue to be able to use their apps.

We look forward to seeing your apps on G Suite Marketplace!

Sean Medlin: A ‘Grow with Google Developer Scholarship’ Success Story

Originally published on the Udacity blog by Stuart Frye, VP for Business Development

This deserving scholarship recipient overcame incredible odds to earn this opportunity, and he's now on the path to achieving a career dream he's harbored since childhood!

Sean Medlin is a young man, but he's already experienced a great deal of hardship in his life. He's had to overcome the kinds of obstacles that too often stop people's dreams in their tracks, but he's never given up. Sustained by a lifelong love for computers, an unshakeable vision for his future, and a fierce commitment to learning, Sean has steadfastly pursued his life and career goals. He's done so against the odds, often without knowing whether anything would pan out.

Today, Sean Medlin is a Grow with Google Developer Scholarship recipient, on active duty in the US Air Force, with a Bachelor of Computer Science degree. He's married to a woman he says is "the best in the world" and he's just become a father for the second time. It's been a long journey for a boy who lost his sister to cancer before he'd reached adulthood, and whose official education record listed him as having never made it past the eighth grade.

But Sean keeps finding a way forward.

The experience of getting to know people like Sean is almost too powerful to describe, but experiences like these are at the heart of why the Grow with Google Developer Scholarship is such an impactful initiative for us. It's one thing to read the numbers at a high level, and feel joy and amazement that literally thousands of deserving learners have been able to advance their lives and careers through the scholarship opportunities they've earned. However, it's an entirely different experience to witness the transformative power of opportunity at the individual, human level. One person. Their life. Their dreams. Their challenges, and their successes.

It's our pleasure and our honor to introduce you to Sean Medlin, and to share his story.

You've spoken about your love for computers; when did that begin?

When I was around eight or nine, I inherited a computer from my parents and just started picking it apart and putting it back together. I fell in love with it and knew it was something I wanted to pursue as a career. By the time I reached the seventh grade I decided on a computer science degree, and knew I was already on the path to it—I was top of math and science in my class at that point.

And then things changed for your family. What happened?

My sister, who was just a year old at the time, was diagnosed with cancer; stage four. For the next several years, she fought it, and at one point beat it; but unfortunately, it came back. When she relapsed, she started receiving treatments at a research hospital about eight hours from where we lived. Because of this, our family was constantly separated. My brothers and I usually stayed at family and friend's houses. Eventually, my parents pulled us out of school so we could travel with them. We stayed at hotels or the Ronald McDonald house, really wherever we could find a place to stay. We eventually moved to Memphis, where the hospital is located. During all of this, I was homeschooled, but I really didn't learn a whole lot, given the circumstances. When my sister passed away, our family went through a terrible time. I personally took it hard and became lackadaisical. Eventually, I decided that regardless of what wrenches life was throwing me, I would not give up on my dream.

So you were still determined to further your education; what did you do?

Well, in what was my senior year, I decided to start thinking about college. I started googling, and the first thing I discovered is that I needed a high school diploma. So I found my way to the education boards in Oklahoma. I learned that I was never properly registered as a homeschool student. So my record shows that I dropped out of school my eighth grade year. I was pretty devastated. My only option was to go and get my GED*, so that's what I did.

Computer science was still your passion; were you able to start pursuing it after earning your GED?

Well, I had to take a lot of prerequisites before I could even start a computer science degree. I mean, a lot! Which was frustrating, because it took more money than I had. I tried applying for financial aid, but I wasn't able to get very much. I looked like an eighth grade dropout with a GED. That's all anyone saw.

So you found another way to pay for your schooling; what was that?

I decided to join the United States Air Force. I couldn't pay for my own education anymore, and the Air Force was offering tuition assistance. That was the best option I had. I have no military history in my family, and at first my friends and family were against the idea, worried I'd be overseas too much. But I was determined I was going to finish school and get my computer science degree and work in this field.

It sounds like the work you started doing in the Air Force wasn't really related to your desired career path, but you were still able to continue your education?

That's right. The career path I joined was supposedly tech-related, but it wasn't. I enlisted as a munition systems technology troop, or in other words, an ammo troop. It wasn't really in line with my goals, but the tuition assistance made it possible for me to keep studying computer science online. There was a tuition assistance cap though, and between that, and how much my supervisors were willing to approve, I was only able to take two classes per semester. But I kept plugging away, even using my own money to pay for some of it. It took me eight years while working in the Air Force, but I completed my computer science degree last March. I finished with a 3.98 GPA and Summa Cum Laude, the highest distinction!

That's an outstanding accomplishment, congratulations! Did you feel ready to enter the field and start working at that point?

Not at all! I definitely learned that I wasn't prepared for the programming world based just off my bachelor's degree. It taught me all the fundamentals, which was great. I learned the theory, and how to program, but I didn't really learn how to apply what I'd learned to real-world situations.

You'd had a great deal of experience with online learning by that point; is that where you went looking to determine your next steps?

Yes! I tried everything. I did some free web development boot camps. I discovered Udemy, and tried a bunch of their courses, trying to learn different languages. Then I found Udacity. I started off with free courses. I really fell in love with Java, and that's what initially brought me to Udacity's Android courses. The satisfaction of making an app, it just pulled me in. It was something I could show my wife, and my friends. I knew it was what I wanted to pursue.

And then you heard about the Google Scholarship?

Well, I was actually working out how I was going to pay for a Nanodegree program myself when the scholarship opportunity emerged. I applied, and was selected for the challenge course. I knew when I got selected, that I only had three months, and that they were going to pick the top 10 percent of the students, after those three months were up, to get the full scholarship. My son was only about a year old then, and my wife became pregnant again right when I found out about the scholarship. I told her, "I'm going to knock this course out as fast as possible. But I need you to help me buckle down." She took care of my son as much as possible, and I finished the challenge course in about two weeks. I was determined. I wanted to show I could do it. Afterwards, I became one of the student mentors and leaders, and constantly stayed active in the channels and forums. I just did as much as I could to prove my worth.

Those efforts paid off, and you landed a full Google Scholarship for the Android Basics Nanodegree program. And now you have some good news to share, is that right? Yes, I successfully completed the Android Basics Nanodegree program on July 29th!

How are you approaching your career goals differently now?

Well, completing the projects in my Nanodegree program really improved my confidence and performance in technical interviews. When I first graduated with my bachelor's degree, I applied for a few jobs and went through a couple technical interviews. I felt completely lost, and became nervous about doing them going forward. Once I completed the Nanodegree program, I went through another technical interview and felt so prepared. I knew every answer, and I knew exactly what I was talking about.

As it turns out, you've actually earned new opportunities ​within​ the Air Force. Can you
tell us about that?

The base I'm at is considered an IT hub for the Air Force, and the Air Force recently decided to start building mobile apps organically, utilizing our service members. Soon after this was decided, senior leadership began searching for the best and brightest programmers to fill this team. I was not only recommended, but they looked over my projects from the Nanodegree program, and deemed I was one of the most qualified! Normally, opportunities like this are strictly prohibited to anyone outside the requested Air Force specialty code, so I wasn't getting my hopes up. That restriction didn't stop senior leadership. As of right now, I'm part of the mobile app team, and the only ammo troop developing mobile apps for the Air Force, in the entire world!

So what does the future hold for you next?

I feel like the last 15 years of my life have been leading up to where I'm at now. I want to pursue a job as a software developer—an Android developer, in Silicon Valley! Ever since I was a kid, I've had the dream of being a developer at Blizzard. I was a huge World of Warcraft nerd during my homeschooled years. However, I'm okay if I fall a little short of that. I really just want to be surrounded by other programmers. I want to learn from them. It's what I've always wanted. To become a programmer. The idea of leaving the military is really scary though. The thought of not being able to get a job … it's scary, it's a lot of different emotions. But my aspiration is to become a full-time software developer for a big tech company, in a nice big city.

How does your wife feel about all of this?

My wife is the best woman in the world. She wants to follow me wherever the wind takes us. She's very proud of me, and I'm very proud of her too. She does a lot. I wouldn't be able to do what I do without her. That's for sure.

I think I speak for everyone at Udacity when I say that no one here has any doubt you'll achieve whatever you set out to achieve!

It's often said that hindsight is 20/20, and in hindsight, it's tempting to say we helped create the Grow with Google Developer Scholarship just for people like Sean. To say that, however, would be doing a disservice to him. His journey, and his accomplishments, are unique. The truth is, we didn't know who we'd meet when we launched this initiative. Yet here we are today, celebrating all that Sean has accomplished!

To have played a role in his story is an honor we couldn't have predicted, but it's one we'll treasure always.

Sean, congratulations on your success in the scholarship program, and for everything you've achieved. Whether you elect to stay in the military, or make your way to California with your family, we know you'll continue to do great things!

Growing Careers and Skills Across the US

Grow with Google is a new initiative to help people get the skills they need to find a job. Udacity is excited to partner with Google on this powerful effort, and to offer the Developer Scholarship program.

Grow with Google Developer scholars come from different backgrounds, live in different cities, and are pursuing different goals in the midst of different circumstances, but they are united by their efforts to advance their lives and careers through hard work, and a commitment to self-empowerment through learning. We're honored to support their efforts, and to share the stories of scholars like Sean.

Elevating user trust in our API ecosystem

Posted by Andy Wen, Group Product Manager

Google API platforms have a long history of enabling a vibrant and secure third-party app ecosystem for developers—from the original launch of OAuth which helped users safeguard passwords, to providing fine-grained data-sharing controls for APIs, to launching controls to help G Suite admins manage app access in the workplace.

In 2018, we launched Gmail Add-ons, a new way for developers to integrate their apps into Gmail across platforms. Gmail Add-ons also offer a stronger security model for users because email data is only shared with the developer when a user takes action.

We've continually strengthened these controls and policies over the years based on user feedback. While the controls that are in place give people peace-of-mind and have worked well, today, we're introducing even stronger controls and policies to give our users the confidence they need to keep their data safe.

To provide additional assurances for users, today we are announcing new policies, focused on Gmail APIs, which will go into effect January 9, 2019. We are publishing these changes in advance to provide time for developers who may need to adjust their apps or policies to comply.

Of course, we encourage developers to migrate to Add-ons where possible as their preferred platform for the best privacy and security for users (developers also get the added bonus of listing their apps in the G Suite Marketplace to reach five million G Suite businesses). Let's review the policy updates:

Policies

To better ensure that user expectations align with developer uses, the following policies will apply to apps accessing user data from consumer Google accounts (Note: as always, G Suite admins have the ability to control access to their users' applications. Read more.).

Appropriate Access: Only permitted Application Types may access these APIs.

Users typically directly interact with their email through email clients and productivity tools. Users allowing applications to access their email without their regular direct interaction (for example, services that provide reporting or monitoring to users) will be provided with additional warnings and we will require them to re-consent to access at regular intervals.

How Data May Not Be Used: 3rd-party apps accessing these APIs must use the data to provide user-facing features and may not transfer or sell the data for other purposes such as targeting ads, market research, email campaign tracking, and other unrelated purposes. (Note: Gmail users' email content is not used for ads personalization.)

As an example, consolidating data from a user's email for their direct benefit, such as expense tracking, is a permitted use case. Consolidating the expense data for market research that benefits a third party is not permitted.

We have also clarified that human review of email data must be strictly limited.

How Data Must Be Secured: It is critical that 3rd-party apps handling Gmail data meet minimum security standards to minimize the risk of data breach. Apps will be asked to demonstrate secure data handling with assessments that include: application penetration testing, external network penetration testing, account deletion verification, reviews of incident response plans, vulnerability disclosure programs, and information security policies.

Applications that only store user data on end-user devices will not need to complete the full assessment but will need to be verified as non-malicious software. More information about the assessment will be posted here in January 2019. Existing Applications (as of this publication date) will have until the end of 2019 to complete the assessment.

Accessing Only Information You Need: During application review, we will be tightening compliance with our existing policy on limiting API access to only the information necessary to implement your application. For example, if your app does not need full or read access and only requires send capability, we require you to request narrower scopes so the app can only access data needed for its features.

Additional developer help documentation will be posted in November 2018 so that developers can assess the impact to their app and begin planning for any necessary changes.

Application Review

All apps accessing the Covered Gmail APIs will be required to submit an application review starting on January 9, 2019. If a review is not submitted by February 15, 2019, then new grants from Google consumer accounts will be disabled after February 22, 2019 and any existing grants will be revoked after March 31, 2019.

Application reviews will be submitted from the Google API Console. To ensure related communication is received, we encourage developers to update project roles (learn more) so that email addresses or an email group is up-to-date.

Covered Gmail API Scopes

  • https://mail.google.com/
  • https://www.googleapis.com/auth/gmail.readonly
  • https://www.googleapis.com/auth/gmail.metadata
  • https://www.googleapis.com/auth/gmail.modify
  • https://www.googleapis.com/auth/gmail.insert
  • https://www.googleapis.com/auth/gmail.compose
  • https://www.googleapis.com/auth/gmail.settings.basic
  • https://www.googleapis.com/auth/gmail.settings.sharing

FAQ

How does this apply to my enterprise accounts (G Suite, Cloud Identity)?

These changes only impact consumer Google accounts. G Suite administrators are able to control access to their users' applications.

Which apps need to submit an application?

All apps that request the covered APIs need to submit a review. This includes web, iOS, Android and other native client types.

What are the key dates for application review?

Applications accessing the covered Gmail APIs can apply beginning January 9, 2019 and must submit a review by February 15, 2019. Applications that have not submitted a review may have consumer account access disabled for new users on February 22, 2019 and existing grants revoked by March 31, 2019.

If my app is for use by my enterprise only, do I need to submit a review?

It depends. If all of your users are G Suite account holders, then no. If your users created consumer Gmail accounts, then your app will need to complete a review for your app to access a consumer account.

What if I have several apps, will they all need to be reviewed?

Yes, the application review is based on the Client ID level. Each app accessing the covered API scopes must be submitted for review.

If my app uses a combination of covered and non-covered APIs, how does that impact me?

The app will need to be submitted for review. If it is not, access to all covered API scopes will be disabled for consumer accounts.

As Google announces additional APIs that need to complete an application review, do I need to re-submit for the entire review?

As new policies for APIs are announced, your app will need to be re-reviewed. Any changes made to your app to comply with the policy should enable the review to be completed more efficiently though your app may need to address API-specific policies.

How long will it take to review my app?

The entire process may take several weeks depending on the volume and the number of follow-up questions needed. While your app is being reviewed, no enforcement actions such as disabling the app or revoking access will be taken.

How do I get my review completed faster?

Your review can be completed faster if your review submissions is as detailed and thorough as possible. Please make sure the following are prepared

  • Your app can be accessed and used by our review team with their test accounts.
  • Your app's website is complete, descriptive and includes easy access to the privacy policy.
  • Update your privacy policy to include the "recommended limited use snippet" to be posted here by November 12, 2018.

Why is the security assessment needed?

To keep user data safe, we are requiring apps to demonstrate a minimum level of capability in handling data securely and deleting user data upon user request.

How will the security assessment work?

First, your application will be reviewed for compliance with policies governing appropriate access, limited use, minimum scope. Thereafter, you will use a third party assessor to begin your security assessment. Your app will have the remainder of 2019 to complete the assessment. The assessment fee is paid by the developer and may range from $15,000 to $75,000 (or more) depending on the size and complexity of the application. This fee is due whether or not your app passes the assessment; the fee includes a remediation assessment if needed. If your app has completed a similar security assessment, you will be able to provide a letter of assessment to the assessor as an alternative. More details on the security assessment will be provided by January 9, 2019.

Why is Google asking apps to pay for the security assessment?

The security assessment will be completed by a 3rd party to ensure the confidentiality of your application. All fees are paid directly to the assessor and not to Google. As we've pre-selected industry leading assessors, the letter of assessment your app will receive can be used for other certifications or customer engagements where a security assessment is needed.