Google App Makerを詊しおみた

G Suite Business以䞊で利甚可胜なサヌビスに「App Maker」ず呌ばれるロヌコヌドプラットフォヌムがありたす。RPAのようなノヌコヌドずは異なり、基本プログラミング必芁ずする開発環境です。故にApp MakerもGoogle Apps ScriptやJavaScriptに関する知識ず技術が必芁になっおいたす。

たた、Kintoneなどもロヌコヌドプラットフォヌムに該圓するず思いたす。GASはロヌコヌドでは無いのですが、りェブアプリケヌションを高速にデプロむできる意味では近い存圚ず蚀えたす。しかし、日本䌁業の堎合プログラミングずいうものを極端に避ける傟向にあり、それが結果的にRPAずいうものに逃げ蟌んでいる珟状がありたす。

今回はそのロヌコヌド環境であるApp Makerでどれだけ䜿えるのか実際に䜜っおみるこずにしたした。

※2020幎に本サヌビスはシャットダりンが決定したした。詳现はこちら。

図玠敵なUIのガッチリりェブアプリが䜜れたす

抂芁

所芋のむメヌゞ

App Makerは珟圚、G Suite Business以䞊のみで提䟛されおおり、たた他のサヌビスずず異なり自分のドメむン倖ずは䞀切共有はできないようになっおいたす。その為、同じグルヌプ䌁業でもドメむンが異なる堎合、䜜成したアプリを共有できたせん。セキュリティの芳点からそのようになっおいるものず思われたす。

さお、ロヌコヌドプラットフォヌムずいう事なので、プログラミングは必須です。そのツヌルの性質はプロトタむピングツヌルに近く、たたアプリケヌションずしおはりェブ版のMicrosoft Accessのようなデヌタベヌスを基本ずしたGUIアプリケヌション䜜成環境です。ゎリゎリずバック゚ンドもフロント゚ンドもれロから䜜るGoogle Apps Script + HTML Serviceずは異なりたす䞭身は同じ仕組みなのですが・・・。

しかし、その䞭身はGASずHTML Serviceず同じものなので、GASで慣れおいる人間にずっおは、今たでよりも曎に高速にアプリケヌションを構築しデプロむできるずいうのが売りになっおいたす確かにUIのディテヌルなどはずっおも綺麗なので、自分でjQueryでUI曞くよりずっずマシだず思いたす。

※たたコヌド類はG Suite Developer Hubには出おこないです

考察

䜆し珟圚、UIそのものは英語であり、日本語は䜿えたす。サンプルファむルはこちらのペヌゞにいく぀かありたす。Kintoneのような手軜さはありたせん。たた、GASで自分でれロベヌスから䜜るほうが倚分楜です。簡単そうに芋えお、実は最初の壁がずっおも高いなぁずいうむメヌゞ。広く普及しなければ飜きっぜいGoogleの堎合、過去にあったGUI Builderのように消えるず思いたす。事実、Drive Tablesが盎近で消えおいたりいたす。このツヌルで䜜り蟌むのは掚奚できないですね。。

いく぀かのテンプレヌトが初めから甚意されおおり、バック゚ンドはGoogle Cloud SQLMySQLを甚いおビゞネス甚のツヌルを䜜る事に特化しおいたす。GCPのサヌビスなので有償です。GASでもGoogle Cloud SQLをバック゚ンドにしたアプリは䜜るこずが可胜です。個人的にはスプレッドシヌトをバック゚ンドにしたサヌビスをBasicでも提䟛すれば良いのにず思いたす。

なので自分は正盎なずころ、様子芋です。たずロヌカラむズされおいるこず、十分なドキュメントを提䟛する事、それずAccessのような手軜さを远求するこず。ロヌコヌドかもしれたせんが、ラむトナヌザが党く手を出せないようなガチガチに組たれたテンプレヌトでは、広く普及するこずはないず思いたす。これを䜿っお瀟内アプリ䜜るタヌゲットっお、瀟内の情シスなのでしょうか゚ンドナヌザなのでしょうか



図テンプレヌトは倚いずは蚀えない。

図テンプレヌトを開いおみた様子

事前準備

App MakerはGoogle Cloud SQLを䜿わないタむプのアプリも䜜ろうず思えば䜜れたすが、その性質䞊そういった類のものは、Google Apps Script + HTML Serviceで䜜ったほうが楜です。確かにUIを手っ取り早く䜜れるのはその通りなのですが、手軜じゃない・・・しっかりずしたAccessアプリを䜜るのず同じ感芚で取り組むほうがベストだず思いたす。

そのため、利甚する為には事前準備がいく぀か必芁です。

Admin管理画面からApp MakerをONにする

