Author Archives: Google Developers

Getting started is the hardest part: Find inspiration with Apps Script samples

Posted by Kara Ireland, Technical Writer & Charles Maxson, Developer Advocate

Google Apps Script is a hosted JavaScript development environment that makes it easy for anyone to build custom business solutions across several Google products. Figuring out where to begin can be a hurdle for such an expansive tool, so we've recently released 10 new inspirational sample solutions to help you get started. These additions bolster the Apps Script documentation, which now hosts more than 30 sample solutions.

Apps Script welcomes developers of all skill levels, from beginners to professionals. We’re consistently impressed with the creative and innovative ways developers have automated business processes with Apps Script–from published add-ons that help millions of users to simple automations that help small teams do big things. People all over the world use Apps Script to make work easier in ways we never could have imagined.

If you’re new to Apps Script, or simply looking for new ideas, we invite you to check out the sample solutions in our documentation.

Here are a few use cases our newest sample solutions address:

Summarize data from multiple sheets

Apps Script project type: Custom function

Coding level: Beginner

Custom functions can reduce spreadsheet complexity by replacing numerous built-in Sheets functions. If you have similarly structured data on multiple sheets in a spreadsheet, you can use this custom function to create a summary of each sheet.

You’ll learn how to programmatically:

  • Iterate through sheets in a spreadsheet to perform custom calculations.
  • Exclude specific sheets from your calculations.
  • Process spreadsheet data using optimized array objects.

Try this solution >>

Upload files to Google Drive from Google Forms

Project type: Automation with an event-driven trigger

Coding level: Beginner

Automations can programmatically perform tasks across Google products and can be set in motion by custom menus, buttons, user actions, or a time-based schedule. Use this automation to simultaneously upload and organize files in Drive using Forms. The customizable sample form includes inputs for the files to upload and how to organize them.

You’ll learn how to programmatically:

  • Implement a trigger to run a script with every form submission.
  • Capture and process user inputs from a form.
  • Organize uploaded files within Drive.

Try this solution >>

Clean up data in a spreadsheet

Project type: Editor Add-on

Coding level: Intermediate

Editor Add-ons are highly customizable and can automate common tasks in Google Docs, Sheets, Slides, or Forms. With this add-on, you can clean up spreadsheet data in Sheets by automatically removing empty rows and columns, cropping the spreadsheet to the edges of the data range, and filling in gaps in the data.

You’ll learn how to programmatically:

  • Use arrays to efficiently identify and delete empty rows and columns.
  • Fill in data gaps without overwriting non-empty cells.
  • Build an Editor Add-on menu that displays under the Extensions menu in Sheets.

Try this solution >>

Schedule meetings from Google Chat

Project type: Google Chat app

Coding level: Intermediate

Google Chap apps provide a conversational interface that lets Chat users interact with services as if the service were a person. Use this Chat app to schedule a meeting in Google Calendar from within a direct message or a space in Chat. You can set specific details for the meeting, such as subject, start time, or duration, or use the default settings for instant meeting scheduling.

You’ll learn how to programmatically:

  • Send a response when a Chat app is messaged or added to a space.
  • Gather user inputs with a custom dialog.
  • Add a new Calendar event and respond in Chat with the event URL.

Try this solution >>

Copy macros to other spreadsheets

Project type: Google Workspace Add-on
Coding level: Intermediate

Google Workspace Add-ons offer a standardized user interface and can be used across several Google Workspace applications. With this add-on, you can automatically copy a script project and attach it to a specified spreadsheet. Though this add-on focuses on Sheets macros, you can use it to copy and share any container-bound script.

You’ll learn how to programmatically:

  • Create a card-based interface for a Google Workspace Add-on.
  • Copy files from a container-bound Apps Script project.
  • Create a new container-bound Apps Script project and add the copied files.

Try this solution >>

Find more samples and connect with us

The above is just a sampling (pun intended) of the solutions we’ve built for our developer community. To get inspired for your next Apps Script project, view all the sample solutions in our documentation. Also, check out the latest feature updates of the Apps Script IDE to help you build quickly and easily.

We’d love to know what you think. To give feedback on a sample, at the top of the documentation page, click Send feedback. For more updates and news about the Google Workspace Platform, subscribe to our developer newsletter.

Announcing the Apps Script connector for AppSheet: Automate workflows for Google Workspace

Posted by Mike Procopio, Senior Staff Software Engineer

This week, we launched the Apps Script connector for AppSheet, which now makes it possible to call Apps Script code functions from a no-code AppSheet app. This greatly extends the abilities of AppSheet apps by letting them access the power that Apps Script provides. For example, an AppSheet app can now use Apps Script to automate workflows with Google Workspace using the Workspace APIs for Drive, Docs, Sheets, and Admin SDK, and more – as well as other Google services like YouTube, Google Analytics, and BigQuery.

Google AppSheet

AppSheet is Google’s platform for building no-code custom apps and workflows to automate business processes. It lets app creators build and deploy end-to-end apps and automations without writing code.


Editing an App Definition in Google Appsheet


Overview of No-Code

