App Maker開発スタイルガイド2017/12/21 第一回 App Maker 分科会1
View Slide
中野 達也 (@howdy39)株式会社 TOPGATE 所属エンジニアApp Maker 歴 5ヶ月G Suite 関連システム開発歴 6年自己紹介2
本日の内容31. Application実行アカウントの選択2. アプリを肥大化させない3. Roleで画面を制御4. 初期データ作成5. プロパティエディタではなるべくコードを書かない6. Page:PageのScript は1:1にする7. ショートカットキー8. ブラウザで直接表示せずにGoogleサイトに埋め込む9. 配信前のチェック
1.Application実行アカウントの選択4
User's accountorDeveloper's account5
用途・Quotaの消費に応じて使い分ける6
用途User's account● ユーザーからメールを送信したい● ユーザーのカレンダーに予定を登録したいDeveloper's account● 開発者からメールを送信したい● ユーザーに共有していないスプレッドシートのデータを読み書きしたい7
Quotaの消費 ?8
例えば300通200通300通800通9
メール送信の Quota は1500受信者/日10
超えると11
その結果ユーザーのQuotaを使い切ってしまうとUser's account で動いているものは総て利用不可12
Quota の消費を比較13User’s account×Developer’s account
User's account150通50回操作100回操作50/1500100/150014
Developer'saccount 150通50回操作100回操作0/15000/1500150/150015
Developer’s account の良いところ16
ユーザーのQuotaに依存しないDeveloper’s accountUser’s account17
メール送信の他にはどんな制限がある?18
https://developers.google.com/apps-script/guides/services/quotas19
2.アプリを肥大化させない20
肥大化?21App Maker はグローバルにfunctionを定義していく形→画面(機能)が増えるほど、大量の function が作成される
メンテ不能に22
小さくしましょう例えば・・・申請系のアプリを作りたかったら1. 勤怠系(遅刻・早退・有給)などで1アプリにする2. 1申請ごとに1アプリにする23
アプリ間でデータを共有したいんだけど・・・24
Cloud SQL25
Spreadsheet26
3.Roleで画面を制御27
初期状態は危険Page(画面)を作った直後は誰でも見れる状態(Everyone)28
Page名がわからなければ画面を開けないのでは?29
調べられます30
consoleオプションURL 末尾に ?console=1をつけることで PREVIEW 実行と同様にPage の切り替えプルダウンが表示される31
どうすればいいの?→Roleを作る!32
Role33App Maker でユーザー(メールアドレス)ごとに役割を与える機能
私がよく使うRoleパターン34
オペレーター(データを登録・変更・削除できる権限のある人)OperatorsRoleを作成35
権限ごとにページ名の頭を変える36誰でも見れるページオペレーターが見れるページ管理者が見れるページ
参照権限にRoleを設定37
Admins Roleで隠し画面を作成38
4.初期データ作成39
画面からポチポチ作る?40
やめましょう41
アプリと同階層にデータを定義したスプレッドシートを作る42
初期データはIMPORT DATA FROM SHEETで入れる43
5.プロパティエディタではなるべくコードを書かない44
SCRIPTSの方に書く45
6.Page:PageのScript は1:1にする46
同じ名前で1:147
7.ショートカットキー48
F949
8.ブラウザで直接表示せずにGoogleサイトに埋め込む50
理由その151App Maker のURLは長ったらしい かつアプリ名と関連性がない のでわかりづらいhttps://script.google.com/a/macros/demo.topgate.co.jp/s/AKfycbyGnywT5qMh22WC6cieFQVttbVZ4GJvMQ8QiZqxXggSvb2PcvwyKGwBUQ/exec?
Googleサイトに埋め込むと52
理由その253何らかの理由で「アプリを作り直したい」となったときにURLを再度周知しなくてすむ
9.配信前のチェック54
Production,Staging環境を用意する55
3つの環境561. Production(本番)2. Staging(検証)3. Preview(開発)
動作確認はStaging環境で57
Roleごとに動作確認581. 一般ユーザー2. オペレーター(データを登録・変更・削除できる権限のある人)3. システム管理者
GAを設定59Google Analytics はApp Maker と Googleサイトの両方に埋め込む
最後に60
Qiita の GoogleAppMaker タグをフォローhttps://qiita.com/tags/GoogleAppMaker61