日本発ノーコードアプリ開発ツール『Click』

【初心者向け】Product Huntのクローン作成2|ノーコード開発ナレッジ【Bubble】

概要

Bubble公式ホームページでは「How to Buidシリーズ」と称して、有名アプリのクローンを作成する方法が公開されています。

本記事では米・シリコンバレー発のプロダクト投稿・評価サイトである「Product hunt」のクローンを作成します。

全て日本語で解説しますので、初心者の方も安心して下さい。

本記事は第2部となってます。エレメントの設置とデータベース設定はこちらをご覧ください:Product Huntのクローン作成1

方法

1.ワークフローの設定(プロダクトの新規投稿)

ユーザーがプロダクトをコミュニティに投稿する機能を実装します。

STEP.1
"Upload page"の「投稿」ボタンをクリックした時のワークフローを設定します。

STEP.2
"Create a new thing..."アクションを追加します。

STEP.3
データタイプ「プロダクト詳細」を選択し、各項目を指定します。

STEP.4
"Create a new thing..."アクションを追加します。

STEP.5
データタイプ「プロダクト」を選択し、各項目を追加します。

「追加情報」に直前に作成した「プロダクト詳細」を指定することで、異なるデータタイプのデータに関係性を持たせることができます。

STEP.6
続いてプロダクトが公開された日付を定義します。"Create a new thing..."アクションを追加します。

STEP.7
データタイプ「公開日」を選択し、各項目を追加します。

「公開プロダクト」は複数の「プロダクト」を含むリスト型のデータです。

日付はテキスト型で保存するため、見やすい表示に設定しておきます。

STEP.8
アクションの実行条件を設定します。

データベース内に日付がまだ存在しない場合にのみ、新しい日付を作成する条件を追加します。

この条件がないとプロダクト作成のたびに重複する日付が作成されてしまいます。

データベース内で作成しようとしている日付を検索し、ヒットした数が0(=存在しない)であれば、新しい日付が作成されます。

STEP.9
"Make changes to a list of things..."アクションを追加し、日付が既に存在している場合のアクションを設定します。

STEP.10
データタイプ「公開日」を選択し、各項目を指定します

データベースから作成しようとしている日付と一致する「公開日」を検索します。

日付はテキスト型で保存しているため、「yyyy年m月d日」のフォーマットは間違えない様に注意して下さい。

該当する「公開日」の「公開プロダクト」に新しく作成した「プロダクト」を追加します。

今度は日付が存在する(=count “is not” 0)場合のみ、アクションが実行されるように設定します。

STEP.11
"Reset inputs"アクションを追加します。

これでプロダクトの新規投稿ワークフローの設定は完了です。

2.ワークフローの設定(公開日ごとにプロダクトを表示する)

投稿されたプロダクトを公開日ごとに表示する機能を”Repeating Group”で実装します。

“Repeating Group”はデータベースと統合して、動的なコンテンツのリストを表示・更新することができます。

ここでは2つのRepeating Groupを重ねて使用し、日付のリストと各日付に含まれるプロダクトのリストを表示します。

STEP.1
"Home page"に設置した各エレメントの設定をします

STEP.2
外側のRepeating Groupを以下の画像の通りに設定します。

STEP.3
内側のRepeating Groupは以下通りです。

STEP.4
各エレメントはRepeating Groupから動的データを呼び出します。設定は以下の通りです。

実装テスト

まだいくつかの機能を実装しますが、一旦テストします。

STEP.1
"Upload page"から"Preview"をクリックし、プレビュー画面を表示します。

 

 

STEP.2
プロダクトの情報を入力し、「投稿」ボタンをクリックします。

STEP.3
投稿されると入力がリセットされます。適当な情報を入力し、3つほどプロダクトを新規作成してください。

STEP.4
"Home page"から"Preview"をクリックします。投稿したプロダクトが日付でまとめて表示されます。

これでProduct Huntのコア機能である投稿機能が実装できました。第3部でイイね!機能や検索機能なども実装していきます。