Before we dive into the Apps Script connector feature, let’s take a look at what we mean by no-code. No-code platforms like AppSheet enable citizen developers to quickly build apps automatically through data analysis using web-based user interfaces. These are typically built on top of a data source like Google Sheets, MySQL, Salesforce, or other database. Creating these apps doesn’t require a traditional software engineering background; business technologists and analysts with a wide range of skill sets can build apps that make their work easier and more efficient.

In a no-code platform like AppSheet, an app creator uses a web-based editor UI to define how the app should behave, instead of writing specific code to achieve that. They’ll specify things like what the app should do, what data source it's built on, what the data means, what UI the user sees, what events to listen for and what actions to take when they occur, and so on. The app is then deployed in production as an end-to-end, data-driven app with a UI, all without “writing” any actual code. This is all transparent to the end user, who simply sees a standard web or native app.


Why No-Code Works Well

In practice, no-code platforms work very well for a large class of apps. Why? Because many apps are functionally very similar – in particular those that implement internal business processes. These apps share many common traits: A data source for storing data, a concept of a data “record,” UIs and forms to collect and edit data, user-specific views of that data, expressions to define transformations of data, actions to take when data is changed, admin controls to manage permissions, and so on.

For example, consider an app for creating and approving an employee travel request. This app shares many common traits with an app for, say, creating and approving expense reports. In both apps, an employee creates a record which gets reviewed and annotated, users are notified when changes are made, and eventually the request is completed and closed out. Similarly, an internal app for tracking employees’ assigned computer equipment has a lot in common with any generic inventory tracking, fulfillment, and ordering system.

A no-code platform’s challenge is always balancing expressiveness with high-level abstraction. Fortunately, business processes tend to conform to a well-understood core set of expectations around data, data lifecycle, and process. This is why no-code platforms perform well in this space. However, there may be times when the requirements of the app go beyond what a no-code platform can provide. The new Apps Script connector greatly improves the expressiveness (capabilities) of a no-code app – ensuring that the app can grow to accommodate changing requirements or business processes as they evolve.


Google Workspace, Workspace APIs, and Apps Script

Google Workspace is Google’s cloud-based productivity suite, enabling teams of all sizes to connect, create, and collaborate. You may be familiar with many of these apps, like Gmail, Calendar, Drive, Docs, Sheets, Slides, and others. Each of these apps also comes with a powerful developer API that lets app developers programmatically integrate with it. For example, the Drive API allows its users to upload and download files with code, the Gmail API lets apps integrate with its messaging functions, and the Google Docs API allows script-based editing of Google Docs.


Using Google Workspace integrating Chat, Gmail, and document previews


Apps Script is a low-code platform that makes it quick and easy to build business solutions that integrate, automate, and extend Google Workspace. It does this by providing easy-to-use high-level “wrappers” around APIs, enabling custom integrations with Google Workspace and external services. Apps Script also integrates with Google services such as YouTube, Google Analytics, and BigQuery. It is a powerful platform, enabling script authors to implement complex business logic and macros and call external services, for example a third-party vendor’s data exchange system or a machine learning classification service.


Editing a script in the Google Apps Script code editor


Introducing the Apps Script connector for AppSheet

The Apps Script connector for AppSheet, launched this week, ties everything together: AppSheet, Apps Script, Google Workspace, and Google Workspace’s many developer APIs. This integration lets no-code app developers using AppSheet greatly extend the capabilities of their no-code apps by allowing them to call and pass data to Apps Script functions. One way to think about this integration is that it bridges no-code (AppSheet) with low-code (Apps Script). Importantly, the person who writes the Apps Script script doesn’t have to be the same as the no-code AppSheet app creator that calls the script (and often won’t be).

From the Apps Script developer perspective, this opens the door to some important capabilities. One of AppSheet’s biggest benefits is that it allows you to easily deploy an actual end-to-end app with a UI (frontend). With the new ability to call your existing Apps Script code, creating or replacing any existing front-end with a no-code AppSheet app becomes a potentially game-changing option.


Using the Apps Script connector for AppSheet

In AppSheet, configuring this is straightforward and requires no code other than the script itself. The core idea is that the app creator chooses the Apps Script script to call by configuring an AppSheet “Task,” which is an action taken when an AppSheet Automation is triggered.

Such an action typically occurs in the context of a specific data row in AppSheet’s data source; for example, an automation could be triggered when a new data record is created by one of the app’s end users. Finally, the app creator can specify values to pass in to the parameters of the Apps Script function based on values in the active data record.


Editing an Automation Task in Google AppSheet


