見出し画像

【NoCode】Adaloで簡単なアプリを作ってみよう! ⑤ リレーションシップの設定

皆様こんにちは、taku(@takuNoCode1)です!
平素より格別のご高配を賜り厚く御礼申し上げます。

前回に引き続き、NoCodeツールAdaloで簡単なアプリを作っていきます!

 Adaloで簡単なアプリを作ってみよう!
データベース設計及びデータの読み込み
データの作成
データの更新
データの削除
⑤ リレーションシップの設定

Adaloのチュートリアルで学べることをベースにして、簡単なアプリを作成しながら、開発の基本となる「CRUD」について学習していきます。

CRUD」とは、データを操作する際に必要な最低限の機能のことです。

Create(作成)
Read(読み込み)
Update(更新)
Delete(削除)

今回は、「リレーションシップの設定」について学びます。

Adaloの概要とアプリ開発の始め方については、次の記事で解説しましたので、まずはこちらをご覧ください。

1. 実装するサンプル

画像1

前回に引き続き、オススメの旅行先を投稿する「旅行アプリ」を作成していきます。

今回は、ログインシステムを実装し、投稿詳細画面に投稿者の名前を表示します。さらに、ログインユーザーの投稿である場合のみ、編集及び削除ボタンが表示されるように設定を行います。

2. Signup 機能実装

2-1. Screen の追加

「ADD SCREEN」の「Intro」から「Signup」をクリックします。

画像2

追加する「Screen」の名前を入力し「CREATE SCREEN」ボタンをクリックします。今回は「Signup(ユーザー登録)」を名前として設定します。

画像3

「Signup」をクリックし「Screen Navigation Type」に「Welcome Screen」を選択します。

これにより、ユーザーが「ログインしていない場合」に表示される初期画面に「Singup」を設定することができます。

ユーザーが「ログインしている場合」は、「Home」が初期画面として表示されます。

画像4

2-2. Users 及び Form の紐づけ

ユーザー登録は、以前学習した「データの作成(Create)」の実装を行う必要があります。

Users」という「Collection」はAdaloがあらかじめ準備してくれるため、そのまま使用します。

    Users
・Email/メールアドレス (text)
・Password/パスワード (password)
・Username/ユーザーネーム (text)
・Full Name/フルネーム (text)

画像5

Form

「Form」の「Which data collection ? (どのcollectionですか?)」に「Users」を選択します。

What do you want the form to do?(formで何をしたいですか?)」に「Sign the User Up(ユーザー登録)」を選択します。

これにより、それぞれの「Form」に入力されたデータを「新規データ(Record)」として「Users」に保存することができるようになりました。

画像6

Fields

今回は「Full Name」は必要ないので、「Delete Icon」をクリックして削除します。

画像7

「Username」をドラッグし「Email」の前にドロップすることで、順番を入れ替えます。

画像8

Submit Button

Sign Up
「Submit Button」をクリックすると、「新規データ(Record)」を作成すると共に、「ログイン」状態にします。

画像9

Link
「Submit Button」をクリックし、「新規データ(Record)」を作成した後、「Home」に画面遷移するように「Link」を設定します。

画像10

3. Login 機能実装

3-1. Screen の追加

「ADD SCREEN」の「Intro」から「Login」をクリックします。

画像11

追加する「Screen」の名前を入力し「CREATE SCREEN」ボタンをクリックします。今回は「Login(ログイン)」を名前として設定します。

画像12

3-2. Users 及び Form の紐づけ

Form

「Form」の「Which data collection ? (どのcollectionですか?)」に「Users」を選択します。

What do you want the form to do?(formで何をしたいですか?)」に「Log the User In(ログイン)」が自動で選択されます。

これにより、「Email」及び「Password」に入力されたデータをチェックして、「Users」に保存された「データ(Record)」と一致した場合のみ「ログイン」することができるようになりました。

画像13

Fields

今回は変更の必要はありません。

画像14

Submit Button

Log in
「Submit Button」をクリックすると、「Email」及び「Password」に入力されたデータをチェックして、「Users」に保存された「データ(Record)」と一致した場合のみ「ログイン」状態にします。

画像15

Link
「Submit Button」をクリックし、ログインした後「Home」に画面遷移するように「Link」を設定します。

画像16

4. Logout 機能実装

「Home」の「App Bar」の「Right Icon 2」にあらかじめ「Log Out(ログアウト)」が設定されています。

ログアウト後に「Login」に画面遷移するように「Link」を設定します。

画像17

5. Signup 及び Login 間の画面遷移

5-1. Signup

ALREADY HAVE AN ACCOUNT ?(すでにアカウントをお持ちですか?)」をクリックすると、「Login」に画面遷移するように「Link」を設定します。

画像18

5-2. Login

SIGNUP(ユーザー登録)」をクリックすると、「Signup」に画面遷移するように「Link」を設定します。

画像19

6. Users 及び Trips の Relationship 設定

今回の実装では「Trip Details(詳細画面)」にて「投稿者」の表示を行いたいので、「Users」及び「Trips」の「Relationship(リレーションシップ)」を設定する必要があります。

Relationship」を設定することによって、異なる「Collection」が結びつき、データを共有することができるようになります。

6-1. Trips に Relationship を追加

「Trips」の「ADD PROPERTY」をクリックし「Relationship」から「Users」を選択します。

