Google App Makerを使ってみた感想

 

Gogole App makerが正式にリリースされました。

App Makerはローコーディング、ノーコーディングでシステムを構築できるサービスで、G Suite Businessプラン以上で利用が可能です。

今回はその使用感について解説いたします。

結論から先に申し上げると、「AccessのWEBブラウザ版」といった趣きです。

AppMakerの利用について

最初にG Suite businessプランを契約します。

無料でお試し期間が14日間ということなので、今回は休眠状態のドメインとレンタルサーバを使ってG Suiteのサインアップをしました。独自ドメインと、DNSレコードがいじれるサービスがあればG Suiteのサインアップは出来ます。DNSの知識が全くない方は厳しいかもしれませんが、ここは本題ではないので、省略します。

AppMakerで作成してみた

Hello worldを表示するだけだと味気ないので、Googleスプレッドシートをデータソースとして、単一テーブルのデータを表示出来るアプリを作成してみました。

アプリの完成イメージ

アプリの完成イメージは下記の通りです。

Google スプレッドシートで作成した下記のようなシートを用意し…

 

フォームで表示させる、というものです。右下のレコードセレクタを使えばレコードの表示が変わります。Accessっぽいです。

 

 

アプリ作成

1.初めにG Suiteのスプレッドシートで、カラムとデータを定義した適当なシートを作成します。ここは説明不要と思われます。

2.次にAppMakerでDataモデルを追加します。Spreadシートは読み取り専用となりますので、編集不可です。

2-1.ADD MODELで新しいデータモデルを追加します。

2-2.スプレッドシートを追加するため、Calculatedを選択します。

2-3.G Suiteであらかじめ作成したスプレッドシートを選択します。

2-4.フィールドの情報が読み込まれます。

2-5.モデルの作成が完了しました。次にDATASOURCEの設定を行います。

 

 

3.DATASOURCEに、ServerScriptを追加します。Query欄に適切なrecord配列を返す処理を追加します。ここが空欄だとエラーになります(Dataモデル追加で自動的にやってほしい…)。

追加した処理のコードは以下の通りです。こちらの記事(Qiita:Google App Maker ー Calculated モデルを使ってスプレッドシートのデータを表示する)を参考(≒コピペ)にしました。

var records = [];

var sheets = SpreadsheetApp.openById('1dUPDMpPfCuCIn8341Dul1nDgJbPTWNGdzlwJDYsiVyo');
var sheet = sheets.getSheetByName('シート1');
var values = sheet.getDataRange().getValues();

var idColumn,nameColumn,valueColumn, memoColumn;

for(var i = 0, len = values[0].length; i < len; i++){
  if(values[0][i] === 'name'){
    nameColumn = i;
  }
  if(values[0][i] === 'id'){
    idColumn = i;
  }
  if(values[0][i] === 'memo'){
    memoColumn = i;
  }  
  if(values[0][i] === 'value'){
    valueColumn = i;
  }  
}

for (var i = 1; i < values.length; i++) {
  var record = app.models.test_data.newRecord();
  record.name = values[i][nameColumn];
  record.id   = values[i][idColumn];
  record.memo   = values[i][memoColumn];
  record.value   = values[i][valueColumn];
  records.push(record);
}

return records;

4.次にFormを追加します。

4-1.左のメニューから「PAGES」を開きます。 4-2.左上のWidgetアイコンを押して、ウィジェットを表示させます。

 4-3.ここでは左上のFormを使います。ウィジェットをドラッグ&ドロップでページに追加します(ローコーディングって感じ!)。 4-4.データソースの選択ウィザードが起動するのでそのまま進みます。

4-5.フォームタイプの選択でEDITが選択されていますが、データソースが読み取り専用なので、更新はできません。

4-6.DataModelで作成されたフィールドが自動的に選択されます。

4-7.フォームの完成。

5.終わったらとりあえずプレビュー。冒頭のような動作をするアプリケーションが作成されます。当然、スプレッドシート側にデータを追加したらフォームでも表示されるようになります。

以上となります。

使ってみた感想

確かにローコーディングではありますが、EUC的に使うのであれば、かなりハードルが高いと感じました。

自分が慣れていないだけかもしれませんが、特にqueryRecordを自前で実装するのは疲れます。これならLaravelなどのフレームワークを使って処理を書いた方が早いような気もしています。

今回は単純な単票表示アプリでしたが、実際のアプリでは複雑なリレーションなども発生しますし、データ連携周りの実装などを考えると、Accessよりも難しいかもしれません。

感想は以上となります。次のエントリでkintoneとの比較コメントを書きます。

ITと経営に関するお悩みはありませんか?

ITに関連する経営課題についてどんな内容でもアドバイス可能です。
お一人で悩まれずに、些細なことだと思われることであっても、お気軽にご相談ください。
もちろん、お問い合わせメールへは無料で対応いたします。