Here’s how to set this up in five easy steps:

  1. In AppSheet, select the Automation screen, create a new Bot with an associated Event to listen for, and finally and choose the Call a script option for the Task:

    Configuring an AppSheet Automation Task to call an Apps Script function

  2. Then, under “Apps Script Project,” choose the script to call. This code will be created using the Apps Script editor, and will be in App Creator’s Google Drive (it can be shared with them by someone else):

    Choosing the Apps Script Project to call from Google Drive

  3. Once selected, a list of the available functions in the Apps Script project will be shown in the Function name dropdown. Here, choose the function to call from AppSheet.
  4. After the function to call is selected, a list of its parameters — additional data passed in when calling the function – is then shown.

    Displaying the parameters to pass to the logTravelRequestUpdate() Apps Script function

  5. For each function parameter, use the AppSheet Expression Assistant to specify what value to pass for the parameter when the automation is called. An expression can be a simple column in the AppSheet app’s data source, or a more complex function or computation involving multiple columns.

  6. Using the AppSheet Expression Assistant to choose which values to pass to the Apps Script function parameters

Finally, save the Task in the AppSheet Editor using the Save button.

And that’s it! When the automation is triggered (for example, when a user adds a new data row), the AppSheet automation engine will call the specified Apps Script function, passing in the values from the evaluated expressions as function arguments. Details about the function call will be available in the AppSheet Automation Monitor.


Example Code

Here’s a simple example you can try on your own based on a Travel Request Tool AppSheet app shown in the above screenshots. (More examples are also given in the Sample Scripts section below.) The code below is an Apps Script function that adds details about an employee travel request to a Google Docs document simulating an “audit log”. It uses the Google Docs API via the DocumentApp wrapper library available in Apps Script.


 TravelRequestAuditLogger.gs 

function logTravelRequestUpdate(RequestDate, Requestor, Origin, ...) {
var TRAVEL_REQUEST_AUDIT_LOG_DOCID = 'your_docid_here'
var doc = DocumentApp.openById(TRAVEL_REQUEST_AUDIT_LOG_DOCID)
var body = doc.getBody();

var dataParagraph = body.insertParagraph(0, '');
var headerText = dataParagraph.appendText('*** NEW AUDIT LOG ENTRY ***\n');
headerText.setBold(true);

// Add in the audit log entry metadata.
dataParagraph.appendText('New Travel Request Tool audit log entry...\n');

dataParagraph.appendText('RequestDate: ' + RequestDate + '\n');
dataParagraph.appendText('Requestor: ' + Requestor + '\n');
dataParagraph.appendText('Origin: ' + Origin + '\n');

// ... additional values here to append to Google Doc
}

When this function is called, for example from an AppSheet automation when a new travel request is created, text will be added to the Google Docs document based on values passed in from AppSheet. The document will look similar to below when it is updated:


Example Google Docs document output, created from using the Google Docs API in Apps Script with values passed in from AppSheet


Getting Started

We’ve created a list of resources to help you quickly get started and get community support.


Sample Scripts

Here are three sample scripts we’ve created to help you get started.

Sample Google Workspace Project - Create a Doc, Sheet, Slide or send an Email.

Create a Calendar Event - Create a customizable Calendar event.

Send an interactive Chat message - Send a message in Google Chat that opens a link or displays an image.

We’re very excited about this announcement and we can’t wait to see what you build for Google Workspace! To stay in the loop on announcements about AppSheet and the Google Workspace Platform, please subscribe to our developer newsletter.

How is Dev Library useful to the open-source community?

Posted by Ankita Tripathi, Community Manager (Dev Library)


Witnessing a plethora of open-source enthusiasts in the developer ecosystem in recent years gave birth to the idea of Google’s Dev Library. The inception of the platform happened in June 2021 with the only objective of giving visibility to developers who have been creating and building projects relentlessly using Google technologies. But why the Dev Library?

Why Dev Library?

Open-source communities are currently at a boom. The past 3 years have seen a surge of folks constantly building in public, talking about open-source contributions, digging into opportunities, and carving out a valuable portfolio for themselves. The idea behind the Dev Library as a whole was also to capture these open-source projects and leverage them for the benefit of other developers.

This platform acted as a gold mine for projects created using Google technologies (Android, Angular, Flutter, Firebase, Machine Learning, Google Assistant, Google Cloud).

With the platform, we also catered to the burning issue – creating a central place for the huge number of projects and articles scattered across various platforms. Therefore, the Dev Library became a one-source platform for all the open source projects and articles for Google technologies.

How can you use the Dev Library?

“It is a library full of quality projects and articles.”

External developers cannot construe Dev Library as the first platform for blog posts or projects, but the vision is bigger than being a mere platform for the display of content. It envisages the growth of developers along with tech content creation. The uniqueness of the platform lies in the curation of its submissions. Unlike other platforms, you don’t get your submitted work on the site by just clicking ‘Submit’. Behind the scenes, Dev Library has internal Google engineers for each product area who:

  • thoroughly assess each submission,
  • check for relevancy, freshness, and quality,
  • approve the ones that pass the check, and reject the others with a note.

It is a painstaking process, and Dev Library requires a 4-6 week turnaround time to complete the entire curation procedure and get your work on the site.

