Tag Archives: Developer

Data Encryption on Android with Jetpack Security

Posted by Jon Markoff, Staff Developer Advocate, Android Security

Illustration by Virginia Poltrack

Have you ever tried to encrypt data in your app? As a developer, you want to keep data safe, and in the hands of the party intended to use. But if you’re like most Android developers, you don’t have a dedicated security team to help encrypt your app’s data properly. By searching the web to learn how to encrypt data, you might get answers that are several years out of date and provide incorrect examples.

The Jetpack Security (JetSec) crypto library provides abstractions for encrypting Files and SharedPreferences objects. The library promotes the use of the AndroidKeyStore while using safe and well-known cryptographic primitives. Using EncryptedFile and EncryptedSharedPreferences allows you to locally protect files that may contain sensitive data, API keys, OAuth tokens, and other types of secrets.

Why would you want to encrypt data in your app? Doesn’t Android, since 5.0, encrypt the contents of the user's data partition by default? It certainly does, but there are some use cases where you may want an extra level of protection. If your app uses shared storage, you should encrypt the data. In the app home directory, your app should encrypt data if your app handles sensitive information including but not limited to personally identifiable information (PII), health records, financial details, or enterprise data. When possible, we recommend that you tie this information to biometrics for an extra level of protection.

Jetpack Security is based on Tink, an open-source, cross-platform security project from Google. Tink might be appropriate if you need general encryption, hybrid encryption, or something similar. Jetpack Security data structures are fully compatible with Tink.

Key Generation

Before we jump into encrypting your data, it’s important to understand how your encryption keys will be kept safe. Jetpack Security uses a master key, which encrypts all subkeys that are used for each cryptographic operation. JetSec provides a recommended default master key in the MasterKeys class. This class uses a basic AES256-GCM key which is generated and stored in the AndroidKeyStore. The AndroidKeyStore is a container which stores cryptographic keys in the TEE or StrongBox, making them hard to extract. Subkeys are stored in a configurable SharedPreferences object.

Primarily, we use the AES256_GCM_SPEC specification in Jetpack Security, which is recommended for general use cases. AES256-GCM is symmetric and generally fast on modern devices.

val keyAlias = MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC)

For apps that require more configuration, or handle very sensitive data, it’s recommended to build your KeyGenParameterSpec, choosing options that make sense for your use. Time-bound keys with BiometricPrompt can provide an extra level of protection against rooted or compromised devices.

Important options:

  • userAuthenticationRequired() and userAuthenticationValiditySeconds() can be used to create a time-bound key. Time-bound keys require authorization using BiometricPrompt for both encryption and decryption of symmetric keys.
  • unlockedDeviceRequired() sets a flag that helps ensure key access cannot happen if the device is not unlocked. This flag is available on Android Pie and higher.
  • Use setIsStrongBoxBacked(), to run crypto operations on a stronger separate chip. This has a slight performance impact, but is more secure. It’s available on some devices that run Android Pie or higher.

Note: If your app needs to encrypt data in the background, you should not use time-bound keys or require that the device is unlocked, as you will not be able to accomplish this without a user present.

// Custom Advanced Master Key
val advancedSpec = KeyGenParameterSpec.Builder(
    "master_key",
    KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT
).apply {
    setBlockModes(KeyProperties.BLOCK_MODE_GCM)
    setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_NONE)
    setKeySize(256)
    setUserAuthenticationRequired(true)
    setUserAuthenticationValidityDurationSeconds(15) // must be larger than 0
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
        setUnlockedDeviceRequired(true)
        setIsStrongBoxBacked(true)
    }
}.build()

val advancedKeyAlias = MasterKeys.getOrCreate(advancedSpec)

Unlocking time-bound keys

You must use BiometricPrompt to authorize the device if your key was created with the following options:

  • userAuthenticationRequired is true
  • userAuthenticationValiditySeconds > 0

After the user authenticates, the keys are unlocked for the amount of time set in the validity seconds field. The AndroidKeystore does not have an API to query key settings, so your app must keep track of these settings. You should build your BiometricPrompt instance in the onCreate() method of the activity where you present the dialog to the user.

BiometricPrompt code to unlock time-bound keys

// Activity.onCreate