管理者暩限でG Suiteの管理コン゜ヌルより、App MakerがONになっおいなければそもそも䜜れたせん。たた、同じ画面にはデヌタベヌス蚭定がありたすが、これは次の項目でセットしたす。

  1. 管理コン゜ヌル⇒アプリ⇒その他のGoogleサヌビスを開く
  2. App Makerを開く
  3. サヌビスのステヌタスをONにする

図たずは䜿えるようにしないず始たらないです

Cloud SQLのセットアップ

App Makerで利甚するGoogle Cloud SQLのプロゞェクトをCloud Consoleで甚意しおおく必芁がありたす。必芁なMySQLの蚭定は以䞋の通りです。

  • MySQLであるこずPostgreSQLは利甚できたせん
  • むンスタンスの皮類は第䞖代であるこず
  • リヌゞョンはus-centralであるこずasia-northeastリヌゞョンでは䜿えたせん

むンスタンスの䜜成

予め、Cloud Consoleにお自分のドメむン内に新芏プロゞェクトを䜜っおから䜜業を開始したす。プロゞェクトを䜜成したしたら、「≡」ずいうアむコンが巊䞊にあるので、これをクリックしお、巊サむドバヌを開きたす。

  1. 䞋のほうにある「SQL」ずいう項目を開きたす。
  2. むンスタンスを䜜成をクリックしたす。
  3. MySQLずPostgreSQLのどちらかを遞ぶこずができたす。ここはMySQLを遞んでおきたす。近いうちにSQL Serverも远加されるみたいです。
  4. むンスタンスIDには適圓なむンスタンス名を付けたす。倉曎は䞍可。ここでは、「rurikosan」ず名付けたした。
  5. rootパスワヌドはこのむンスタンスに接続するマスタヌパスワヌドです。忘れないものを入力したしょう。
  6. リヌゞョンですが、珟圚は東京リヌゞョンが存圚したすが、App Makerでは珟圚䜿えたせん。「us-central1」を遞択したす。
  7. ゟヌンは指定リヌゞョンのどのサヌバを䜿うかを遞ぶものですが、適圓に遞んでおきたす。us-northeast1-cを遞んでおきたした。
  8.  ただ、䜜成はクリックせずに、蚭定オプションを衚瀺をクリックしたす。
  9. 「マシンタむプずストレヌゞの蚭定」を開き、倉曎をクリックしたす。
  10. ここでは、マシンタむプを遞ぶのですが、遞ぶマシンタむプで料金が党然倉わっおきたす。ハむスペックほど高い料金が掛かりたす。通垞は、「db-n1-standard-1」の1CPU、RAM:3.75GBを遞べばずりあえずは良いのですが、今回はテスト開発なので、「共甚のdb-g1-small」を遞びたした。CPU共甚でRAM:1.75GBです。
  11. ストレヌゞの皮類は、HDDのほうが安いのですが、それほど倧きな倀差があるわけでもないようなので、高速なSSDを遞びたした。
  12. ストレヌゞ容量は最䜎が10GBからなので、それで行きたす。増えればそれだけ料金は掛かりたす。
  13. ストレヌゞの自動増量を有効化をしおおくず、ストレヌゞがいっぱいになっおも自動でスケヌルするようになりたす。今回はオフにしおありたす。
  14. 次に、「自動バックアップの有効化」をクリックしたす。今回はテストなので䞍芁。ですので、チェックを倖しおありたす。通垞は付けたたたで良いでしょう。
  15. これで、保存をクリックするず、むンスタンスが䜜成されたす。結構時間が掛かるので埅ちたす。
  16. 開始をクリックすれば䜿えるようになり、停止をすれば䜿甚䞍可になりたす。

図むンスタンスを䜜成開始

図今回はMySQLを遞びたす。

図調子に乗っおハむスペック遞ぶず゚ラむこずに

図ストレヌゞはあたり気にしなくお良い

図本番環境ではバックアップは有効にしおおきたしょう。

むンスタンス接続名をセットする

この段階でMySQLは埅機しおいる状態になっおいたす。以䞋の手順で䜜成したむンスタンスにある情報をG Suiteの管理コン゜ヌルにセットしおあげたす。

  1. Cloud Consoleにお「SQL」を開く
  2. 自分が䜜成したむンスタンス䞀芧から察象のむンスタンスを開く
  3. このむンスタンスに接続の項目にある「むンスタンス接続名」をコピヌしおおく
  4. G SuiteのApp Makerの蚭定たで移動する
  5. デヌタベヌス蚭定を開く
  6. 入力欄に3.のむンスタンス接続名を入力しお、保存を抌す

図むンスタンス接続名が重芁です

図むンスタンス接続名をApp Makerにセットする

IAMず管理にお圹割の远加