What we aim to do with the platform:

  • Provide visibility: Developers create open-source projects and write articles on platforms to bring visibility to their work and attract more contributions. Dev Library’s intention is to continue to provide this amplification for the efforts and time spent by external contributors.
  • Kickstart a beginner’s open-source contribution journey: The biggest challenge for a beginner to start applying their learnings to build Android or Flutter applications is ‘Where do I start my contributions from’? While we see an open-source placard unfurled everywhere, beginners still struggle to find their right place. With the Dev Library, you get a stack of quality projects hand-picked for you keeping the freshness of the tech and content quality intact. For example, Tomas Trajan, a Dev Library contributor created an Angular material starter project where they have ‘good first issues’ to start your contributions with.
  • Recognition: Your selection of the content on the Dev Library acts as recognition to the tiring hours you’ve put in to build a running open-source project and explain it well. Dev Library also delivers hero content in their monthly newsletter, features top contributors, and is in the process to gamify the developer efforts. As an example, one of our contributors created a Weather application using Android and added a badge ‘Part of Dev Library’.

    With your contributions at one place under the Author page, you can use it as a portfolio for your work while simultaneously increasing your chances to become the next Google Developer Expert (GDE).

Features on the platform

Keeping developers in mind, we’ve updated features on the platform as follows:

  • Added a new product category; Google Assistant – All Google Assistant and Smart home projects now have a designated category on the Dev Library.
  • Integrated a new way to make submissions across product areas via the Advocu form.
  • Introduced a special section to submit Cloud Champion articles on Google Cloud.
  • Included displays on each Author page indicating the expertise of individual contributors
  • Upcoming: An expertise filter to help you segment out content based on Beginner, Intermediate, or Expert levels.

To submit your idea or suggestion, refer to this form, and put down your suggestions.

Contributor Love

Dev Library as a platform is more about the contributors who lie on the cusp of creation and consumption of the available content. Here are some contributors who have utilized the platform their way. Here's how the Dev Library has helped along their journey:

Roaa Khaddam: Roaa is a Senior Flutter Mobile Developer and Co-Founder at MultiCaret Inc.

How has the Dev Library helped you?

“It gave me the opportunity to share what I created with an incredible community and look at the projects my fellow Flutter mates have created. It acts as a great learning resource.”


Somkiat Khitwongwattana: Somkiat is an Android GDE and a consistent user of Android technology from Thailand.

How has the Dev Library helped you?

“I used to discover new open source libraries and helpful articles for Android development in many places and it took me longer than necessary. But the Dev Library allows me to explore these useful resources in one place.”


Kevin Kreuzer: Kevin is an Angular developer and contributes to the community in various ways.

How has the Dev Library helped you?

“Dev Library is a great tool to find excellent Angular articles or open source projects. Dev Library offers a great filtering function and therefore makes it much easier to find the right open source library for your use case.”



What started as a platform to highlight and showcase some open-source projects has grown into a product where developers can share their learnings, inspire others, and contribute to the ecosystem at large.

Do you have an Open Source learning or project in the form of a blog or GitHub repo you'd like to share? Please submit it to the Dev Library platform. We'd love to add you to our ever growing list of developer contributors!

Use OAuth 2.0 tokens on your website, app, and servers

Posted by Peter Jacobsen, Technical Writer

OAuth 2.0 is an open standard authorization framework for token-based authorization on the internet. An OAuth 2.0 access token is a string that the OAuth 2.0 client uses to make requests to the resource server, and hides the user's identity or other information from the OAuth 2.0 client. Only use access tokens to make requests to the resource server.

Offline refresh tokens

Access tokens periodically expire and become invalid credentials for a related API request. If you requested offline access to the scopes associated with the token, you can refresh an access token without prompting the user for permission, even when the user isn't present.

As a best practice, set the expiration time for refresh tokens for a little longer than the access tokens. For example, if you set the expiration to 30 minutes for an access token, set the refresh token's expiration to 24 hours or longer.

For more information, see Refreshing an access token (offline access).

Online access

Some apps may request that the user reauthenticate after a shorter period of time, which relies on the access token alone rather than a refresh token. These apps have online access as opposed to those that have a refresh token and are considered to have offline access.

For more information, see Refreshing an access token (offline access) and Refresh tokens.

JSON Web Token (JWT) and token expiration

To authenticate to Cloud IoT, each device must prepare a JWT. JWTs are used for short-lived authentication between devices and the MQTT or HTTP bridges.

JWTs are composed of three sections: a header, a payload that contains a claim set, and a signature. The header and payload are JSON objects that are serialized to UTF-8 bytes and then encoded with Base64 URL encoding.

The JWT's header, payload, and signature are concatenated with periods. As a result, a JWT typically takes this form:

{Base64url encoded header}.{Base64url encoded payload}.{Base64url encoded signature}

For more information, see Using JSON Web Tokens (JWTs) and Managing JWT token expiration.

Common token expiration paradigms

There are different policies and strategies that you can use to manage token expiration. You can:

  • Monitor your HTTP responses, look for 401 HTTP responses, and respond accordingly.
  • Check the token's expiration date proactively to determine the validity of the token before you make an HTTP request to the resource server.
  • Combine the previous two strategies to handle expirations where a valid token can expire during the request that causes a 401 HTTP Response.

Google Cloud projects: Tips and best practices

By Peter Jacobsen, Google Technical Writer

Least privilege

