複数サイドアプリを作成する方法
ユーザーの役割に基づいて異なる機能や体験を提供します。コーチ/クライアントビューを有効にし、アプリの有料機能を制御したり、管理者パネルを構築したりします!
スキルレベル: 中級
開始前に
- データベースについて知っており、それらを作成する基本を知っていること。 
- 条件付き表示と条件付きアクションの基本を知っていること 
- この機能を使用するには有料のAdaloプランは必要ありません。 
手順
1.) マルチサイドアプリの動作を選択して構築する前に、ユーザータイプまたはロールをデータベース内で確立する必要があります。これにより、ユーザーがアプリのどの側面を見るべきかを決定できます。これを行うためのいくつかの方法があります。
- ユーザーロール用のTrue/Falseフィールド。たとえば、メンター/クライアントの役割がある場合、ユーザーコレクションに2つのTrue/Falseプロパティを追加できます - 1つは「クライアント?」ともう1つは「メンター?」と呼ばれます。 
- ユーザータイプを保持する「Role」というテキストプロパティ。たくさんのロールがある場合、ユーザーコレクションをTrue/Falseプロパティで混乱させることなく、ユーザーにそれらの値を単純に設定できます。たとえば、メンター、クライアント、管理者がユーザーロールとしてある場合、ユーザーにそれらの値をフォーム内で自動的に設定するか、ユーザーが押すボタンで設定できます。 
どのルートを選択しても、ユーザーに異なるワークフローとエクスペリエンスを提供するために同じロジックを使用できます。これを達成するためのさまざまな方法がありますが、いずれも条件付き表示または条件付きアクションを使用することで条件付けが必要です。以下は、上記のTrue/Falseメソッドを使用した3つの例を示しています。
ユーザーロールに基づく条件付き表示の使用
この方法は、ユーザーの役割が特定の基準に一致する場合にのみコンポーネントやボタンを表示するために使用できます。
1.) ユーザーコレクションに「メンター?」と「クライアント?」のTrue/Falseプロパティが設定されていること、およびアプリにホームスクリーンとメンターダッシュボードスクリーンが少なくとも2つあることを確認してください。
2.) 1つのスクリーンに、左上隅の大きなプラス記号をクリックして「メンターダッシュボード」とラベル付けされたシンプルなボタンを追加します。
3.) 新しいボタンをクリックし、クリックアクションセクションで、2番目のスクリーンにリンクするリンクアクションを追加します。 4.) ボタンの設定メニューの右上にあるMoreアイコン をクリックし、Change Visibilityを選択してください。
をクリックし、Change Visibilityを選択してください。
5.) VisibilityドロップダウンからSometimes Visibleを選択してください。
6.) この「メンターダッシュボード」ボタンをメンターの場合にのみ表示したいため、その可視性を反映させる必要があります。Will be visible if...ドロップダウンでLogged In User > Mentor?を選択してください。下に表示されるドロップダウンで、まだ選択されていない場合はIs Trueを選択してください。
ユーザーの役割に基づく条件付きアクションの使用
この方法は、ユーザーの役割が特定の基準に一致する場合にのみアクションを実行するために使用できます。
1.) ユーザーコレクションに「Mentor?」および「Client?」のTrue/Falseプロパティが設定されていることを確認し、アプリにホーム画面、クライアントダッシュボード画面、メンターダッシュボード画面の少なくとも3つの画面があることを確認してください。
2.) ホーム画面には、左上隅の大きなプラス記号をクリックして「Dashboard」というラベルが付いたシンプルなボタンを追加してください。
3.) 新しいボタンをクリックし、Click ActionsセクションでLinkアクションを追加してクライアントダッシュボード画面にリンクしてください。
4.) 新しいリンクアクションのShow Advancedオプションをクリックし、アクション設定でWhen does this happen?ドロップダウンからSometimesを選択してください。
5.) This action will only happen if...というラベルの別のドロップダウンが表示されます。このドロップダウンでMore> Logged In User > Client?を選択してください。その下で、ドロップダウンをIs Trueに設定してください。
共有データベースを使用した異なるアプリの構築
役割に基づいてユーザーのエクスペリエンスを制御する別の方法は、同じデータベースをアプリ間で共有することで、各ユーザーの役割ごとに別々のアプリを作成することです。たとえば、Uberにはドライバーアプリとライダーアプリがあります。
1.) 1つのユーザー役割のアプリとそのデータベースを作成したら、それをコピーするか、同じデータベースを共有する新しいアプリを作成できます。新しいアプリを作成するには、Adalo Builderの上部中央のアプリ名のドロップダウンをクリックし、一番下にあるCreate New Appオプションをクリックしてください。
2.) アプリの種類を選択し、Nextをクリックしてください。
3.) テンプレートオプションからBlankを選択し、Nextをクリックしてください。
4.) アプリに名前を付け、配置するTeamと色を選択し、Advanced Optionsをクリックしてください。
5.) Share Database with an Existing Appオプションを選択し、データベースを共有するアプリを選択してください。Doneをクリックし、Createをクリックしてください。 7.) アプリを新しく作成する代わりにコピーするには、Adalo Builderの左側メニューでSettingsアイコン をクリックします。
をクリックします。
8.) Copy/Deleteセクションのドロップダウンをクリックし、Copy ______を選択します。
9.) 新しいアプリに名前を付けるように求められます。 両方のアプリで同じデータベースを使用するためにShare the same databaseをチェックしてください。 ドロップダウンからアプリを配置するチームを選択し、Createをクリックします。
1.) マルチサイドアプリの動作を選択して構築する前に、ユーザータイプまたはロールをデータベース内に確立する必要があります。これにより、ユーザーがどちらのアプリ側を見るべきかを決定できます。これを行うためのいくつかの方法があります。
- ユーザーロールのTrue/Falseフィールド。たとえば、メンター/クライアントの役割がある場合、ユーザーコレクションに2つのTrue/Falseプロパティを追加できます - 1つは「クライアント?」、もう1つは「メンター?」と呼ばれます。 

