■満員御礼!!
本日(10/18)は四半期定例となったGoogle Apps Script勉強会(通称:TokyoGAS)Dayでした♪
今回は過去最大の参加者数で、満員御礼!!
内容も盛りだくさん!!
■目次
1.non-IT女子による初めてのGoogle Apps Scriptプログラミング
2.まもなく公開予定「123MAPS by株式会社らしく」でのGASの使いどころ
3.Google Apps Script&Google Siteでの社内ポータルサイト構築
4.Java Script初心者がGASで業務用のアプリケーションを作ってみた
5.GAS Update
■2.まもなく公開予定「123MAPS by株式会社らしく」でのGASの使いどころ
・Google スプレッドシート+GASがすごい7つのポイント
→ここでは省略
以下のサイトを参考されるといいかもです
http://qiita.com/sucre1008/items/a0b979591fd7374ecd99
(ちょっと変更あるかもですが・・・ by nonIT女子)
・Googleマップに特定の場所を表示できるツール
(活用例)商店街などの店舗紹介サイトへの表示
・GAS利用箇所
1.申込者にテンプレートスプレッドシートとマニュアル自動配布(コピー作成)
2.スプレッドシート内で、住所を緯度経度に変換
3.Googleマップ上に複数の場所を表示するサンプルHTMLの自動作成と保存
4.Googleマップ上にピンが重なった場合に、マップ上でピンを移動→緯度経度を修正
・デモンストレーション
・Q&A
Q:123Mapsを利用するには、Google Apps利用料金も上乗せで支払う必要があるか?
A:GmailアカウントがあればOK
Q:jsonやxmlからデータを持ってくることは可能か
A:可能
■3.Google Apps Script&Google Siteでの社内ポータルサイト構築
<自己紹介>
・面白おじさん (←nonIT女子主観ですww)
・社内SE
・プログラミング経験浅い
<なぜGASなのか?>
・Google Appsを全社的に使用しているので、業務に反映させやすい
・IDEや動作サーバはGoogleが提供してくれるので、ローカル環境を気にせずカジュアルに制作できる
・Googleの各サービスをGASで結び付けられるというコンセプトが好き
<GUI Builder>
・Web画面を構成できる画面。
・2013年10月2日に廃止・・・・・・・・・・・・・
・GUI Builderに頼らない書き方を知る必要あり
<GAS+Googleサイトの開発手順・ポイント>
1.Googleサービスごとに処理を作りきる
-サービス毎にClass分けているので再利用性、メンテナンス性を考慮してコード書く
2.画面回りの記述はdoGet()にまとめる
-複雑な画面構成でなければ、doGet()以下に書き込むと可読性が良い
-まとまって書かれていないと、ソースから画面構成を描きにくくなる
3.各UiInstanceオブジェクトにハンドラを設定して処理とリンクさせる
-オブジェクトにsetId()しておくとハンドラないでオブジェクトにアクセスできる
4.表示確認はテスト環境を用意してデプロイしながら
-バージョン管理→ウェブアプリとして導入→テスト環境のGoogleサイトで表示
<事例紹介>
1.稼働時間集計ツール
-既存の稼働時間集計ツールにインプットするためのツール
-スプレッドシートに稼働時間を集計して表示してくれる
2.備品貸出管理ツール
-備品の貸出をGoogleカレンダーで一元管理するツール
■4.Java Script初心者がGASで業務用のアプリケーションを作ってみた
<要旨>
・GASもJava Scriptも触ったことない人が4か月でアプリ立ち上げ、悪戦苦闘したお話
↓
・つまり、HtmlServiceとScriptDBによるウェブアプリケーション開発に関するお話
<自己紹介>
・元情報部門
<作ったアプリ>
・企業ひみつ(笑)
・開発期間4か月
<最初の地雷>
・リレーショナルデータベースではないので、一意制約・結合などすべて実装する必要あり
・一括更新が面倒
<次の地雷>
・HTMLを細かい部品に分割→画面により呼び出す部品を変える
→Googleドライブに保存し、その後ScriptDBに変更
・butとにかく遅い!!
<3つ目の地雷>
・あまりにアクセスすると、突然ジョブが打ち切られる
→間に1秒空けることが求められる
→それじゃ実務上処理切れない件数が・・・
→バッチ処理系メソッドでも時間切れ・・・・・・・・・
<完成したが>
・表示に20秒以上かかる画面がある
・メンテしにくいデータ構造
<高速化>
1.NATIVEモードの利用
2.枠を作って、中身を入れ替える手法の採用
-スクリプトタグだけ全部渡し、リクエストによってサーバサイドでボディ渡す
⇒表示時間を最大80%削減!!!
<その後>
・フリーワード検索を実装
・とりあえず安定稼働
<教訓まとめ>
・コードのサニタイズを避ける
・ストレージは、速度/使い勝手/保守性のバランスに注意
・連想配列にマスタデータを入れてしまう
→一意制約チェックにも有効
・はじめは小さく始める
・ライブラリの活用
・データストレージ(ScriptDB)
→使えば使うほどレスポンスが悪くなってるような・・・・??
■5.GAS Update
1.GUI Builderの廃止
→but 救済策有
GUI Builderで作成した画面をファイル形式でダウンロード可能
※注意※
ファイルからコード作成は自分でやらなきゃだめ。
jsonなどで変換コードを自分で書く必要あり
UIAppより、HTMLで作成することを推奨
2.スクリプトエディタの新機能
-Ctrl+Rでfunction実行
-上記以外にも、ショートカット実は存在している
【ショートカットまとめ】Qiita
http://qiita.com/soundTricker/items/c9091a63de5401f2d49e
3.8月のUpdate
-スプレッドシートやフォームのデータ入力制限ができるようになった
-DocListAppからDriveAppに移行しつつある
(今後DocsListAppが廃止される可能性もあるため、DriveAppを推奨)
4.9月のUpdate
-ほぼなし^^;
5.10月のUpdate
-スクリプトエディタ以外に、ローカルで(オフラインで)開発できるアプリ公開
・eclipseのプラグインが提供された
・ドライブ上で作成したスクリプトをローカルに作成し、保存する毎に取り込み
※注意※
・Googleサイトやスプレッドシート上で作成したスクリプトは利用不可
・プロジェクト名/ファイル名に日本語が含まれているとエラー
-(公式発表前)フォームでYoutubeを載せられるようになり、GASからも実現可能に
-(公式発表前)スプレッドシートの右側にサイドバー表示が対応可能
-(公式発表前)GASの更新履歴を取得できるようになった
■告知
・今後、Google Apps Script勉強会(発表形式ではなく、座談形式)を月1回程度で開催予定