数あるノーコードのうち、最もとっつきやすいノーコードツールとして定評のある”Glide”というノーコードツールがあります。
GlideではGoogle Sheet (Spread Sheet)を利用して、スマートフォン/タブレット/PC表示が可能なwebアプリを開発できるノーコードツール。
すでに作成済みのGoogle Sheetを読み込ませるだけで、美しいUIをもつwebアプリが作られるということで大きな話題となりました。
かつてはシンプル・簡単というだけで機能は少ない印象でしたが、近年ではGlide 2.0へアップデート。マルチアクション機能やGoogle Sheetとの同期性能向上など、さまざまな機能を備えるようになってきました。
また当初は存在しなかった”ユーザーシートを指定して、ログイン機能を実現する”という機能が実装されていましたので、その機能を利用してログイン機能をもつwebアプリをGlideで作成できそうか、試してみました。
以下、メモ形式でご共有します。
目次
Glideで作りたいユーザーログイン機能をもつアプリ
ユーザーがログインし、自分の所有するアイテム情報を閲覧・編集・新規追加・削除できるアプリを作成したい。
そこで、Glideでもログインユーザーによる切り分けは可能とのことでチャレンジ。
無料版の"Public Login with Email"ではメールアドレス登録により誰でも利用できてしまう
ただし、無料版の場合は"メールアドレスを提供すれば誰でもログインできるように公開する"というPublic Login with Emailのみ。
今回は「あらかじめ登録を済ませた会員にのみ、ログインを許可してユーザーごとに異なる内容を表示させたい」という要件だったため、無料プランのままでは目的を達成することができません。
Private Login機能を用いて、限定メンバーのみに公開。ユーザープロファイル機能でログインユーザーごとに異なる表示
あらかじめ登録された限定メンバーのみに公開する、としたい場合にはPrivate Login機能を備えるPrivate Pro Appプラン(月額$40)にする必要があります。
20メンバー分はプラン内料金に含まれ、20名を超える場合は超えたユーザー1名につき月額$2がかかります。
結論からいうと、このPrivate Login機能がまさしく必要な機能でした。
利用範囲を登録ユーザー限定の利用とし、そのうえでユーザープロファイル機能(後述)を活用すればログインユーザーごとに異なる表示をさせることが可能になります。
新規ユーザー登録はGlide外で実装。Memberstackがおすすめ
なお、上記構成の場合には新規ユーザー登録はGlide外で行う必要があります。
会員メンバー管理のノーコードツールである Memberstack を活用するのが良いでしょう。
Glideはレコード上限がやや厳しい。扱うデータ量に注意
Private Login機能を利用できるPrivate Pro Appプランにおいて、活用できるデータはレコード数上限25,000行まで。
この上限が今回の要件に当てはまらず、Glideでのユーザーログイン機能をもつアプリ開発は見送ることになりました。
用途によってはレコード数上限25,000行で十分です。あくまで私のケースで見送ったのみ。
レコード数上限と月額$40〜という点さえ許せば、スプレッドシートを簡易データベースとみなしてGlideでログイン機能をもつアプリを開発することが可能でしょう。
以下、調査の過程で触りながら調べたことをご共有します。
ユーザープロファイル(User Profiles)でログイン機能を実装する
まず、ユーザープロファイル機能を実装してユーザーによるログインを可能にします。
上ページ内の動画は現在のものとは若干仕様が異なります。下記日本語の記事が参考になりました。
Glideのユーザープロファイルの設定方法。 | 独学ノーコード
User Profileと異なる機能に、User Specific Columnsという機能があります。
Working with user-specific columns – Glide Library
こちらはGlide上データベースの機能で、"ユーザーごとによって異なるセルの内容を持たせることができる"という機能です。ログイン機能とは異なりますのでご注意ください。
Glide側でログイン方法として"Public with email"を選択
まずGlide側の設定として、Settings > Privacy > PUBLIC SIGN-IN で Public with emailを選択。
冒頭でも說明しましたが、許可されたユーザーのみにログインさせたい場合には、現在ではPrivate Login機能を備えるPrivate Pro Appプラン以上での契約が必要です。
Google Sheet側でユーザーシートを作成する
次にGoogle Sheet側での作業として、同一のGoogle Sheet内にユーザー専用のシートを作成します。
少なくとも、以下の3つのカラムが必要です。カラム名は任意でOK。
- Name
- Image
Imageはユーザーのプロフィール表示用写真。
ImageをGoogle Sheetから入力する場合、セルには画像へのURLで指定します。
具体的には、既にweb上にアップロードされている写真を右クリックして、"画像のURLをコピー"でURLを取得できます。
Glide側からシートを操作する場合は、ローカルの画像をそのままアップロードできます。Glide上のサーバーに保管されるよう。
上記以外の属性をもたせることも可能。上記に追加してセルを作成します。
Glideでユーザーごとにアイテム表示を切り替える方法: Row Ownersとフィルター
Glideでユーザーごとにアイテム表示・非表示をさせたい場合、Row Ownersとフィルターの2つの方法があります。
いずれの場合もデータテーブルにユーザー情報をもつカラムを作成しておく必要があります。 Row Ownersの場合は該当のカラム内容は"ユーザーのメールアドレス"に限定されますが、フィルターの場合は特に制約はありません。
Row Ownersでセキュアにユーザー所有のアイテムを表示
Use row owners to protect private data – Glide Library
Row Ownersはレコード単位で、「このレコードがどのユーザーに属するか?」を定めるものとなります。
Row OwnersはGlide上データベースの機能であり、Google Sheetをデータソースにしている場合でもGlideデータベースはGoogle Sheetと同期されます。
ユーザーのログイン方法としてPublic with emailまたはPrivate modeでログイン機能を持たせ、ユーザーテーブルを定義している場合にのみ利用可能。
GlideメニューからGlideデータベースを選択し、データテーブルに作成した"ユーザーのメールアドレス"カラムの上で右クリック。 Make Row Ownersを選択することで、該当のカラムをユーザーメールアドレスと設定することができます。
Row Ownersは後述するフィルターよりセキュアな設定であり、所属するアイテムは該当のユーザー以外から見えることはありません。
「ログインユーザーに自身に紐づくデータを閲覧させたい」という場合には基本的にこのRow Owners機能で実現すべきでしょう。
フィルターでユーザー属性により絞り込み表示
Glideでユーザーのもつ属性(=ユーザーテーブルに設置した何かしらのカラム内容)に切り分け表示させる場合は、他に"フィルター"による絞り込み表示となります。
具体的にはフィルター属性となるカラムをデータテーブルに作成。そのカラムはユーザーテーブルと同一の内容になるように設定し、擬似的なリレーションを実現させます。
フィルターによる表示は様々な条件で絞り込みが可能な反面、あまりセキュアに設計されている訳ではありません。該当のユーザー以外からも見えてしまう可能性があります。
そのため、プライバシーや機密情報に関わる情報についてはフィルターによって非表示制御をすることは避けましょう。
Glideではリレーションを組んでいる訳ではないため、Google Sheetの取り扱い時に注意
Glideではデータベースのようにリレーションを組ませている訳ではなく、あくまでGoogle Sheetに該当の情報を追加・編集させ擬似的なリレーションを実現させています。もしGoogle Sheet側から操作を行う場合、このように手動で入力する必要があります。
GAS (Google App Script)でGoogle Sheetの側を自動化するなど行うことは出来そう。ただしその場合はノーコードではなくなるため、多少の学習コストがかかります。
Glideのイマイチだなと思うところ。App Sheetと比較して
リレーションを組めないので、Google Sheet側から操作するときに少し気を使うかも
上記のようにGoogle Sheetはリレーショナルデータベースではないため、シート側から管理する際などに弊害が出てきそう。
Glideからユーザーがデータを追加する場合は、自動的にログインユーザー名などを紐付けて追加することが可能なので、問題にはならないかと思われます。
ただしGlideでも、最上位のEnterprise版はMySQLをデータソースとして選択できるようです。
MySQL data source available. Hosted in Cloud SQL.
Google Sheetを利用したユーザーログイン機能のアプリ開発においては、Glideを利用するのではなく、App Sheetでアプリを構築する方が良さそうと感じました。
Make an App with No-Code. Start building today for free.
App SheetはGoogleが買収したノーコード・ローコード開発ツールで、Google Sheetをデータベースのように取り扱うことが可能です。
Google DriveからGoogle Sheetを閲覧しようとするときも、Open with App Sheetと表示され選択できるようになっています。
ノーコードツールにおけるデータベースの話は、下記記事も参考にご覧ください。
書き起こし【ノーコード分科会】No-Codeの「DB設計」について語ろう!~Bubble会~ | まほウェブ
Glideはレコード数の上限が厳しい
Glideは無料版は500行まで、月額$12のBasic Appプランでは5,000行、月額$32のPro Appプランで25,000行までというレコード数の上限があります。
月額$12のBasic Appプランは公式サイトのPricingページには記載がありませんが、ダッシュボードからアップグレードすることが可能です。
なお、上限を超えるGoogle Sheetと接続した場合、上限を超える一部データが表示・認識されなくなるだけでシートとの接続自体は可能です。
一方、前述のApp Sheetではレコード数の上限はないようで、Google Sheetのセル上限がそのまま上限となるようです。行数ではなくセル数であることには注意。
Google Sheetのセル上限は500万セルとなります。
【Googleスプレッドシート】最大行数は最大どこまでいけるのか?を検証してみました | EGUWEB(エグウェブ).JP
一応、500万セル上限の回避策もあるとのこと。
スプレッドシートの500万セル制限の回避方法 | Googleスプレッドシートハック
レコード数上限が問題になりそうな場合には、Glideを利用するのではなくApp Sheetでユーザーログイン機能をもつアプリを構築する方法もあります。
Make an App with No-Code. Start building today for free.
App SheetはGoogleが買収したノーコード・ローコード開発ツールで、Google Sheetをデータベースのように取り扱うことが可能。
Google DriveからGoogle Sheetを閲覧しようとするときも、Open with App Sheetと表示され選択できるようになっています。
このようにApp Sheetは様々なビューやリレーション機能(Spread Sheetで疑似リレーションが組めます)、自動化ワークフロー機能も備える多機能No-Codeツール。 フィルタの形でログイン機能を持たせることもおそらく可能です。
ただ、App Sheetは社内向けノーコードツールとして利用が想定されていることもあり、体外向けにログイン機能をもつアプリとしてリリースするには少しデザイン面が弱いかも、というところです。 また、特にネイティブアプリ化機能もついていません。
反対にデザインにあまりこだわらない、とにかく機能で勝負したいという場合にはApp Sheetも候補に考えてみても良いかもしれません。
条件さえあえば、Glideで超高速にwebアプリを開発することは可能。場合によってAdaloなども検討。
私のケースでは特にレコード数の制約もあり採用を見送りましたが、そこまでレコード数を必要としないようなアプリであればGlideはかなり有力なノーコード開発ツールとなるでしょう。
Glideにこだわらないのであれば、ログイン機能を最初から内蔵する”Adalo”がおすすめ
Glideライクでかつリレーショナルデータベースを内蔵する、”Adalo”というノーコードツールもあります。AdaloはGlideよりもさらに自由に画面遷移が組めたり、UIの設計自由度が格段に高くなります。
書き起こし【ノーコード分科会】No-Codeの「DB設計」について語ろう!~Bubble会~ の記事でも紹介していますが、数あるノーコードツールの中でもAdaloは「バランスが良い」ツールとして知られています。
書き起こし【ノーコード分科会】No-Codeの「DB設計」について語ろう!~Bubble会~
ただし、Adaloは多機能なぶんGlideより学習コストが少し高くなり中級者向け。
Glideは機能が絞られているからこそシンプルで分かりやすく、初心者でも超高速に開発できるのです。
関連記事1: Adaloの外部データベースとしてAirtableと連携。API接続方法 | まほウェブ
関連記事2: Adaloで外部データベース上のユーザーテーブルを利用する方法 。Airtableは不可 | まほウェブ
Adaloは管理者ログイン・管理者画面の実装や異なる属性のユーザーに向けてマルチサイドアプリとして展開できる
さらに、Adaloであればログイン機能が初期機能として最初から組み込まれていることに加えて、管理者専用の画面を用意できます。
Adaloで管理者ログイン機能・管理者画面を実装する | 魔法使いのスクリプト
また、Uberアプリが「ドライバー」と「ユーザー」でアプリ自体を異なるアプリとして展開しているように、異なるユーザー属性の人にはアプリ自体を別個のものとして公開することが可能です。この場合でも使用するデータベースは共通のものとして同一データベースを利用することが可能。
高機能なユーザーログインを実装したい場合には、Glideによる実現だけでなくAdaloなど他のノーコードツールでの実装も検討しましょう。
Glide利用のメリットはGoogle Sheetベースによる汎用性にある
ノーコードツールのうちGlideを利用するメリットは、初心者でも取り扱いやすいUI・開発者体験を実現しているということに加えて、「データベースとしてGoogle Sheetを利用している」という点が大きいです。
Google Sheetをデータベースとして採用しているということは、”スキルセットに関わらずだれでも触れ”、”URL一つで共有でき”、”GASの利用や他ツールとの連携も可能で汎用性が高い”というメリットにも繋がります。
さらに、Glide2.0となったことでセキュリティ面も強化しているよう。
ノーコードツールに完璧はありません。利用目的とノーコードツールとの相性を探り、最適なツールで開発を行っていくことをおすすめします。
Leave a Reply