val promptInfo = PromptInfo.Builder()
    .setTitle("Unlock?")
    .setDescription("Would you like to unlock this key?")
    .setDeviceCredentialAllowed(true)
    .build()

val biometricPrompt = BiometricPrompt(
    this, // Activity
    ContextCompat.getMainExecutor(this),
    authenticationCallback
)

private val authenticationCallback = object : AuthenticationCallback() {
        override fun onAuthenticationSucceeded(
            result: AuthenticationResult
        ) {
            super.onAuthenticationSucceeded(result)
            // Unlocked -- do work here.
        }
        override fun onAuthenticationError(
            errorCode: Int, errString: CharSequence
        ) {
            super.onAuthenticationError(errorCode, errString)
            // Handle error.
        }
    }

To use:
biometricPrompt.authenticate(promptInfo)

Encrypt Files

Jetpack Security includes an EncryptedFile class, which removes the challenges of encrypting file data. Similar to File, EncryptedFile provides a FileInputStream object for reading and a FileOutputStream object for writing. Files are encrypted using Streaming AEAD, which follows the OAE2 definition. The data is divided into chunks and encrypted using AES256-GCM in such a way that it's not possible to reorder.

val secretFile = File(filesDir, "super_secret")
val encryptedFile = EncryptedFile.Builder(
    secretFile,
    applicationContext,
    advancedKeyAlias,
    FileEncryptionScheme.AES256_GCM_HKDF_4KB)
    .setKeysetAlias("file_key") // optional
    .setKeysetPrefName("secret_shared_prefs") // optional
    .build()

encryptedFile.openFileOutput().use { outputStream ->
    // Write data to your encrypted file
}

encryptedFile.openFileInput().use { inputStream ->
    // Read data from your encrypted file
}

Encrypt SharedPreferences

If your application needs to save Key-value pairs - such as API keys - JetSec provides the EncryptedSharedPreferences class, which uses the same SharedPreferences interface that you’re used to.

Both keys and values are encrypted. Keys are encrypted using AES256-SIV-CMAC, which provides a deterministic cipher text; values are encrypted with AES256-GCM and are bound to the encrypted key. This scheme allows the key data to be encrypted safely, while still allowing lookups.

EncryptedSharedPreferences.create(
    "my_secret_prefs",
    advancedKeyAlias,
    applicationContext,
    PrefKeyEncryptionScheme.AES256_SIV,
    PrefValueEncryptionScheme.AES256_GCM
).edit {
    // Update secret values
}

More Resources

FileLocker is a sample app on the Android Security GitHub samples page. It’s a great example of how to use File encryption using Jetpack Security.

Happy Encrypting!

Google App Maker will be shut down on January 19, 2021

What’s changing 

Due to low usage, Google App Maker will be turned down gradually over the course of 2020 and officially shut down on January 19, 2021. Prior to the shutdown, you’ll need to review App Maker usage in your domain and take any necessary action.

See the Additional details section below for a timeline of the shutdown and alternatives you can deploy in your organization.

Who’s impacted 

Admins, end users, and developers

Why it’s important 

As soon as possible, review your organization’s App Maker applications. App creators should review the uses cases listed in the Additional details section below and take action as necessary by the dates listed in the turndown schedule.

Additional details

Turndown schedule
App Maker will be disabled gradually according to the schedule below:
  • Today, existing apps continue to work. Though App Maker is no longer under active development, the service will continue to be maintained.
  • Starting April 15, 2020, you will no longer be able to create new App Maker apps. You will still be able to edit and deploy existing apps.
  • Starting January 19, 2021, existing App Maker apps will stop working and you will no longer have access to them. App maker data stored in Cloud SQL will remain unchanged and continue to follow the policies established by your Google Cloud Platform (GCP) account.

Alternative solutions
Due to the specific source code used for App Maker, you can’t directly migrate your apps to another platform. Depending on your use case, we recommend the following:
  • If you use App Maker to automate complex business processes: Use AppSheet, a new addition to our application development portfolio that has capabilities similar to App Maker. App Maker data is stored in Cloud SQL, and App Sheet supports Cloud SQL databases. This allows you to build an application on the existing database tied to your App Maker app.
  • If you use App Maker to develop apps: Use App Engine to build and deploy Google Cloud Platform (GCP) applications on a fully managed platform. App Maker data is stored in Cloud SQL, allowing you to build an App Engine application on the existing Cloud SQL database tied to your App Maker app.
  • If you use App Maker for data collection: Use Google Forms, which has many new features that were not available when App Maker launched. 
