ノーコードツール「Click」で実装できる便利な機能

# はじめに
先日松江で行われた学生のハッカソンで、ノーコードでWebアプリを開発してみようということでClickというツールを利用しました。
全員がClick未経験だったので開発に手こずりながらも、最終的にそれぞれのチームが素晴らしいアプリを作成していました。
その中で面白い機能がたくさんあったので、簡単な紹介と実装方法の説明をしていきます。
次回のスムーズな開発に役立てられればいいなと思います。

# 目次
1. いいね機能
1. メニューバー
1. 入力フォームでプルダウンを使う
1. 一覧リストの絞り込み
1. ログインユーザーごとに違う機能を持たせる

## 1. いいね機能
### 機能紹介
![fab.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967086/89f77ed3-148e-4935-c7d1-c230e6cd0968.gif)
・♡を押すと赤くなり、数字が増える。（逆も然り）
・同じユーザーは一つの投稿にいいねを一つだけつけられる。
（Twitterのファボ機能と同じようなもの）

### 実装手順
#### DB側
投稿者や投稿内容などを持っているテーブルで、項目を追加から「データの紐付け」＞「Uses」と選択します。
画像の通り、一番下のタイプを選択し追加します。
<img width="500px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967086/a84623ed-a929-65b0-9b3a-eba59928a8f3.png">
このようにできればOKです。
<img width="500px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967086/9525228e-aa52-66f8-363c-ed647a047a22.png">

#### 画面側
##### 設定1
・♡はトグルエレメントを利用し、画像の通りに設定する。
・初期値を「いいね icludes Logged In User?」にすることでログインユーザーがいいねしている投稿であれば、トグルがアクティブとなった状態で表示される。
<img width="500px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967086/cf6ecf37-136c-6bbf-09e8-ff55d439dd6b.png">

##### 設定2
・ClickFlowはアクティブ時の動作と非アクティブ時の動作を画像のように設定する。
<img width="500px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967086/18804381-abab-1027-12d4-be4ef862cd29.png">

##### 設定3
・いいね数を表示するためテキストエレメントを配置し、画像の通り設置する。
~~・テキストを「Count 投稿 > Users > Count」とすることで、この投稿にいいねしているユーザーの数を表示できる。~~
・テキストを「Count 投稿 > いいね > Count」とすることで、この投稿にいいねしているユーザーの数を表示できる。（2022/1/26修正）
<img width="500px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967086/95b59442-1956-ad09-bda1-7c4c909889a0.png">

以上の手順でいいね機能を実装することができます！

## 2. メニューバー
### 機能紹介
![menu.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967086/eb185885-2b64-1b3b-00a6-678ebd69dab7.gif)
・ヘッダーのメニューボタンを押すとメニューバーが開かれ、そこからページ遷移やログアウトできる。

### 実装手順
エレメントのページを追加します。名前をつけモーダルを選択しOKボタンを押します。
<img width="500px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967086/c6bcfb6d-8937-1a82-b73f-d6658cc498a1.png">
新しくできたページにボタンを並べ、スタイルの調整などで形を整えたり、画面遷移の設定をします。
<img width="500px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967086/9d90e44a-9f96-7638-064a-8d198944a5b1.png">
メニューバーの画面遷移に先ほど作ったページを割り当てると完成です！
<img width="500px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967086/3a9ff9c1-d96a-de34-edfb-e4425a56ff5c.png">

## 3. 入力フォームでプルダウンを使う
### 機能紹介
![pull.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967086/ca9f3543-5dd4-880a-43d1-52221ee07721.gif)

### 実装手順
#### DB側
##### 設定1
新しくテーブルを作り、カテゴリなどと名付けます。
最初の項目の名前をカテゴリ名などに変更し、レコードを追加からフォームで表示させたいカテゴリ名を追加します。
<img width="500px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967086/8a483bf0-a892-457d-6d4d-4f61fe742606.png">

##### 設定2
投稿テーブルで、項目を追加から「データの紐付け」＞「カテゴリ」と選択します。
画像の通り設定し、追加します。
<img width="500px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967086/3de37b9e-aec5-4053-00c8-c05ec6f35e70.png">

#### 画面側
フォームでカテゴリの項目を表示させれば完成です。
<img width="500px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967086/ccb6ebf5-b824-45d2-2984-8312d8c14d60.png">

## 4. 一覧リストの絞り込み
### 機能紹介
![filter.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967086/d7be4701-2a75-b975-5fcb-cc7c0c16aa33.gif)
・リストにフィルターをかけることができる。

### 実装手順
##### 設定1
一覧ページ上部にプルダウンエレメントを配置する。
<img width="500px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967086/53ff501f-d38e-a87f-f956-c0a6a7a3fea9.png">

##### 設定2
リストエレメントに画像のようにフィルターをかける。
（Current 投稿 > カテゴリ > カテゴリ名 = Form Inputs > ドロップダウンDB > カテゴリ名）
<img width="500px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967086/a15eb849-0e06-5218-ecbf-d10076755e65.png">

以上の設定で完成です。

## 5. ログインユーザーごとに違う機能を持たせる
### 機能紹介
![login2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967086/3670d1ed-403d-95dc-9cb1-74fec088644e.gif)　　　![login1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967086/80e86735-24ef-a8d5-a201-f2d9aeab9fc5.gif)

### 実装手順
#### DB側
##### 設定1
新しくテーブルを作り、ユーザーの種類などと名付けます。
レコードを追加し、ユーザーの種類を作成します。
<img width="500px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967086/92565cf6-d28c-0298-7f57-9f4f03eb14c2.png">

##### 設定2
Usersテーブルで、項目を追加から「データの紐付け」＞「ユーザーの種類」と選択します。
画像の通り設定し、追加します。
<img width="500px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967086/7c5d59b7-bc66-0277-5606-749cdbdd3c72.png">

#### 画面側
アカウント登録のフォームにユーザーの種類の項目を追加します。
企業用のページを作り、遷移設定をすれば完成です。
（Logged in User > 種類 > Name = 一般のとき、一般ユーザー向けの画面に行き、企業の時に企業向けのページに行く）
<img width="500px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967086/bdc78da7-87df-df6f-75d8-f7516b7c2c0a.png">

# あとがき
かなりざっくりとした説明ですが、機能の実装方法はだいたいわかっていただけたかと思います。
今回紹介した機能のほとんどでデータベースのリレーション設定をしています。これをマスターすればできることが大幅に増えそうです。