Always apply the principle of least privilege when you provide access to Google Cloud resources. The best practice is to grant only the most limited predefined roles or custom roles that meet your needs.

For more information, see Least privilege.

Google Cloud billing alerts

Set up Google Cloud billing alerts for your projects at specified intervals for early warning of usage patterns, and to help reduce costs.

For more information, see Create, edit, or delete budgets and budget alerts.

API quotas

API quotas protect the Google infrastructure from excessive API requests. Traffic is blocked when the level of requests reaches the daily API quota level or a per-user rate limit.

To avoid disruptions due to an API quota level that's too low, set the quota for your app or API appropriately. Note that the lead time for the increase of quotas is one month.

For more information, see API Quotas.

Checklist for production-ready enterprise workloads

Use this checklist to set up scalable, production-ready enterprise workloads. Note that the checklist assumes that you're an administrator with control over your company's Google Cloud resources.

For more information, see Google Cloud setup checklist.

Google Workspace domain ownership of projects

Google Workspace domain ownership of your group's project lets you tie it into a Google Workspace account, rather than have it tied to a personal account.

For more information, see Best practices for planning accounts and organizations.

Identity-Aware Proxy (IAP)

IAP lets you hide your website until you’re ready for people to see it. IAP establishes a central authorization layer for apps accessed by HTTPS, so you can adopt an app-level access-control model rather than use network-level firewalls. When IAP protects an app or resource, only users who have the correct Identity and Access Management (IAM) role can access it through the proxy.

For more information, see Identity-Aware Proxy overview.

Cloud Build

Cloud Build can import source code from a variety of repositories or cloud storage spaces, execute a build to your specifications, and produce artifacts, such as Docker containers or Java archives. You can configure builds to fetch dependencies and run unit tests, static analyzes, and integration tests.

For more information, see Cloud Build.

Useful Google Cloud tools and services

Google Cloud has many tools and services that can help you create and keep your projects in sync, such as:

  • Cloud Build: executes your builds on Google Cloud infrastructure.
  • Google Cloud Deploy: deploys releases continuously to Google Kubernetes Engine.
  • Container Registry: provides a single place for your team to manage Docker images and control access.
  • Artifact Registry: provides a single place for your organization to manage container images and language packages, such as Maven and npm.
  • Cloud Source Repositories: provides a single place for your team to store, manage, and track code.
  • Cloud Deployment Manager: automates the creation and management of Google Cloud resources.

Google Groups for management across projects

Google Groups can help you manage teams across projects, which includes the setup of the group access through IAM. Groups such as project teams, departments, or classmates can communicate and collaborate with Google Groups. If you want to invite a group to an event or share documents with a group, you can send a single email to everyone in the group.

For more information about how to set up a group, see Google Groups.

Watch for Google suggestions

Google provides many useful tips and suggestions for best practices within the context of your work. For example, if you go to a project that you haven't used in a while, you may get a warning like this one:

If you click the link, you see a page that tells you how to apply role recommendations to help you enforce the principle of least privilege to ensure that principals have only the permissions that they actually need. Google offers many suggestions for best practices such as this one, so watch for them as you work.

Here's an example of a useful in-console recommendation that you might see from your billing page:

If you click Learn more, you arrive at a Cloud billing checklist, which is part of a longer billing-specific checklist that you might find useful.

Here's another example found on the API & Services page:

If you click Edit settings, you arrive on a page where you can change the settings.

GDSC India’s Android Study Jams Boost Student Career Outcomes

Posted by Tanvi Somani, Program Manager - Regional Lead, Google Developer Student Clubs, Google Developer Relations India

photo of green Android logo

Android Study Jams, hosted by Google Developer Student Clubs (GDSC) chapters across the globe and in India, leverage peer-to-peer teaching to train a new generation of student Android developers. The program aims to help student developers build their careers and put them on a solid path towards earning an Associate Android Developers Certification. Three students from the GDSC community in India, Amsavarthan Lv, Rishi Balamurugan, and Sanjay S. went the extra kilometer to earn their certifications.

Meet the newly certified Android developers

“From childhood onward, I was inspired by my brother to learn to program. He’s also a certified Android developer,” says Amsavarthan Lv, the GDSC Lead at the Chennai Institute of Technology and a full-stack web and mobile developer. “I used to be amazed by seeing the code and information on his output screen. Over time, I started exploring tech, and I chose my career as a full-stack web and mobile developer.”

Rishi Balamurugan’s father introduced him to coding, and he eventually built an application for his dad's company. A member of GDSC Shiv Nadar University from Bangalore, Rishi was the facilitator for the Android Study Jams on his campus.

Sanjay S. mused he didn’t like technology at first, but a friend introduced him to Android with Java through an online course, which changed the course of his career. Now, he’s a pre-final-year engineering student, specializing in Android and full-stack development, at Sri Ramakrishna Engineering College - Coimbatore Tamil Nadu.

Photo of man in red shirt named Amsavarthan Lv Photo of man in plaid blue shirt named  Rishi Balamurugan Photo of man in black and white checkered shirt named Sanjay S

