コードを一切書かずにアプリ開発ができてしまうglideの威力を紹介する

昨晩、glideという素晴らしいサービスに出会い感動したので、
試したこと、感じたことなどをそのままQiitaに書き残します。

ちなみにglideを使って1時間ぐらいでアプリが一つ完成しました。

# glideとは
glideはNoCodeというプログラミングを書かずにGUIから開発ができるプラットフォームの一種で、画面上だけでお気に入り機能やユーザー登録機能、ショッピング機能までも作ることができます。
ショッピング機能はカート機能が作れるほか、stripeとの連携もできるのでECサイトの開発も可能です。
極めつけはスプレッドシートでデータを管理できることで、MySQLのようなデータベースを構築することなくデータを管理できます。

[glide](https://www.glideapps.io/)

試しにアプリを作ってみたのですが、想像以上にカスタマイズ性が優れており驚きました。
[家系ラーメンデータベース](https://xxpw7.glideapp.io/)

また、glideで作成したアプリはPWAに対応するため、PWA開発にもうってつけの開発プラットフォームです。

## PWAとは
PWAはProgressive Web Appsの略で、簡単に説明するとWebサイトをネイティブアプリのように使える技術のことです。
PWA対応のブラウザを開き、対応のサイトをホーム画面を追加することでネイティブアプリのように使うことができます。

詳細はこちらを参考にしてください。
[PWA（Progressive Web Apps）とは？PWAの機能と導入するメリットについて](https://www.seohacks.net/basic/terms/pwa/)

# 使い方

まずは、こちらのglideのサイトからアカウントを作成してください。
アカウント登録はgoogleアカウントでサインインすることになります。
[glide](https://www.glideapps.io/)

登録後このような画面が出てきます。
![Screenshot from 2020-05-27 21-48-04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243199/71e8c0a8-a31d-7b48-da8f-8582f3a62229.png)

Pick Google Sheet...を選択したいのですが、まだスプレッドシートは作っていないので新しく作成します。

1行目はカラムとなるので、データを追加する際は２行目からになります。

![Screenshot from 2020-05-28 02-38-12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243199/c4f7999a-f973-b1e2-2d7a-5a37b3d8f07f.png)

スプレッドシートの用意ができたら、glideの画面に戻りPick Google Sheet...を選択し、先ほど作成したスプレッドシートを選択してください。

選択画面が切り替わりこのようなページになると思います。
この画面が実際の開発環境です。

![Screenshot from 2020-05-27 22-01-23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243199/d40ede7f-5b1c-e119-0383-18c47b04ac55.png)

ここで驚きのポイントが出てくるのですが、スプレッドシートで入力したデータがもう既にスマホの中の画面に反映されているのがわかります。
普通だとDBを構築してアプリケーション側で接続先DBの設定をしてやっと繋げられますが、ものの数分でここまですることができます。

# Settings
左メニューの下にある歯車を押すと、設定画面が表示されメインカラーやアイコンが設定できます。
サインイン機能が必要な場合はここから設定することができます。
Googleアカウント認証でのサインインもできるようです。

![Screenshot from 2020-05-28 02-54-03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243199/843bb9a6-8506-3c9f-ade9-42b80f5dc734.png)

GENERALタブを開くとアプリの名前や説明を設定することができます。

PCにも対応させたい場合は*Allow opening the app...*のチェックボックスにチェックを入れることで対応できます。

# Layout
左メニューにあるLayoutでは、名前の通りレイアウトをカスタマイズすることができます。

## 一覧ページ

![Screenshot from 2020-05-28 03-01-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243199/f330a06a-7667-6ab6-70c5-388f409744d3.png)

Mapsを選んだ場合、Addressに住所を指定しておくと自動でマッピングされます。

![Screenshot from 2020-05-28 03-30-52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243199/ee695c86-2da7-df02-fa28-735f4fa12548.png)

### アイテム追加
glideにはアプリ上でアイテムを新しく追加する機能も備わっています。
ADDタブを押すと*Allow users to items*というチェックボックスがあります。これにチェックを入れると入力画面が表示されます。
画像アップロードなどをしたい場合は右上のプラスマークからImage Pickerというのを選択するとフィールドが追加されます。

![Screenshot from 2020-05-28 04-24-42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243199/6799b8e3-a534-8cbb-f99b-015def01e385.png)

他にもいろいろなフィールドがあるので試してみるといいかもしれません。

## 詳細ページ

アイテムをクリックすると、ページが切り替わり詳細ページのレイアウトをカスタマイズできます。
![Screenshot from 2020-05-28 03-35-27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243199/ac352e70-3583-e627-b9ac-330822cfad1e.png)

詳細ページにはコンポーネントというものが数多くあり、お気に入り機能やボタン、コメント機能まで何でも揃っています。
また、Action Textという面白い機能があり、テキストに対してクリップボード機能や住所を地図で表示する機能をもたせることができます。
今回試しに作ったアプリにAction Textを使っているのでぜひ触ってみてください。
詳細ページの住所フィールドがそうです。

## お気に入り
お気に入り機能は左メニューのDataでRow IDというカラムを追加することで利用することができます。
Dataでは連携しているスプレッドシートのデータが見えます。

右上のAdd Columnを押すと下の画像のようになると思います。
この画像でのColumn TypeにRow IDはありませんが、未設定の場合は選択できるので選んでDoneを押してください。
そうすると新たにRow IDのカラムが追加され一意の値が割り振られます。

![Screenshot from 2020-05-28 03-48-27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243199/55a9628f-59d6-1514-9ef1-1edadae5a97d.png)

詳細ページに戻り、右上のプラスマークからFavoriteを選択するとお気に入り機能の完成です。:tada:
どうでしょうか、中間テーブルをいちいち意識して用意する必要もありませんでした。
しかも、ユーザーがお気に入りする場合は勝手にユーザー登録を促すページを出してくれます。
画期的ですね:tada: :tada: :tada: 

また、お気に入りの設定にあるList Labelを入力すると、一覧ページの上に入力した名前でボタンが出てきます。
お気に入りしたアイテムのリストがここで見ることができます。
どこまで親切なんだ... :sob:

### 編集・削除
アイテム追加ができるなら編集も削除もできます。
設定はEDITタブを押すと一覧ページと同様に行うことができます。


## Tabs
Tabsはglideのいいところをうまく使っている機能の一つです。
これまでglideの優れたところをいくつも紹介してきましたが、検索機能も大きな魅力の一つです。

Tabsでは、アイテムにフィルターを書けた状態でリスト表示することが可能です。
例えば、いろいろなジャンルの飲食店を掲載する場合、ジャンルごとにタブを作ることができます。
ToDoアプリをglideで作って、todo、進行中、完了といったようにステータスごとに分けることも可能です。

発想次第ではもっと面白い使い方できるかもしれません。

# アプリの公開

アプリを公開するときは右上の方にあるSHAREボタンを押してください。

![Screenshot from 2020-05-28 22-34-50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243199/68cf446b-4210-5495-09b8-8d2c51e526c3.png)

このようなモーダル画面が表示され、Publish appを押すことでアプリが公開状態になります。

![Screenshot from 2020-05-28 22-37-58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243199/fd24d352-0136-ee1b-e94b-c59d5a9d630c.png)

公開後に再度SHAREを押すと共有リンクが表示されます。
このリンクを開くとサイトが公開されているのを確認できます。

# まとめ
NoCodeがここまできているのには非常に驚きでした。
エンジニアでなくてもPWA対応アプリが作れて、ユーザー登録機能やコンテンツの追加・編集・削除までできてしまうと本当にエンジニアがいなくても高機能なアプリを作れる時代が来たんだなと実感しました。
ただ、機能的には要件は満たせてもビューのカスタマイズ性やデータ正規化などの点においてはまだまだ改善の余地がありそうです。

プロトタイプを試しに作ったり、社内用のアプリを作るときなんかにglideを使ってみるのはありかもしれません。

glideは無料でも十分に使えるので、ぜひ試してみてはいかがでしょうか。

# 参考
こちらのYouTube動画がわかりやすくておすすめです！
[glideでGoogleスプレッドシートから簡単にアプリを作ろう！ Make apps easily from Google spreadsheets with glide!](https://youtu.be/7xO7MtrIDME)

glideの要点が抑えられている記事です
[非エンジニアでもできる Glide を使った PWA アプリ開発](https://medium.com/@yonemoto/%E9%9D%9E%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%A7%E3%82%82%E3%81%A7%E3%81%8D%E3%82%8B-glide-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F-pwa-%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA-9ed8f4b7f7a5)