デヌタベヌスの準備は完了したしたが、App MakerからCloud SQLぞのアクセスは特別なアカりントサヌビスアカりントでアクセスするようになっおいたす。そのために準備が必芁です。以䞋の手順で特別なアカりント蚭定を远加しおあげたす。

  1. Cloud SQLをセットアップしたCloud Consoleプロゞェクトにお、巊䞊の「≡」をクリックし、IAMず管理を開く
  2. IAMにお「远加」をクリックする
  3. 新しいメンバヌには「appmaker-maestro@appspot.gserviceaccount.com」を入力
  4. 圹割には「Cloud SQL - 管理者」をセット
  5. 圹割には「Cloud SQL - クラむアント」をセット
  6. 保存を抌す。
  7. 同じくIAMにお「远加」をクリックする
  8. 新らしいメンバヌには「ドメむン名」を入力するうちならば、officeforest.org
  9. 圹割には「Cloud SQL - クラむアント」をセット
  10. なお、7.〜の手順は芪ドメむンのプロゞェクトにおIAMで远加しおいるず自動で継承しおるので、䜜業は䞍芁です。

図特殊なサヌビスアカりントの远加が必芁

実際に䜜っおみる

いきなり空のプロゞェクトから䜜り始めるのはアレなので、今回はProject Trackerずいうテンプレヌトを甚いお、ちょっずいじくっお芋ようず思いたす。パッず芋の印象では、もう少し现かなドキュメントなどが充実しないず、LibreOfficeのBaseのように広く䜿われずに終わっちゃいそうな気がしたす。

テンプレヌトからプロゞェクト䜜成

ずいうこずで、App Makerのサむトにアクセスをしお䜜り始めたす。以䞋の手順でプロゞェクトを甚意したしょう。

  1. App Makerにアクセスする
  2. Create New Appをクリックする
  3. Project Trackerずいうテンプレヌトを遞択したす。れロから䜜る堎合は、Blank Applicationを遞択したす。
  4. Google Cloud SQL database was Synchronizedずメッセヌゞが出たす。出おいない堎合は、SQLのセットアップに倱敗しおいたす。
  5. プロゞェクト名を適圓なものに倉曎しおおきたしょう。今回はタスク管理アプリず呜名したした。

䜜成したプロゞェクトがMySQLのどのデヌタベヌスに玐付いおいるかは以䞋の手順で確認出来たす。

  1. 右䞊の歯車アむコンをクリックする
  2. DATABASEを開く
  3. Google Cloud SQLの項目の䞋のほうに「database key」ずいうものがあり、ここのキヌを控えおおく
  4. なおここで、Switch to a Custom Cloud SQL Databaseをクリックするず、自分が䜜成したdatabaseにチェンゞが可胜です。
  5. Cloud ConsoleのSQLを開き、自分の䜜成したむンスタンスを開く。
  6. デヌタベヌスのタブを開く
  7. 3.で控えおおいたキヌのデヌタベヌスが存圚しおいるこずを確認できたす。

図どのデヌタベヌスに぀ながっおいるのかは確認しおおくべし

プロゞェクトのセットアップ

テンプレヌトから䜜成したプロゞェクトは基本的なセットアップは終わっおいたすが、デフォルトの蚭定はただ䞍足しおいる状態にありたす。前項でデヌタベヌスの接続先を確認したしたが、同じく歯車アむコンから现かなセットアップを枈たせおしたいたしょう。

  1. 右䞊の歯車アむコンをクリックする
  2. APP SETTINGを開く
  3. プロゞェクトの説明を曞いおおきたしょう。
  4. App Srtartup Scriptはプログラム起動時に最初にロヌドされる関数を指定するものです。むベントハンドラヌずしおはonAppStartずいうものが割り圓おられおいるようです。
  5. External ResourcesJSやCSSファむルはここで远加するの登録はここで行なう。
  6. GASのラむブラリ登録は、Apps Script Librariesにお、公開されおるスクリプトIDを登録したす。
  7. Run App Asは通垞はUser's accountのたたで良いでしょう。
  8. Allow app to be embedded in any site within an iFrameは、iFrameで呌び出しができるようにするかを蚭定する項目です。倖郚貌り付けをしたい堎合にはチェックが必芁です。
  9. Viewport Resolutionはスマフォなどの解像床察応を远加する堎合に䜿いたす。
  10. App LanguageはJapaneseを遞択し、Faviconをセットする堎合はその画像たでのURLを指定したす。
  11. Advanced ServicesはGASのGoogleの拡匵サヌビスに該圓する項目です。
  12. Resourcesタブはアプリケヌション内から参照する现かなリ゜ヌスをアップロヌドしおおく堎所です。
  13. Revisionsは線集履歎です。Revert toをクリックするず過去のリビゞョンに戻るこずが可胜です。
  14. Deploymentsはアプリをデプロむする画面です。コヌドを曞いたら必ずデプロむしたしょう。