(Pictured from left to right) Amsavarthan Lv, Rishi Balamurugan, and Sanjay S. each recently earned a certification in Android Development.

Leveling up Android development skills

These three newly certified Android developers completed the program with comprehensive Android development skills and the confidence and preparation to build a career in Android development.

“As an Android developer, I have taken several webinars and workshops through GDSC and other campus programs,” Amsavarthan says. “The course and the content provided in Android Study Jams was a piece of cake for getting started as an Android developer. It had everything from creating basic layouts to implementing a local database.”

“After learning the fundamentals, I heard about this certification and started to prepare,” says Sanjay. “I thought this would help me stand out in my career and boost my confidence.”

After receiving mentorship from the Google Play team on Google Play and Play Academy, the students built simple applications and learned what's involved to deploy to the Google Play Store.

  • YouTube Thumbnail Search App: A solution for users who just want to browse thumbnails and not play the videos shown in the YouTube search list, the application leverages LiveData and ViewModel to handle the UI Logic. Screenshots
  • SimplDo: This application keeps track of your todo list, with options to add, check, update, and delete items. List items are displayed using Recycler view and stored using View Model and Live Data; Jetpack navigation is used to handle navigation between the fragments and pass data. Screenshots
  • Alert'em: An emergency alerter with local helpline numbers, this app’s “Emergency Alerting System” sends an SMS containing the recent call log of the user to their emergency contacts. It uses a flexible constraint layout and a Jetpack Navigation to switch between different screens. Screenshots

Building confidence and career readiness

Open laptop with live Android Study Jam session on the screen

Over 65.5 thousand developers participated in 800+ Android Study Jams in India and emerged with new skills from the Android Basics in Kotlin Course and Appscale academy sessions. Program facilitators could earn Google Developer Profile badges and become Android Educators.

“Android Study Jams helped me to try out new libraries such as Jetpack, DataStore, and WorkManager and showed me how to work in a step-by-step manner,” says Sanjay. “It was organized in such a way that even a beginner can start learning Android easily.”

Amsavarthan, Rishi, and Sanjay took the initiative to gain the skills to pursue employment as full-time Android developers after graduation, and as the program continues, more Android Study Jams participants will be on their way to bright futures.

How to join a Google Developer Student Club and lead or attend an Android Study Jam:

  • If you’re a university student interested in opportunities to learn about Google developer products, including Android Study Jams, sign up for a Google Developer Student Club near you here.
  • Want to make a similar impact on your campus? Sign up to become a Google Developer Student Clubs Lead here.

Google Developer Student Club 2022 Lead applications are open!

Posted by Erica Hanson, Global Program Manager, Google Developer Student Clubs

Image that says become a leader at your university with a photo of students smiling in the top right hand corner

Hey, student developers! If you’re passionate about programming and are ready to use your technology skills to help your community, then you should become a Google Developer Student Clubs Lead!

The application form for the upcoming 2022-2023 academic year is NOW OPEN. Get started at goo.gle/gdsc-leads.

Want to know more? Learn more about the program below.

What are Google Developer Student Clubs?

Google Developer Student Clubs (GDSC) are university based community groups for students interested in Google developer technologies. With clubs hosted in 110+ countries around the world, students from undergraduate and graduate programs with an interest in leading a community are welcome. Together, students learn the latest in Machine Learning, Android App Development, Google Cloud Platform, Flutter, and so much more.

By joining a GDSC, students grow their knowledge in a peer-to-peer learning environment and put theory to practice by building solutions for local businesses and their community.

How will I improve my skills?

As a Google Developer Student Club Lead you will have the chance to…

  • Gain mentorship from Google.
  • Join a global community of leaders.
  • Practice by sharing your skills.
  • Help students grow.
  • Build solutions for real life problems.

How can I find a Google Developer Student Club near me?

Google Developer Student Clubs are now in 110+ countries with 1500+ groups. Find a club near you or learn how to start your own, here.

When do I need to submit the Application form?

We encourage students to submit their forms as soon as possible. You can learn more about your region’s application deadlines, here. Make sure to learn more about our program criteria.

Get Started

From working to solve the United Nations Sustainable Development Goals to combating climate issues, Google Developer Student Club leads are learning valuable coding skills while making a true difference.

As Leads from clubs around the world put it:

  • Lead from Indonesia - “The best way to learn to be a leader is to be a leader itself, and being a GDSC Lead is the best way to do that.”
  • Lead from United Kingdom - “It's an experience that challenges you to critically think about some decisions and come up with creative and innovative new approaches for things that you thought you know about leadership.”
  • Lead from Uganda - “Becoming a GDSC lead has been an amazing opportunity to learn, engage and meet different new people in my life. It was instrumental in my career development.”

We can’t wait to see what our next group of Google Developer Student Club leads will accomplish this year. Join the fun and get started, here.

*Google Developer Student Clubs are student-led independent organizations, and their presence does not indicate a relationship between Google and the students' universities.

Android GDE Maryam Alhuthayfi shares her passion for mobile development with fledgling developers

