10 let vývoje s Google Apps Script
Dne 19. srpna 2009 byla spuštěna technologie Google Apps Script. Stejně dlouho v této technologii vytváříme aplikace. Při příležitosti 10letého výročí máme připravený seriál nejzajímavějších praktických příkladů pro inspiraci a ⚠️ poprvé otevřený workshop pro veřejnost. Dnes začneme krátkou rekapitulací historie.
Úvod
Google Apps Script je platforma pro automatizaci, integraci a rozšíření (nejen) G Suite aplikací. Vývoj scriptu (či aplikace) probíhá ve webovém prohlížeči a provoz běží v cloudu (řečeno trendy slovem „je serverless”). Velmi dobře byl zvolen i programovací jazyk, protože scripty se píšou v JavaScript a tak je vhodný i pro začátečníky. Marketingoví a PPC specialisté znají tuto technologii hlavně díky automatizaci správy reklam jako Google Ads Scripts.
V AppSatori tuto technologii používáme již od samého začátku a napsali jsme v ní pěknou řádku aplikací (včetně opravdu rozsáhlých!).
Historie
Jak bylo zmíněno v úvodu, Google Apps Script je tu s námi už 10 let. Technologie byla představena o několik měsíců dříve, a to během konference Google I/O. Pro zajímavost — ve stejný čas Google uvedl ještě jeden docela populární produkt Google Wave.
Zrovna v té době jsem dopisoval svoji bakalářskou práci o Google Apps, a tak jsem ještě před odevzdáním stačil vložit jeden odstavec:
“Má podobné chování jako makro v běžných programech. Dovoluje vytvářet vlastní funkce v tabulkovém editoru, zautomatizovat opakující se akce, více propojovat služby mezi sebou (např. zasílat emaily ze seznamu adres v tabulkovém dokumentu) nebo upravovat rozhraní k obrazu svému (rozšiřovat o vlastní ikony či položky v menu). Editace probíhá v jazyku JavaScript, který na rozdíl od běžného použití poběží na serveru, proto DOM operace na klientské části nebudou podporovány. V červnu 2009 bude rozšíření uvolněno pro testování prvnímu tisíci beta testerů.”
Když jsem ten odstavec psal, nenapadlo by mě, že Google Apps Script bude klíčová technologie v budoucí firmě AppSatori. A už vůbec ne, že v roce 2013 budu na tuto technologii nominován jako globální Google Developer Expert (mezi cca 15 lidí celosvětově). A už konec osobní nostalgie!
První online editor na psaní kódu vypadal dost spartánsky a byl dostupný jen v Google Spreadsheetech. Primárním cílem byla manipulace s daty v tabulce pomocí SpreasheetApp, zasílání emailů přes MailApp nebo vytvoření tzv. vlastních inline funkcí.
Postupem času se nabalovaly další funkcionality, např. v roce 2010 byla uvedena galerie vlastních skriptů nahraných od uživatelů. Do tohoto adresáře jsem publikoval svůj první script výpočet vzdálenosti mezi geografickými místy. Hlavní nevýhodou byla slabší kontrola nahrávaných skriptů, takže se zde mohly objevit i nebezpečné kódy. Později Google tuto možnost sdílení skriptů ukončil.
Pokud jste v té době chtěli tvořit uživatelské rozhraní, použili jste třídu UiApp. Všechny elementy grafického rozhraní byly postaveny nad Google Web Toolkit (GWT). Po pravdě to moc pohodlné nebylo, např. uchovávání stavu aplikace bylo takřka nemožné. A to i přesto, že existoval GUI builder (2011), který tuto tvorbu zjednodušoval.
Jak se rozšiřovalo portofilo služeb a jejich zpřístupnění přes API, začal Google integrovat přístupy na tyto služby pomocí tzv. Pokročilých služeb (Advanced services). Jejich hlavní výhodou je zrcadlení API funkcí (co je dostupné v API, je dostupné jako metoda a Google tak nemusel tyto metody třídy kreativně pojmenovávat ve standardních třídách; např. když načtení souboru probíhá v DriveApp jako .getFileById()).
Připojit jste se tak nově mohli např. na Groups API, Domain API (později součástí Admin SDK), Tasks API, Gmail API či Documents List API (dnes Drive API). Mimo jiné se přidávaly třídy pro tvorbu robustnějších skriptů — např. LockService pro jednoduché řízení transakcí, CacheService pro ukládání dat do mezipaměti či PropertiesService jako datové úložiště key:value (např. pro API klíče).
Během roku 2012 byla uvedena služba HTMLService, která umožňovala používat „klasické” HTML pro tvorbu uživatelského rozhraní (tj. využití kombinace s CSS a JavaScriptem na frontendu). V té době to bylo ještě trochu omezené, protože kvůli bezpečnosti se HTML zobrazovalo v security sandboxu Google Caja. Postupem let i toto bylo odebráno, takže nyní můžete používat libovolnou JavaScript knihovnu (např. D3.js, hurá!). Ve stejném roce byla uvedena noSQL databáze ScriptDb. Nakonec byla ukončena ve prospěch užší integrace na Google Cloud Platform (kde například nyní můžete používat mnohem lepší a robustnější noSQL Google Cloud Datastore).
Další rok (2013) byl zase o přidávání nových služeb, konkrétně došlo na YouTube API, Analytics API, Forms API, Drive API (nahradil původní Docslist) či Google+. Pro zajímavost byla přidána i třída Mirror pro tvorbu aplikací/rozhraní pro chytré brýle Google Glass.
V roce 2014 Google šlápnul do integrací a zjednodušil způsob distribuce scriptu od vývojáře k uživatelům. Vytvořil tzv. Add-ons, která vám dovolují nainstalovat si skript do online prostředí (např. Google Tabulek), tak aby byl dostupný ve všech online dokumentech. Google poučen z implementace Galerie skriptu, zprovoznil i proces schvalování před samotným publikováním.
Aby platforma získala ještě více uživatelů, rozhodl se Google zaměřit na profesionální vývojáře a uvedl CLI nástroj node-google-apps-script pro deploy z lokálního počítače. Ten se vyvinul v nástroj clasp, který funguje přes Apps Script API (dříve byl integrován na Drive API).
Google App Maker uvedený v roce 2016 vypadal na první pohled jako zabiják Apps Scriptů. Ve skutečnosti jde primárně o nástroj pro zjednodušený vývoj uživatelského rozhraní, kdy pomocí drag’n’drop vkládate do obrazovky budoucí aplikace widgety (mapu, formulář, menu, tlačítko). Výhodou byla integrovaná real-time databáze (postupně nahrazena Cloud SQL z Google Cloud Platform) nebo snadná a rychla tvorba malé aplikace.
Na klíčovou funkcionalitu (např. generování dokumentů nebo odesílání) je App Maker bohužel méně populární než Google Apps Scripts ze dvou důvodů — byl velmi dlouhou dobu (skoro rok) v uzavřené beta verzi a jako produkt je dostupný pouze v placené verzi G Suite Business. Kolem nástroje se tak nevyvinula silná komunita nadšenců s běžným @gmail.com účty, jako tomu bylo u Apps scriptů. tak jako se to stalo u Apps Scriptů. — , jako tomu bylo u Apps scriptů Je to škoda, protože jde o velmi chytrý nástroj pro tvorbu interní aplikací ve firmách 50+ zaměstnanců.
V roce 2016 se balík aplikací Google Apps přejmenoval nově na G Suite. Název technologie Google Apps Script zůstává bez změny.
Rok 2017 byl dle čínského kalendáře rokem Kohouta. A bezpochyby i rokem Apps Scriptů. Na konferenci Google Next bylo několik přednášek o Apps Scriptech. Byla představena podpora Slides API a Sheets API (pozor neplést — Apps Scripty mají od začátku integrovanou službu SpreadsheetApp která funguej od začátku bez změny. A předchozí API pro Google Tabulky běželo kompletně na tzv. Google Data Protokolu). Dále k užšímu propojení s Google Cloud Platform došlo při integraci na Stackdriver logování . Konečně taky logy skriptu zůstanou uchovány v cloudu pro zpětnou kontrolu.
Logger.log("Logování do dočasné konzole");
console.log("Logování do cloudové konzole");
Do rodiny rozšíření přibyla možnost tvorby Gmail Add-ons. Kvůli bezpečnosti a zjenodušení se k tvorbě uživatelského rozhraní používá Card Service. Ta nabízí předpřipravené widgety, ze kterých se aplikace seskládá. Pro zajímavost — rozhraní pomocí Card se vytváří později i u Hangout Chat (ro)botů (konkrétně pro tvorbu UI u interaktivníhochatbota)
Minulý rok s rokem letošním byl ve znamení další integrace s Google Cloud Platform. Šlo o propojení na Hangout Chat. Pak můžete vytvářet datové konektory pro Google Data Studio nebo lépe načítat data z/do BigQuery. Navíc vznikl speciální dashboard pro správu skriptů, kde vidíte všechny svoje spouštěče a monitorovat úspěšenost spuštěných skriptů.
Závěr
Toto malé ohlédnutí mi umožnilo si zrekapitulovat nejdůležitější momenty této platformy. Za tu dobu jsme vyvinuli velké množství aplikací, proškolili ještě větší množství uživatelů a provedli i dost konzultací jak správně programovat. V začátcích byl rozvoj trochu živelný, takže některé služby byly nahrazeny jiným přístupem řešení, ale dnes je situace jiná. Jde o robustní a spolehlivou platformu, která je pro Google strategická — má velké provázání na důležité služby (Data Studio v rámci Google Cloud Platform nebo AdWords scripty) a možnost automatizovat služby s víc jak miliardou uživatelů (Gmail, Drive, Fotky).
V rámci 10letého výročí Google Apps Scripts jsme pro vás připravili speciální 🎓 workshop pro začátečníky.
Více najdete na ➡️
Pokud vás zajímají další informace k Google Apps Scriptům, sledujte nás zde na Medium nebo na Twitteru.