Deleting apps
If you no longer use apps created with App Maker, please follow these steps to fully delete each app:
Data retention
Your App Maker data belongs to your organization. App Maker user data is stored in CloudSQL and will continue to be retained according to the policies established by your GCP account. Data composing the App Maker app itself is already exported from within the App Maker editor. This export functionality will continue to work until January 19th, 2021.

Getting started 

Admins: We recently emailed the primary admin in your domain and provided a CSV file with a list of the App Maker apps being used in your organization. This list includes the application name, creator name, and last modified date for each app. It also contains a link to your Admin console with application-specific usage stats and project information.
Notify app creators in your domain as necessary of the upcoming shutdown and alternative solutions.

Developer Student Clubs: A Walk That Changed Healthcare

Posted by Erica Hanson, Program Manager

ARUA, UGANDA - Samuel Mugisha is a 23 year old university student with a laugh that echoes off every wall and a mind determined to make change. Recently he heard from a healthcare worker that many children at a local clinic were missing vaccinations, so he decided to take a walk. He toured his community, neighbor to neighbor, and asked one simple question: “Can I see your vaccination card?”

In response he was given dirt stained, wrinkled, torn pieces of paper, holding life or death information - all written in scribble.

He squinted, held the cards to the light, rubbed them on his pant leg, but for no use. They were impossible to read. As Samuel put it, “They were broken.”

From the few cards he could read, Samuel noted children who had missed several vaccinations - they were unknowingly playing the odds, waiting to see if disease would find them.

“Looking through the cards, you could tell these kids had missed several vaccinations.”

Without hesitation, Samuel got right to work, determined to fix the healthcare system with technology.

He first brought together his closest friends from Developer Student Clubs (DSC), a program supporting students impacting their communities through tech. He asked them: “Why can’t technology solve our problem?”

Team photo of Developer Student Club

This newly formed team, including Samuel, Joshwa Benkya and Norman Acidri, came up with a twofold plan:

  1. Create a mobile app to replace the broken cards, so healthcare workers can clearly track which vaccines their young patients have received.
  2. Create a notification to alert healthcare workers when a child is due for a new vaccination.

The idea came together right as Developer Student Clubs launched its first Solution Challenge, an open call for all members to submit projects they recently imagined. These young developers had to give it a shot. They created a model, filled out an application, and pitched the idea. After waiting a month, they heard back - their team won the competition! Their idea was selected from a pool of 170 applicants across India, Africa, and Indonesia. In other words, everything was about to change.

In a country where talent can go unnoticed and problems often go unsolved, this new team had pushed through the odds. Developer Student Clubs is a platform for these types of bold thinkers. Students who view the issues of their region not simply as obstacles to overcome, but chances to mend their home, build a better life for themselves, and transform the experiences of their people.

The goal of the Solution Challenge, and all other DSC programs, is to educate young developers early and equip them with the right skills to make an impact in their community.

In this case, office space in Uganda was expensive and hard to find. Samuel’s team previously had few chances to all work under the same roof. After winning the challenge, Developer Student Clubs helped them find a physical space of their own to come together and collaborate - a simple tool, but one that led to a turning point. As Samuel described it,

“Developer Student Clubs helped us not be alone and apart from each other while trying to solve this problem. They gave us the space to come together and learn. We could all be in the same room, thinking together.”

Image of developers in classroom

With this new space to work, DSC then brought some of Africa’s best Google Developer Group Leads directly to the young developers. In these meetings, the students were given high-level insights on how to best leverage Android, Firebase, and Presto to propel their product forward. As Samuel put it:

“If we wanted to learn something, they gave us the best expert.”

As a result, the team realized that with the scarcity of internet in Uganda, Firebase was the perfect technology to build with - allowing healthcare workers to use the app offline but “check in” and receive updates when they were able to find internet.

Although the app has made impressive strides since winning the competition, this young team knows they can make it even better. They want to improve its usability by implementing more visuals and are working to create a version for parents, so families can track the status of their child’s vaccination on their own.

While there is plenty of work ahead, with these gifted students and Developer Student Clubs taking each step forward together, any challenge seems solvable.

