2018 – yet another year in and out of Google Apps Script

For some years now I’ve been writing this annual summary around Christmas time, on how my year in Apps Script has been. I’m very late this year, but it’s been a pretty busy one both for me and for Apps Script. In fact its been the busiest year ever for both of us.

Google Developer Experts (GDE) program

I’ll be referring to a few of my fellow GDES in this article. When I first was invited to join this program some years back, there were only a handful of Apps Script GDE members, today there are 19, which demonstrates the importance that Google are attaching to the G Suite platform.

What’s been happening in Apps Script

The modernization of the Sheets API and the Calendar API, the release of the Slides API  and most recently the Docs API have all opened up many new capabilities for Apps Script regular and advanced services. The Docs API does not yet have an advanced service so you need to go to the API directly, but as with Sheets and Slides, over time you’ll probably see one arriving along with some of the more advanced features being integrated into the regular Apps Script service. Let’s look at a few of the new goodies (and not-so goodies).

Sheets

  • The Charts service has a whole range of new charts, as well as server side rendering for embedded charts
  • The Sheets service has many new formatting (such as banding) and data aggregation (such as pivot table) methods to try to make available to Apps Script most of the things you can do in the UI.
  • Macros are now available in Sheets, which allow you record a set of actions, or import a script and bind it to a shortcut key sequence. The new methods mentioned above would have been required to make Macros possible I imagine. Macros are very popular in Excel (probably why they’ve appeared in Sheet), and were often used a shortcut for learning VBA (badly). Personally I’ve never been a fan, and sensibly, the Apps Script macro code is less visible. Use them with caution.
  • Spreadsheet Developer metadata was enabled in the standard Sheets service. I wrote about this capability when it first appeared in the API a couple of years ago, and is a great tool to keep track of data moving around in sheets when implemented in an add-on

Calendar

There has been a complete revamp of the Calendar API and one of the new capabilities in Apps Script Calendar Advanced Service as a result is Calendar event triggers, which allow you to detect and sync event changes from within Apps Script.

Slides

Missing for many years from apps script was an API to play with Slides. This API finally came out a couple of years ago, and then was integrated into the Slides and Advanced Slide services. Continuing with what now seems the usual strategy of implementing the API, followed by the Advanced service (which simply gives App Script direct access to the underlying API) and the basic service (which properly integrates a simplified access to the underlying API), a huge number of extra capabilities (way too many to list here), have popped up to manipulate slides in the basic Slides service. 

Docs

The Docs API has only just been released, so it is not yet available as an advanced service. It’s initial purpose will of course be to allow access to G Suite documents from other platforms and languages. In the case of Docs, the DocumentApp service was available first, so it’ll probably be a little while  before we see many new things migrating over from this new API to DocumentApp.

Clasp

One of the problems with Apps Script is that the IDE and JavaScript engine is somewhat antiquated (it doesn’t support more modern versions of JavaScript – see here for my analysis of how it works and what it supports), and is not easily integrated with development environments , source control or build toolchains. Clasp allows you to use your favorite local environment to develop, and in conjunction with the Script API, allows you push and pull code to and from Apps Script projects. For developers using multiple platforms, this makes Apps Script a much more professional and viable environment.

Script API

The script API allows you access your Apps Script projects metadata and content and has enabled both clasp and the Apps Script dashboard to be created. For an example of how it can be used see my gasgit project.

DataStudio

DataStudio allows you to build impressive dashboards with minimal effort, and Apps Script can be a data provider to Data Studio using a Data Studio Connector which can be configured using the Apps Script DataStudioApp service. One of the GDES who has been heavily involved in DataStudio since the beginning is Ben Collins

App Maker

AppMaker is an attempt to allow G-Suite business users to create good looking apps with a minimum of coding. It produces nice looking (Material) basic apps, with Cloud SQL as a back end. It has been a few years in the making, and reminds be of a supercharged version of the UI builder at the beginning of Apps Script, when we had ScriptDB as the database. It’s a pity that its limited to business accounts, as the community would be able to do a lot more with it if available to consumer accounts too. One of my fellow GDES, James Ferreira is the champion of Appmaker with his AppMaker university and consultancy service.

Add-ons

Add-ons for Slides, Sheets, Docs and now Gmail have been around for a while, but I and a few others have started to pull back from creating new and maintaining existing add-ons,  (see my post on this), as the (constantly evolving) process around publishing and supporting them is rather onerous for an add-on that is not intended to generate revenue and is provided on an as-is basis. It’s not a bad thing , of course,  as there are some extremely successful and commercial add-ons used by millions produced by experts like Romain Vialard who are setting the standard of what a professional add-on should look like.

The community

We have a strong Apps Script community on GPlus but as you know, Google are closing down GPlus, so we need a new solution to try to keep the community together. Watch this space.

In and out of Google Apps Script

I called this article “2018 – yet another year in and out of Google Apps Script”, because the direction of Apps Script makes it natural to integrate it with other APIS and allows us to  easily wander off in additional directions where Apps Script is simply the core of our activities. GDEs such as Martin Hawksey and Ivan Kutl have been publishing articles on Machine learningGoogle Actions, and Cloud Vision,  Riël Notermans and Romain Vialard have been doing great things with beautiful material design front ends along with Cloud functions and Firebase. Together it shows the strength of the Cloud platform that all these things fit together so easily, and  much credit is due to the common vocabulary that it’s so easy to flit between all these APIS. Google now provide extensive codelabs in most of their platforms, including apps script, so these are well worth a look.

My Year

I continue to publish articles on my site, mainly on Apps Script, but this past year I’ve been working hard on a start-up which has pretty much consumed all my waking hours. At 66, I’m probably the oldest of all the GDES, so it probably took me longer than fresher, more agile minds, but my grounding in the Google cloud platform have accelerated figuring out and creating the things we need for our solution, such things as
  • All things Kubernetes on Google cloud platform
  • Google Spanner/ CockroachDB
  • GraphQL and Apollo
  • VueJs and React
  • Cloud Vision, BigQuery, Machine learning, and other APIS
This year, I’ll be writing up some of this stuff, so you’ll find it of some use if you are interested in any of these platforms and frameworks (in addition to continuing to post Apps Script stuff). 
I’m also hoping that we can recover from collective Brexity insanity that’s been afflicting the UK for the past couple of years, so we can go back to being an open, welcoming, collaborative and less distracted society once more.
See you next year

Author: brucemcp

Leave a Reply

Your email address will not be published. Required fields are marked *