- ユーザータイプの一意の値を保持する「Role」というテキストプロパティ。多くのロールがある場合、ユーザーコレクションをTrue/Falseプロパティで混乱させることなく、ユーザーの役割を設定できます。たとえば、メンター、クライアント、管理者のユーザーロールがある場合、ユーザーにこれらの値を自動的に設定できます。 

- ユーザーが選択できる多くのロールがある場合は、ユーザーロールというCollectionを作成することもできます。ここでの利点は、ユーザーロールに多くのプロパティを割り当て、そのユーザーロールをRelationshipを介してユーザーに割り当てることができることです。この方法を使用すると、「クリアランスレベル」などをユーザーに割り当てることができ、特定のレベル以上のすべてのユーザーが同じものにアクセスできるようになります。これにより、多くのロールの階層内で複数のユーザーロールに権限を与えることができます。 


どのルートを選択しても、ユーザーに異なるワークフローやエクスペリエンスを提供するために同じロジックを使用できます。これを達成するためのさまざまな方法がありますが、いずれも条件付き可視性または条件付きアクションを使用することで条件付けが必要です。以下は、上記のTrue/Falseメソッドを使用した3つの例を示しています。
ユーザーロールに基づく条件付き可視性の使用
この方法は、ユーザーの役割が特定の基準に一致する場合にのみコンポーネントやボタンを表示するために使用できます。 1.) ユーザーコレクションに"Mentor?"と"Client?"のTrue/Falseプロパティを設定し、アプリにホーム画面とメンターダッシュボード画面を少なくとも2つ設定してください。

2.) 1つの画面に、左上隅の大きなプラス記号をクリックして"メンターダッシュボード"とラベル付けされたシンプルなボタンを追加してください 

3.) 新しいボタンをクリックし、Click Actionsセクションで、2番目の画面にリンクするLinkアクションを追加してください。

4.) ボタンの設定メニューの右上にあるMoreアイコン  をクリックし、Change Visibility
 をクリックし、Change Visibility  を選択してください。
 を選択してください。