What has the team been up to recently? From August 5th-9th they attended the Startup Africa Roadtrip, an intensive training week on how best to refine a startup business model.

Indie Games Showcase from Google Play – meet the winners!

Posted by Patricia Correa, Director, Developer Marketing

We just wrapped up the Indie Games Showcase in Europe, Japan & South Korea! Back in March we started our search for some of the newest and most creative indie titles from these regions. The search culminated last week with the celebration of indie developers at events in London, Tokyo, and Seoul, and the selection of the winners from our finalists. Developers from 12 countries traveled to the events and showcased their games to the audience of gamers, industry experts, YouTube creators, and journalists.

The games were on show to the public, who spent several hours trying out their games and voting for their favourites, alongside the Google Play team. The top 10 finalists were then selected, and went on to pitch their games, and compete for big prizes in front of the jury.

collage of event pictures

Now, we are happy to announce the winners from each region! They will be returning home with a prize package that includes promotions on the Google Play Store, consultations with Google teams, Google hardware, and more.

We also want to take this opportunity to congratulate all the other finalists and developers who entered the competition this year. We are impressed by your creativity and passion, and hope you will continue to create amazing experiences for players worldwide.

European illustration with Eiffel Tower and Matryoshka dolls

Europe

logos for the Europe top 3

G30 - A Memory Maze by Ivan Kovalov (Russia)

Ordia by Loju (United Kingdom)

Photographs by EightyEight Games (United Kingdom)


The other finalists as selected by audience and Google Play votes were:

logos for the European top 10

#DRIVE by Pixel Perfect Dude (Poland)

Fly THIS! By Northplay (Denmark)

Golf Peaks by Afterburn (Poland)

Rest in Pieces by Itatake (Sweden)

see/saw by Kamibox (Germany)

STAP by Overhead Game Studio (United Kingdom)

Tesla vs. Lovecraft by 10tons (Finland)

mt.Fuji and other Japanese emblems

Japan

logos for the Japan top 3

Infection - 感染 - by CanvasSoft

MeltLand by 個人

Bear's Restaurant by 個人


The other finalists as selected by audience and Google Play votes were:

logos for the Japan top 10

Lunch Time Fish by SoftFunk HULABREAKS

ReversEstory by 個人

Kamiori - カミオリ by TeamOrigami

キグルミキノコ Q-bit -第一章- by 個人

クマムシさん惑星 ミクロの地球最強伝説 by Ars Edutainment

Girl x Sun - Terasene - Tower defence & Novel game by SleepingMuseum

Persephone by Momo-pi

Korean space needle and temple

South Korea

logos for the South Korea top 3

ROOMS: The Toymaker's Mansion by HandMade Game

Seoul2033: Backer by Banjiha Games

Cartoon Craft by Studio NAP


The other finalists as selected by audience and Google Play votes were:

logos for the South Korea top 10

Hexonia by Togglegear

Hexagon Dungeon by Bleor Games

7Days - Decide your story by Buff Studio

WhamBam Warriors by DrukHigh

Onslot Car by Wondersquad

Maze Cube by IAMABOY

언노운 나이츠 by teamarex

How useful did you find this blog post?

Developer Student Clubs – Apply to be a Lead today. Deadline extended to June 15!

Posted by Erica Hanson, Google Developer Relations

This spring, Google and Developer Student Clubs are looking for new passionate student leaders from universities across the globe!

Developer Student Clubs is a program with Google Developers. Through in-person meetups, university students are empowered to learn together and use technology to solve real life problems with local businesses and start-ups.

Less than two years ago, DSC launched in parts of Asia and Africa where 90,000+ students have been trained on Google technologies; 500+ solutions built for 200+ local startups and organizations and 170+ clubs participated in our first Solution Challenge!

computer shot from up top

Bridging the gap between theory and practical application, Google aims to provide student developers with the resources, opportunities and the experience necessary to be more industry ready.

computer

You may be wondering what the benefit of being a Developer Student Club Lead is? Well, here are a few reasons:

  • Help students grow as developers
  • Gain access to Google technology and platforms at no cost
  • Build prototypes and solutions for local problems
  • Participate in a global developer competition
  • Get invitations to select Google events and conferences
  • Be recognized as a collaborator with Google Developers