Posted by Janelle Kuhlman, Developer Relations Program Manager

Emoji of muslim woman wearing hijab

For Women’s History Month, we’re celebrating a few of our Google Developer Experts. Meet Maryam Alhutayfi, Android GDE. The GDE program team encourages qualified candidates that identify as women or non-binary to express interest in joining the community by completing this form.

Android GDE Maryam Alhuthayfi has loved programming since high school, when she learned programming in Visual Studio and basic website development.

“We didn't get much beyond that because there weren’t many Arabic resources,” she says. “That experience got me excited to dig deeper into technology. I wanted to know how the web functions, how software is made, and more about programming languages.”

Maryam studied computer science at university and majored in information systems. For her senior year graduation project, she and her team decided to build an Android application, her first experience with Android. She graduated with honors and landed a job as a web developer, but she kept thinking about getting back to being an Android developer.

She joined Women Techmakers in Saudi Arabia in 2019, when the group launched, to connect with other women in tech to help and support. She got a job as an Android robotics developer and became a co-organizer of GDG Cloud Saudi, her local Google Developer Group. Now Maryam is a senior Android development specialist at Zain KSA, one of Saudi Arabia’s largest telecommunications companies, which she describes as “a dream come true,” and in January 2022, she became an Android GDE.

Maryam is the first Android GDE in the Middle East and the second in North Africa. She contributes to the Android community by speaking about Android and Kotlin development in detail, and software development more generally. She maintains a blog and GitHub repository and gives numerous talks about Android development. She encourages Android developers to use Kotlin and Jetpack Compose, and she describes both as causing a major shift in her Android development path. She started the Kotlin Saudi User Group in 2020.

Maryam regularly mentors new Android developers and gives talks on Android for Women Techmakers and Women Who Code. She encourages Android developers at big companies like Accenture and Careem to join and contribute to the Android community.

Remembering how few Arabic resources she had as a high school student, Maryam creates both Arabic and English content to enrich Android learning resources. “I made sure those resources would be available to anyone who wants to learn Android development,” she says. “Locally, in collaboration with GDGs in Saudi Arabia, we host sessions throughout each month that cover Android, Flutter, and software development in general, and other exciting topics, like data analytics, cyber security, and machine learning.”

She regularly attends the Android developer hangouts led by Android GDE Madona Wambua and Android developer Matt McKenna to learn more and get inspired by other Android developers in the community.

In her full-time job, Maryam is immersed in her work on the official Zain KSA app.

“It’s my job and my team’s job to give our millions of customers the best experience they can have, and I’m pushing myself to the limit to achieve that” she says. “I hope they like it.”

Maryam encourages other new developers, especially women, to share their knowledge.

“Communicate your knowledge–that makes you an expert because people will ask you follow-up questions that might give you different perspectives on certain things and shift your focus on learning new things constantly ” she says. “You serve others by sharing your knowledge.”

Follow Maryam on Twitter at @Mal7othify | Learn more about Maryam on LinkedIn.

The Google Developers Experts program is a global network of highly experienced technology experts, influencers, and thought leaders who actively support developers, companies, and tech communities by speaking at events and publishing content.

The GDE program team encourages qualified candidates that identify as women or non-binary to express interest in joining the community by completing this form.

How an Android developer in Guatemala advocates for women through the Google Developer Groups community

Posted by Rodrigo Akira Hirooka, Regional Lead, Latin America

Getting acquainted with Android career options

Cecilia Castillo loves mobile development. She’s confident that she’d be happy focusing on it for the rest of her career. Cecilia’s career in mobile development began when her friend Adrian Catalan (Director of the Innovation Lab at Galileo University), launched a Google Developer Groups (GDG) chapter in Guatemala and began to teach Android courses.

Up until that point, Cecilia had used technologies like ASPX and Ruby on Rails – and was no stranger to technical concepts, having studied computer science at Galileo University in Guatemala and earned a Master’s degree in information technology, but she was also itching to learn something new in a supportive environment. That’s when she attended a locally organized GDG event. “ I got more involved in GDG meetups and helped organize them, and I learned how to code in Android.”

Woman with long straight hair holding a microphone standing in front of a projector screen giving a presentation

“Mobile experiences are often the first interaction people have with a product or service. An experience on mobile can determine whether someone will love it or hate it, and I think that is a big responsibility and a privilege.”

2013: a pivotal year of community leadership

In time, she found the GDG community helped her feel a sense of camaraderie in the LATAM tech community and in 2013, Cecilia decided to attend Google I/O. She found it “life-changing,” she says, and loved being able to share her enthusiasm for mobile development with more people from all over the world.

That very year, Cecilia began helping plan International Women’s Day back home in Guatemala and helped run the first International Women’s Day (IWD) event there. “It was the start of something exciting. I was always passionate about creating spaces where other women could share their experiences, their talents, and everything technical they were learning,” she says.

She says IWD events make it possible for her to meet women from all over the world who are doing interesting work in technology. In addition, Cecilia says International Women’s Day events and GDG groups create momentum around the idea that women are tech experts and leaders.

Inspiring other female leaders and improving the local programs