画像20

「Users」及び「Trips」の関係性を確認すると、以下の通りになります。

「User(ユーザー)」は複数の「Trips(投稿)」を持つことができる
「Trip(投稿)」は 1人の「User(ユーザー)」に属する

上記の関係性から、3つの選択肢のうち1番上を選択し「DONE」ボタンをクリックします。

・  A User can have multiple Trips
・  A Trip belongs to one User

画像21

「Trips」を確認すると「Property」に「User(ユーザー)」が追加されていることが分かります。

これにより、それぞれの「Trip(投稿)」を作成した「User(ユーザー)」のデータを読み込むことができるようになりました。

「Trip(投稿)」は 1人の「User(ユーザー)」に属する

前回までに使用していたテストデータはここで削除しておいてください。

画像22

6-2. Users に Relationship を追加

「Users」を確認すると「Property」に「Trips(投稿)」が追加されていることが分かります。

これにより、それぞれの「User(ユーザー)」が作成した、「Trips(投稿)」のデータを読み込むことができるようになりました。

「User(ユーザー)」は複数の「Trips(投稿)」を持つことができる

画像23

7. 新規投稿作成時のユーザーデータの紐づけ

新規投稿作成用の「New Trip」の「Form」をクリックし、「Fields」の「ADD AUTOMATIC FIELD」から「User」を選択します。

画像24

「Value」に「Logged in User(ログインユーザー)」が自動で選択されます。

これにより、「新規投稿のデータ(Record)」を作成する際に、「ログインユーザーのデータ(Record)」を紐づけて保存することができるようになりました。

画像25

8. 投稿者名の表示

「Trip Details」の「Description」をコピーして「Created by」に変更します。

画像26

「Label」をコピーして「Created by」の下に配置します。

画像27

「Trip description」を削除し「Tボタン」をクリックします。
Current Trip」の「User」から「Username」を選択します。

画像28

Current Trip > User > Username」は「現在読み込んでいる Trip に紐づけられた User の Username」という意味です。

画像29

これにより、「Home」から受信した「Trips」の「データ(Record)」に紐づけられた「User」の「Username」を表示することができるようになりました。

画像30

9. 投稿編集及び削除用 Button の 表示/非表示

現在の状態では、自分の投稿以外でも編集及び削除ができてしまいます。

そこで、「現在ログインしているユーザー」のデータと「投稿に紐づけられたユーザー」のデータが一致する場合のみ、編集及び削除用の「Button」を表示し、一致しない場合非表示にする処理を追加します。

画像35

9-1. 投稿編集用 Button

「三点リーダー」ボタンをクリックし、「Change Visibility」を選択します。

画像31

「Visibility」を「Always Visible(常に表示)」から「Sometimes Visible(時々表示)」に変更します。

Will be visible if 」を設定することによって、その条件を満たす場合のみ表示することができるようになります。

Logged in User」から「Email」を選択します。

画像32

is equal to(〜と等しい)」が自動で選択されます。

「Empty」をクリックし、「Current Trip」の「User」から「Email」を選択します。

画像33

Current Trip > User > Email」は「現在読み込んでいる Trip に紐づけられた User の Email」という意味です。

これにより「ログインユーザーのメールアドレス」と「投稿に紐づけられたユーザーのメールアドレス」が一致する場合のみ、編集用「Button」を表示することができるようになりました。

画像34

9-2. 投稿削除用 Button

上記の投稿編集用「Button」と全く同じ手順で設定を行います。

これにより「ログインユーザーのメールアドレス」と「投稿に紐づけられたユーザーのメールアドレス」が一致する場合のみ、削除用「Button」表示することができるようになりました。

画像36

10. テスト

以上で今回の実装は完了です。「PREVIEW」ボタンをクリックして、作成したアプリを確認してみてください。

ユーザーを2人準備し、それぞれログインした状態で新規投稿を作成してみましょう。

画像37

それぞれの「User(ユーザー)」に「Trips(投稿)」が紐づけられていることを確認してください。

「User(ユーザー)」は複数の「Trips(投稿)」を持つことができる

画像38

クリックすると、それぞれの「User(ユーザー)」と紐づいている「Trips(投稿)」を確認することができます。

画像39

同様に、それぞれの「Trip(投稿)」に「User(ユーザー)」が紐づけられていることを確認してください。

「Trip(投稿)」は 1人の「User(ユーザー)」に属する

画像40

11. まとめ

画像41

今回は「Adaloで簡単なアプリを作ってみよう!」シリーズの第5回目として、「リレーションシップの設定」を学びました。

「リレーションシップ」はアプリ開発において、非常に重要な項目となりますので、しっかり理解しておく必要があります。

画像42

以上で「Adaloで簡単なアプリを作ってみよう!」シリーズの全ての実装は終了です。

 Adaloで簡単なアプリを作ってみよう!
データベース設計及びデータの読み込み
データの作成
データの更新
データの削除
⑤ リレーションシップの設定

「Twitter」や「Instagram」などの有名なアプリも、基本は「CRUD」と「リレーションシップ」の組み合わせで作られています。

今回は最低限の機能しか実装しておりませんので、さらに機能を追加して、アップグレードしてみてください。

引き続きAdaloの理解を深めていきましょう!


この記事が気に入ったらサポートをしてみませんか?