Apply to be a Developer Student Club Lead at g.co/dev/dsc.

Deadline to submit applications has been extended to June 15th.

Congratulations to the finalists of the Indie Games Showcase from Google Play

Posted by Patricia Correa, Director, Platforms & Ecosystems Developer Marketing

Google Play Indie Games Showcase Announcements gif

Back in March we opened submissions for the Indie Games Showcase, an international competition for games studios from Europe*, South Korea, and Japan who are constantly pushing the boundaries of storytelling, visual excellence, and creativity in mobile.

We were once again impressed by the diversity and creativity that the indie community is bringing to mobile, and we’re happy to announce the 20 finalists.

Check out the local websites to learn more about the finalists and the events.

European illustration with Eiffel Tower and Matryoshka dolls

Europe

Europe Finalists logos for Indie Games Showcase

AntVentor by LoopyMood (Ukraine)

CHUCHEL by Amanita Design (Czech Republic)

#DRIVE by Pixel Perfect Dude (Poland)

Fly THIS! By Northplay (Denmark)

Fobia by Tapteek (Russia)

G30 - A Memory Maze by Ivan Kovalov (Russia)

Gold Peaks by Afterburn (Poland)

Grayland by 1DER Entertainment (Slovakia)

Hexologic by MythicOwl (Poland)

Lucid Dream Adventure by Dali Games (Poland)

OCO by SPECTRUM48 (United Kingdom)

Ordia by Loju (United Kingdom)

Peep by Taw (Russia)

Photographs by EightyEight Games (United Kingdom)

Rest in Pieces by Itatake (Sweden)

Returner Zhero by Fantastic, yes (Denmark)

see/saw by Kamibox (Germany)

STAP by Overhead Game Studio (United Kingdom)

Tesla vs. Lovecraft by 10tons (Finland)

Tiny Room Stories: Town Mystery by Kiary games (Russia)

mt.Fuji and other Japanese emblems

Japan

Japan Finalists logos for Indie Games Showcase

ALTER EGO by 株式会社カラメルカラム

Infection - 感染 - by CanvasSoft

Jumpion - Make a two-step jump ! by Comgate

Lunch Time Fish by SoftFunk HULABREAKS

MeltLand by 個人

ReversEstory by 個人

キグルミキノコ Q-bit -第一章- by 個人

SumoRoll - Road to the Yokozuna by Studio Kingmo

Escape Game: The Little Prince by 株式会社 Jammsworks

Kamiori - カミオリ by TeamOrigami

Bear's Restaurant by 個人

クマムシさん惑星 ミクロの地球最強伝説 by Ars Edutainment

ゴリラ!ゴリラ!ゴリラ!by Gang Gorilla Games

Girl x Sun - Terasene - Tower defence & Novel game by SleepingMuseum

タシテケス by 個人

Destination: Dragons! by GAME GABURI

Cute cat's cake shop by 個人

Persephone by Momo-pi

Hamcorollin' by illuCalab.

Food Truck Pup: Cooking Chef by 合同会社ゲームスタート

Korean space needle and temple

South Korea

South Korea Finalists logos for Indie Games Showcase

다크타운 - 온라인 by 초콜릿소프트

Bad 2 Bad: Extinction by Dawinstone

셧더펑 : 슈팅액션 by Take Five Games

Cartoon Craft by Studio NAP

Catch Idle by HalftimeStudio

Hexagon Dungeon by Bleor Games

Hexonia by Togglegear

Mahjong - Magic Fantasy by Aquagamez

Maze Cube by IAMABOY

Road to Valor: World War II by Dreamotion Inc.

Onslot Car by Wondersquad

ROOMS: The Toymaker's Mansion by HandMade Game

Rhythm Star: Music Adventure by Anbsoft

7Days - Decide your story by Buff Studio

Seoul2033: Backer by Banjiha Games

Super Jelly Pop by STARMONSTER

UNLINK Daily Puzzle by Supershock

몬스터파크 온라인 by OVENCODE

WhamBam Warriors by DrukHigh

언노운 나이츠 by teamarex

We will welcome all finalists at events in London, Seoul, and Tokyo, where they will showcase their games to an audience of players, press and industry experts, for a chance to win the top prizes.

The events are open to the public, so if you would like to meet these games developers, try out their creations, and help choose the winners, sign up on the regional websites.