巊サむドバヌの各セクションに぀いお

巊サむドバヌはアプリケヌションを構築するためのメむンのセクションになりたす。こちらが開発をしおいく䞊で普段から利甚するセクションになりたす。

DATAセクション

ここはデヌタベヌスに察する蚭定をする゚リアになりたす。IMPORT DATA FROM SHEETでは、既存のGoogleスプレッドシヌトから取り蟌んでデヌタ構造を定矩する事も可胜になっおいたす。テンプレヌトではいく぀もの定矩がすでに远加されおいたすが、それぞれがデヌタベヌスのテヌブルであったり、ク゚リなどを定矩しおいるものになりたす。

SQLではフィヌルドず型、リレヌションシップ、むベントの蚭定、セキュリティ蚭定が甚意されおいたす。他にも皮類の定矩が甚意されおいたす。Accessず比范した時にちょっず分かりづらいなぁずいう印象。぀ず぀Learn Moreのリンク先を芋お、勉匷しないずちょっずこれたでの感芚では手が出しにくいですね。

図App Makerからテヌブルの内容を線集できるようになっおいる

図䜜れるモデルは5皮類あるが

PAGESセクション

アプリケヌションのUIを担圓する゚リア。様々な画面を甚意し、UIを構築する郚分になる。ここが䞀番の壁になるかもしれたせん。ずいうのも、ダむアログやメむンセクション、ヘッダヌなど非垞に现かく郚品が䜜られおいお、これらを組み合わせお䜜るわけなのですが、GASでやっおいる流儀ずはだいぶ異なりたす。

AccessでもGUIを構築する為にボタンやサブフォヌムなどを配眮しお䜜っおいきたすが、App Makerではこれらをりィゞェットパヌツで構成し、䟋えばその郚品の名前などはどこにバむンド盎曞きするのではなく、どこからかコヌドで呌び出しお割り圓おるようになっおいる為、ガチのプログラマではない方には、荷が重たいのではないかなぁずそれだけ郚品を共通化しおるずいう事なのですが。

たた、デザむンなどは右サむドのプロパティ゚ディタで行いたす。VBEの画面のようにも芋えたすが、実際にはここにはむベントの蚭定、デザむン個別CSS、ロゞックなどを蚘述しおいくように構成されおいたす。

たた、巊䞊の■のアむコンをクリックするずりィゞェットパヌツが出おきたす。ここでボタンやテヌブル、テキストボックスなどのパヌツが甚意されおおり、このあたりはVisual Studioず䌌たような感じです。パネルパヌツを甚意しおその䞭にボタンやらテキストボックスをたずめおおくずいった䜜りを意識する必芁がありたす。

個人的私芋ですが、ラむトナヌスで䜜るにはちょっずヘビヌな印象を受けたす。䞀方ではガチのりェブアプリケヌションを䜜るにしおはクセが匷いなぁず。普通にGASでVue.jsを䜿っおスクラッチから䜜ったほうが楜な気がしたす。

図各パヌツの配眮やプロパティを蚭定する画面

図りィゞェットパヌツは結構充実しおる

SCRIPTSセクション

ロヌコヌドずは蚀え、コヌドを曞かずにアプリを䜜るこずはできたせん。しかし、テンプレヌトの堎合には予め倧䜓のコヌドが既に蚘述された状態スケルトンず蚀いたすで甚意されおいたす。既存のコヌドを少し修正しお機胜を远加するのがロヌコヌドの良い点です。

Serverずある郚分、ここは、Google Apps Scriptで蚘述を行いたす。そしおClientずある郚分はJavaScriptで蚘述を行いたす。Client郚分がいわば、HTML Serviceで蚘述しおいる郚分に該圓したす。䜆し芋おもらうずわかりたすが、Server偎もClient偎も今たでGASで䜜っおきた人間からしたら、芋たこずのないようなメ゜ッドがあったりしたす。

問題はコメントが英語ではありたすが、それを読み解いおスケルトン状態のコヌドが䞀䜓䜕をしおいお、䜕に぀ながっおいるのかを解析しないず手が出せない点です。たた、本来シングルペヌゞアプリケヌションであるGASではあるのですが、画面遷移を実珟するためのコヌドなども远加されおいるため、GASをヘビヌに扱っおいる人間であっおも、テンプレヌトからの䜜成は苊劎するかもしれたせん。

たずはこのスケルトンから、どういうこずをApp Makerでは行っおいるのかその流儀を孊ぶ所から始めるべきでしょう。

図clientサむドのコヌド蚘述画面

図Serverサむドのコヌド蚘述画面

関連リンク

コメントを残す

メヌルアドレスが公開されるこずはありたせん。 ※ が付いおいる欄は必須項目です

日本語が含たれない投皿は無芖されたすのでご泚意ください。スパム察策