Cecilia says she and her planning team try to make their IWD event bigger and better every year, making sure to invite a combination of new speakers and women with more experience who have been giving talks and working in tech for a while.

The Innovation Lab at Galileo University now supports the two-day virtual event, which occurred on March 11-12 this year. This year’s event included student-focused programming to encourage prospective developers to pursue tech careers or apply tech to their interests. Around 70 speakers participated, some from different countries in Latin America and others from Guatemala.

Blue graphic advertising an International Women's Day Event hosted in Guatemala

Cecilia says the university has played an important role to help the GDG chapter achieve its goal of more visibility and reaching a broader audience. Furthermore, Celicila recognized that Evelyn Cruz, lead of the Engineering Education Group at Galileo University, has been instrumental during the planning process.

Looking ahead to new opportunities

“I think it is important to create moments and spaces where we can celebrate and spotlight all the amazing things women are doing,” says Cecilia. “By being part of a bigger network like GDG, we also get to know and learn from talented women from all over Latin America and the world.

Woman in white shirt with long straight hair standing and smiling with a giant Android logo robot

“The GDG community offers a very diverse group of people, and I think this diversity of countries, companies, and expertise adds value for anyone who is involved in these communities.”

Developing those initial Android skills has paid off, as Castillo now serves as a co-organizer for Google Developer Group (GDG) in Guatemala, holds a position as a Women Techmakers ambassador, and works as a Senior Mobile Engineer at PayPal. In this role she works on both Android and iOS platforms and she’s now giving back to the community in so many ways.

Learn more about Google Developer Groups and how to join or start one near you here.

How an Android developer in Guatemala advocates for women through the Google Developer Groups community

Posted by Rodrigo Akira Hirooka, Regional Lead, Latin America

Getting acquainted with Android career options

Cecilia Castillo loves mobile development. She’s confident that she’d be happy focusing on it for the rest of her career. Cecilia’s career in mobile development began when her friend Adrian Catalan (Director of the Innovation Lab at Galileo University), launched a Google Developer Groups (GDG) chapter in Guatemala and began to teach Android courses.

Up until that point, Cecilia had used technologies like ASPX and Ruby on Rails – and was no stranger to technical concepts, having studied computer science at Galileo University in Guatemala and earned a Master’s degree in information technology, but she was also itching to learn something new in a supportive environment. That’s when she attended a locally organized GDG event. “ I got more involved in GDG meetups and helped organize them, and I learned how to code in Android.”

Woman with long straight hair holding a microphone standing in front of a projector screen giving a presentation

“Mobile experiences are often the first interaction people have with a product or service. An experience on mobile can determine whether someone will love it or hate it, and I think that is a big responsibility and a privilege.”

2013: a pivotal year of community leadership

In time, she found the GDG community helped her feel a sense of camaraderie in the LATAM tech community and in 2013, Cecilia decided to attend Google I/O. She found it “life-changing,” she says, and loved being able to share her enthusiasm for mobile development with more people from all over the world.

That very year, Cecilia began helping plan International Women’s Day back home in Guatemala and helped run the first International Women’s Day (IWD) event there. “It was the start of something exciting. I was always passionate about creating spaces where other women could share their experiences, their talents, and everything technical they were learning,” she says.

She says IWD events make it possible for her to meet women from all over the world who are doing interesting work in technology. In addition, Cecilia says International Women’s Day events and GDG groups create momentum around the idea that women are tech experts and leaders.

Inspiring other female leaders and improving the local programs

Cecilia says she and her planning team try to make their IWD event bigger and better every year, making sure to invite a combination of new speakers and women with more experience who have been giving talks and working in tech for a while.

The Innovation Lab at Galileo University now supports the two-day virtual event, which occurred on March 11-12 this year. This year’s event included student-focused programming to encourage prospective developers to pursue tech careers or apply tech to their interests. Around 70 speakers participated, some from different countries in Latin America and others from Guatemala.

Blue graphic advertising an International Women's Day Event hosted in Guatemala

Cecilia says the university has played an important role to help the GDG chapter achieve its goal of more visibility and reaching a broader audience. Furthermore, Celicila recognized that Evelyn Cruz, lead of the Engineering Education Group at Galileo University, has been instrumental during the planning process.

Looking ahead to new opportunities

“I think it is important to create moments and spaces where we can celebrate and spotlight all the amazing things women are doing,” says Cecilia. “By being part of a bigger network like GDG, we also get to know and learn from talented women from all over Latin America and the world.

Woman in white shirt with long straight hair standing and smiling with a giant Android logo robot

“The GDG community offers a very diverse group of people, and I think this diversity of countries, companies, and expertise adds value for anyone who is involved in these communities.”

Developing those initial Android skills has paid off, as Castillo now serves as a co-organizer for Google Developer Group (GDG) in Guatemala, holds a position as a Women Techmakers ambassador, and works as a Senior Mobile Engineer at PayPal. In this role she works on both Android and iOS platforms and she’s now giving back to the community in so many ways.

Learn more about Google Developer Groups and how to join or start one near you here.