Congratulations to all finalists!

* The competition is open to developers from the following European countries and Israel: Austria, Belgium, Belarus, Czech Republic, Denmark, Finland, France, Germany, Italy, Netherlands, Norway, Poland, Romania, Russia, Slovakia, Spain, Sweden, Ukraine, and the United Kingdom (including Northern Ireland).

How useful did you find this blog post?

Indie Games Accelerator – Applications open for class of 2019

https://img.youtube.com/vi/tZdD9l4KmbU/maxresdefault.jpg
Last year we announced the Indie Games Accelerator, a special edition of Launchpad Accelerator, to help top indie game developers from emerging markets achieve their full potential on Google Play. Our team of program mentors had an amazing time coaching some of the best gaming talent from India, Pakistan, and Southeast Asia. We’re very encouraged by the positive feedback we received for the program and are excited to bring it back in 2019.

Applications for the class of 2019 are now open, and we’re happy to announce that we are expanding the program to developers from select countries* in Asia, Middle East, Africa, and Latin America.




Successful participants will be invited to attend two gaming bootcamps, all-expenses-paid at the Google Asia-Pacific office in Singapore, where they will receive personalized mentorship from Google teams and industry experts. Additional benefits include Google hardware, invites to exclusive Google and industry events and more.

Find out more about the program and apply to be a part of it.


* The competition is open to developers from the following countries: Bangladesh, Brunei, Cambodia, India, Indonesia, Laos, Malaysia, Myanmar, Nepal, Pakistan, Philippines, Singapore, Sri Lanka, Thailand, Vietnam, Egypt, Jordan, Kenya, Lebanon, Nigeria, South Africa, Tunisia, Turkey, Argentina, Bolivia, Brazil, Chile, Colombia, Costa Rica, Ecuador, Guatemala, Mexico, Panama, Paraguay, Peru, Uruguay and Venezuela.

Posted by Anuj Gulati, Developer Marketing Manager and Sami Kizilbash, Developer Relations Program Manager

Grow your indie game with Google Play

Posted by Patricia Correa, Director, Platforms & Ecosystems Developer Marketing

Google Play empowers game developers of all sizes to engage and delight people everywhere, and build successful businesses too. We are inspired by the passion and creativity we see from the indie games community, and, over the past few years, we've invested in and nurtured indie games developers around the world, helping them express their unique voice and bring ideas to life.

This year, we've put together several initiatives to help the indie community.

Indie Games Showcase

For indie developers who are constantly pushing the boundaries of storytelling, visual excellence, and creativity in mobile we are announcing today the Indie Games Showcase, an international competition for games studios from Europe*, South Korea and Japan. Those of you who meet the eligibility criteria (as outlined below) can enter your game for a chance to win several prizes, including:

  • A paid trip and accommodation to the final event in your region to showcase your game.
  • Promotion on the Google Play Store.
  • Promotion on Android and Google Play marketing channels.
  • Dedicated consultations with the Google Play team.
  • Google hardware.
  • And more...

How to enter the competition

If you're over 18 years old, based in one of the eligible countries, have 30 or less full time employees, and have published a new game on Google Play after 1 January 2018, you can enter your game. If you're planning on publishing a new game soon, you can also enter by submitting a private beta. Submissions close on May 6 2019. Check out all the details in the terms and conditions for each region. Enter now!

Indie Games Accelerator

Last year we launched our first games accelerator for developers in Southeast Asia, India and Pakistan and saw great results. We are happy to announce that we are expanding the format to accept developers from select countries in the Middle East, Africa, and Latin America, with applications for the 2019 cohort opening soon. The Indie Games Accelerator is a 6 month intensive program for top games startups, powered by mentors from the gaming industry as well as Google experts, offering a comprehensive curriculum that covers all aspects of building a great game and company.

Mobile Developer Day at GDC

We will be hosting our annual Developer Day at the Game Developers Conference in San Francisco on Monday, March 18th. Join us for a full day of sessions covering tools and best practices to help build a successful mobile games business. We'll focus on game quality, effective monetization and growth strategies, and how to create, connect, and scale with Google. Sign up to stay up to date or join us via livestream.

Developer Days

We also want to engage with you in person with a series of events. We will be announcing them shortly, so please make sure to sign up to our newsletter to get notified about events and programs for indie developers.