5.) VisibilityドロップダウンでSometimes Visibleを選択してください。

6.) "メンターダッシュボード"ボタンをユーザーがメンターである場合にのみ表示されるようにしたいので、可視性を設定する必要があります。Will be visible if...ドロップダウンでLogged In User > Mentor?を選択し、下に表示されるドロップダウンでIs Trueを選択してください。

ユーザーの役割に基づく条件付きアクションの使用
この方法は、ユーザーの役割が特定の基準に一致する場合にのみアクションを実行するために使用できます。
1.) ユーザーコレクションに"Mentor?"と"Client?"のTrue/Falseプロパティを設定し、アプリにホーム画面、クライアントダッシュボード画面、メンターダッシュボード画面を少なくとも3つ設定してください。

2.) ホーム画面に、左上隅の大きなプラス記号をクリックして"ダッシュボード"とラベル付けされたシンプルなボタンを追加してください 

3.) 新しいボタンをクリックし、Click Actionsセクションで、クライアントダッシュボード画面にリンクするLinkアクションを追加してください。

4.) 新しいリンクアクションの設定でShow Advancedオプションをクリックし、When does this happen?ドロップダウンでSometimesを選択してください。 
5.) もう1つのドロップダウンが現れ、このアクションは次の場合のみ発生します... とラベルが付けられます。このドロップダウンで More > ログインユーザー > クライアント? を選択してください。そのすぐ下で、ドロップダウンを Is True に設定してください。

共有データベースを使用して異なるアプリを構築する
ユーザーの役割に基づいてユーザーエクスペリエンスを制御する別の方法は、同じデータベースを複数のユーザー役割ごとに別々のアプリに共有することです。たとえば、Uberにはドライバーアプリとライダーアプリがあります。
1.) 1つのユーザー役割のアプリとそのデータベースを作成したら、それをコピーするか、同じデータベースを共有する新しいアプリを作成できます。新しいアプリを作成するには、Adaloエディタの上部中央のアプリ名のドロップダウンをクリックし、一番下にある Create New App オプションをクリックします。

2.) アプリの種類を選択し、Next をクリックします。

3.) テンプレートオプションから Blank を選択し、Next をクリックします。

4.) アプリに名前を付け、配置する Team と色を選択し、Advanced Options をクリックします。

5.) Share Database with an Existing App オプションを選択し、データベースを共有するアプリを選択します。Done をクリックし、Create をクリックします。

7.) 新しいアプリを作成する代わりにアプリをコピーするには、Adaloエディタの左側メニューで Settings アイコンをクリックします。

8.) Copy/Delete セクションのドロップダウンをクリックし、Copy ______ を選択します。

9.) 新しいアプリに名前を付けるように求められます。両方のアプリで同じデータベースを使用するために Share the same database をチェックしてください。ドロップダウンからアプリを配置するチームを選択し、Create をクリックします。

例
上記の方法のいずれかに従った場合、ユーザー向けのマルチサイドアプリを構築するための良いスタートが切れているはずです。この手順で使用されたアプリを表示またはクローンしたい場合は、こちらをクリックしてください。
もっと詳しく知る
- 同じデータベースを共有する2つ以上の別々のアプリを作成する場合は、それらをアプリストアに別々に公開する必要があります。 
- 優れたマルチサイドアプリの例は、いつでもアプリテンプレートをチェックすることで見つけることができます。 
- ユーザー登録時に役割を割り当てる一般的な方法は、ユーザーがボタンを選択して役割を選択するオンボーディングシーケンスを提供することです。 
- 役割をサインアップ時に割り当てる方法として、フォーム内で自動フィールドとしてそれらを設定することもできます。 
ヘルプ
この記事に関する追加のヘルプが必要な場合は、いつでもコミュニティフォーラムで質問してください!投稿にこの記事へのリンクも貼っておくことを忘れないでください!
チュートリアルやヘルプドキュメントのリクエストがありますか?お知らせください!
Last updated
Was this helpful?