Academy for App Success

Looking for tips on how to use various developer tools in the Play Console? Get free training through our e-learning program, the Academy for App Success. We even have a custom Play Console for game developers course to get a jump start on Google Play.

We look forward to seeing your amazing work and sharing your creativity with other developers, gamers and industry experts around the world. And don't forget to submit your game for a chance to get featured on Indie Corner on Google Play.

* The competition is open to developers from the following European countries: Austria, Belgium, Belarus, Czech Republic, Denmark, Finland, France, Germany, Israel, Italy, Netherlands, Norway, Poland, Romania, Russia, Slovakia, Spain, Sweden, Ukraine, and the United Kingdom (including Northern Ireland).


How useful did you find this blog post?

Manage workflows and automate processes with the new Google Docs API

What's changing

With the new Docs API, there are more ways to build services that better support your business and improve your workflows. For documents that require consistency, collaboration, and accuracy — like invoices, proposals, contracts, and reports — the API will help automate common word processing tasks with the real-time editing and collaboration of Docs.

Who’s impacted 

Developers 

Why you’d use it 

Some ways you could use this API are: 
  • Create documents automatically 
    •  Use the Docs API to automate document creation, like creating all of the blank invoices you need for a particular quarter with a single click. Documents that require a template, like legal documents or contracts, can be automated based on user input and monitored with the API as well. 
  • Manage workflows 
    • Use the Docs API to add user or system-provided data to a document at various stages of a process. Programmatic edits to the same document over time, or to multiple documents at once, can simplify your workflows. 
  • Sync with your content management systems 
    •  From internal wikis to blog content, you can import and export document details seamlessly between Google Docs your employees are editing and your content management systems. For example, publishing platforms can now allow their customers to compose and collaborate in Docs to drive content to their sites. 

How to get started 

For more information and how to get started, see the Docs API developer site

Additional details 


The Docs API will round out a complete set of APIs across all G Suite editor applications along with the Sheets API and the Slides API


Helpful links 

Availability 

G Suite editions 
Available immediately to all G Suite editions. 

On/off by default? 
The API is available and accessible by default to all G Suite users.

Stay up to date with G Suite launches

Funding 15,000 web and android scholarship in Africa – to provide employable developer skills

Posted by William Florance, Head, Economic Impact Programs

Africa's digital journey is rapidly gaining speed. According to the recent data, over 73 million people came online in Africa for the first time in 2017- that's more than the population of the UK! This means there are now about 435 million people on the continent using the Web to engage, connect and access information online. That's a good thing! But with this growth comes with an increased need to scale efforts to make the Web more relevant and useful to African users. This will require more skilled hands working with individuals and local businesses to develop content and platforms that will support Africa's digital growth.

In July 2017, Google's CEO, Sundar Pichai, announced a pledge to provide digital skills training to ten million people in Africa, and also to provide mobile developer training to 100,000 Africans. Today, in line with that commitment, we're excited to announce the launch of our new Africa Web and Android Scholarship program aimed at providing 15,000 scholarships to developers resident in Africa countries.

Working in partnership with Udacity and Andela, we will be offering 15,000 2-month 'single course' scholarships and 500 6-month nanodegree scholarships to aspiring and professional developers across Africa. The training will be available online via the Udacity training website, and the Andela Learning Community will support the students (in Nigeria and Kenya) through mentorship, in-person meet-ups, and online communities.

In order to access the full nanodegree scholarships, learners will have to complete lessons and quizzes courses being offered under the Udacity single course scholarships (also known as challenge courses) in addition to their active participation and support of classmates in the student community. We will be offering 10,000 scholarships to beginners (with little or no programming experience) and 5,000 to professional developers (with +1 year of experience) spread across Android and mobile web development tracks. The 10,000 beginner scholarships will include Android beginner courses and basic introduction to HTML & CSS; while the 5,000 intermediate scholarships include Android fundamentals for intermediate and building offline web applications courses respectively. Both courses are taught in English through an online program on Udacity open to Africa residence. The top 500 students at the end of the challenge will earn a full Nanodegree scholarship to one of four Nanodegree programs in Android or web development.

The application period closes on April 24th. Interested or want to learn more, visit https://www.udacity.com/google-africa-scholarships?utm_source=devblog