0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Amazon Honeycodeで欲しいものリストを作る

Last updated at Posted at 2020-11-28

概要

Amazon Honeycodeで欲しいものリストを作ってみた。
備忘録として作り方をまとめる。

前提

  • Amazon Honeycodeのアカウントを持っていること
    ※持ってない人はこちらから。無料で作れます。

完成イメージ

ezgif-6-edc39cb16482.gif

作り方

1.workbookを作る

複数のテーブルをまとめたworkbookを作る。
Excelでいうところのbookのようなもの。

workbookを作る

以下からログインする
https://builder.honeycode.aws/auth/login

表示された画面の右上のにある青いボタン(Create workbook)を押して、[Start from scratch]を選択する
01_createworkbook.png

しばらく待つと、こんな画面にリダイレクトする。
スクリーンショット 2020-06-29 23.03.18.png

左のメニューから表のマークを選んで、workbookに名前を付ける。
ここでは、[Wish Management]とした。
スクリーンショット 2020-06-29 23.03.49.png

これでworkbookができた。

2.欲しいものを保持するテーブルを作る

Excelっぽくテーブルを作っていく。

テーブルを作る

左のメニューから表のマークを選んで、表示された[Table1]を右クリック→[Rename]と選択してテーブルの名前を変更する。
ここでは、[WishItem]とした。
スクリーンショット 2020-06-29 23.04.24.png

データを登録する

下記の図のようにデータを入力する。
スクリーンショット 2020-06-29 23.06.55.png

これでテーブルができた。

3.欲しいものリストを画面に表示する

まずは、アプリケーションを作って、その中に欲しいものリストを表示する画面を作成していく。

アプリケーションを作成する

左側のメニューの真ん中のアイコンを選んで、プラスアイコンをクリックして、[Build your own]を選択してアプリケーションを作成する。
スクリーンショット 2020-06-29 23.07.40.png

[App1]を右クリック→Renameと選択し、名前を[Wish list]に変更する。
スクリーンショット 2020-06-29 23.07.49.png

欲しいものリストを表示する画面を作る

作成した[Wish list]をクリックして、画面を切りかえる。
左側のメニューの上段にある[Webタブ]を選択する。
画面名を[Wishes]にし、画面上部のContentBoxに[Wishes]と入力する。
スクリーンショット 2020-06-29 23.08.53.png

左下の青いボタン(Add objects)を選択し、[Content Box]を選択し、[Content Box]を画面に配置し、下記のように編集する。

  • 表示文言:欲しいものリスト
  • 文字の太さ:Bold
  • 文字サイズ:16px
    スクリーンショット 2020-06-29 23.11.23.png

左下の青いボタン(Add objects)から[Column list]を選択し、画面に配置する。ポップアップが出てきたら、そのまま[Create]を押す。

ここまで出来たら、画面右上の[view app]を押して表示を確認する。
こんな感じの画面が表示されればOK。
スクリーンショット 2020-06-29 23.12.38.png

見た目を変える

本質的ではないけど、好みで見た目を整える。

Searchの入力フォームを消す

[Column list]のプロパティで[Search]のチェックボックスを外す。
スクリーンショット 2020-06-29 23.13.03.png

リストのヘッダを消す

下記の画像で選択しているBlockを削除する。
スクリーンショット 2020-06-29 23.13.09.png

金額項目を見やすくする

金額項目の[DataCell]を選択し、プロパティでDISPLAYタブを開き、下記のように設定する。
良くなったかはわからないが、見た目が変わる。

  • Format:Currency
  • Decimal Piaces:0
    さらに金額項目の[DataCell]の一つ外側にある[ContentBox]を右揃えにする。
    スクリーンショット 2020-06-29 23.14.13.png

ここまで来たら、もう一度[view app]で表示を確認する。
スクリーンショット 2020-06-29 23.14.41.png

これで欲しいものリストを表示する画面ができた。

4.優先度に応じてバッジの色を変える

優先度highを赤色で、midをオレンジで、lowを青色で表示したい。

赤/オレンジ/青のバッジを用意する

優先度を表示している[ContentBox]を選んで、下記のようにスタイルを変更する。

  • 背景色:赤
  • 文字色:白
  • 文字配置:中央寄せ
    スクリーンショット 2020-06-29 23.17.59.png

さらに上記で編集した[ContentBox]を2回コピーする。
コピーで作成された2つの[ContentBox]について、それぞれ背景色をオレンジと青に変更する。
スクリーンショット 2020-06-29 23.18.45.png

優先度の値に応じて、表示するバッチを変える

赤色の[ContentBox]を選択して、プロパティを開き、DisplayタグのSet visibilityのところに下記のように入力する。
=[priority]="high"
スクリーンショット 2020-06-29 23.19.30.png

同様にオレンジの[ContentBox]には、=[priority]="mid"と入力し、青の[ContentBox]には=[priority]="low"と入力する。

ここまで来たら、[view app]で表示を確認する。
スクリーンショット 2020-06-29 23.20.53.png

5.ステータスによって表示を変える

完了済みのアイテムは、✔マークが表示されるようにしたい。

完了済みと未完了のマークを用意する

欲しいものの名前を表示している[ContentBox]の幅を少し短くして、左側に隙間を作る。
スクリーンショット 2020-06-29 23.21.28.png

作った隙間にContent Boxを追加する。
スクリーンショット 2020-06-29 23.22.25.png

追加したContentBoxに「✔」のマークを入れる。このマークは、ひらがなで「ちぇっく」と入力して変換したら出てくると思う。入力したら中央ぞろえにして、太文字にして、緑色にする。
スクリーンショット 2020-06-29 23.23.13.png

上記で作ったContentBoxをコピーして、もう一つContentBoxを作る。
中身を「✔」から「〇」に変更する。このマークは、ひらがなで「まる」と入力して変換したら出てくると思う。
入力したら文字の色を、グレーに変更する。
スクリーンショット 2020-06-29 23.23.58.png

ステータスの値に応じて、表示するマークを変える

緑の✔のプロパティを開き、DisplayのSet visibilityに=[status]="done"と入力する。
同様にグレーの〇のプロパティを開き、DisplayのSet visibilityに=[status]<>"done"と入力する。
これで、ステータスがdoneの時に✔が表示されて、ステータスがdoneじゃないときに〇が表示されるようになる。

これで、一番右側のステータスを表示しているContentBoxがいらなくなるので削除する。
スクリーンショット 2020-06-29 23.25.08.png

ここまできたらview appで表示を確認する。
ステータスに応じてチェックの表示が変わっていることがわかる。
スクリーンショット 2020-06-29 23.26.12.png

6.欲しいもの追加機能を作る

欲しいものリスト追加画面を用意し、欲しいものリストを追加できるようにする。

欲しいものリスト追加画面を作る

左側のScreensの「+」ボタンを押して画面を追加し、画面名を[Add]に変更する。
スクリーンショット 2020-06-29 23.26.12.png

画面の一番上のContentBoxに[Add]と入力し、さらにその下にContentBoxを追加して[欲しいものを追加する]と入力する。
[欲しいものを追加する]の文字サイズを16pxで太文字にする。
スクリーンショット 2020-06-29 23.27.05.png

入力フォームを作る

左下の青いボタン(Add Object)からSegmentを選び、[欲しいものを追加する]の下に追加する。
スクリーンショット 2020-06-29 23.27.37.png

Segmentの中にあるContentBoxの幅を狭くし、空いた領域にDataCellを追加する。
スクリーンショット 2020-06-29 23.28.02.png

DataCellを追加すると自動的にContentBoxも追加されるため、Segmentの中にはContentBoxが左右に並んでいる状態になると思う。
それぞれのContentBoxを3回コピーして、下記のようにする。
スクリーンショット 2020-06-29 23.28.54.png

左側のContentBoxに[欲しいもの][金額][優先度]と入力する。
スクリーンショット 2020-06-29 23.29.13.png

[欲しいもの]の横にあるDataCellのプロパティを開き、名前を[name]に変更する。
スクリーンショット 2020-06-29 23.29.29.png

[金額]の横にあるDataCellのプロパティを開き、名前を[price]に、Formatを[Currency]に、Decimalを[0]に設定する。
スクリーンショット 2020-06-29 23.29.52.png

[優先度]の横にあるDataCellのプロパティを開き、名前を[priority]に変更する。
スクリーンショット 2020-06-29 23.30.09.png

追加ボタンを配置する

BlockにさらにSegmentを追加する。
スクリーンショット 2020-06-29 23.30.31.png

Segmentの中にボタンを追加する。
スクリーンショット 2020-06-29 23.32.17.png

表示文言を[追加]に変更する。横幅と背景色を好みで変える。
スクリーンショット 2020-06-29 23.32.50.png

追加ボタン押下時の動作を定義する

追加ボタンのプロパティを開き、Actionsタブ→Edit automationを選択する。
スクリーンショット 2020-06-29 23.33.17.png

[Add Actions]→[Add row]を選択する。
スクリーンショット 2020-06-29 23.33.27.png

Add row toのプルダウンで[WishItem]を選択する。
スクリーンショット 2020-06-29 23.33.33.png

[Take data from]に=$[name]を、[and write to]に=[name]と入力する。
image.png

Add anotherをクリックして次のフォームを表示し、同様に下記を入力する。

  • [Take data from]:=$[price]
  • [and write to] :=[price]

さらにAdd anotherをクリックして次のフォームを表示し、同様に下記を入力する。

  • [Take data from]:=$[priority]
  • [and write to] :=[priority]

[+ Add actions]→Navigateを選択する。
スクリーンショット 2020-06-29 23.34.38.png

[Navigate to new screen]を選択して、プルダウンで[Wishes]を選択する。
スクリーンショット 2020-06-29 23.34.47.png

欲しいものリスト画面に欲しいもの追加画面へのリンクを配置する

Wishes画面に戻って、画面一番下にSegmentを追加する。
スクリーンショット 2020-06-29 23.35.26.png

Segmentの中にボタンを追加して、表示文言を[追加]に変更する。適当に幅や色を調整する。
スクリーンショット 2020-06-29 23.36.01.png

ボタンのプロパティを開き、Actionsタブ→[Navigate to new screen]を選択し、プルダウンで[Add]を選択する。
スクリーンショット 2020-06-29 23.36.14.png

7.優先度をプルダウンで選べるようにする

欲しいもの追加画面で優先度の入力がフリーテキストになっているので、プルダウンから選べるようにする。

プルダウンの内容を保持するテーブルを作る

左のメニューからテーブルのマークを選び、Tablesの横の+ボタンを選択する。プルダウンが出てくるので、[add a blank table]を選択し、テーブルを追加する。テーブルの名前は、[M_Priority]にする。
スクリーンショット 2020-06-29 23.38.05.png

作ったテーブルに下記のようにデータを登録する。
スクリーンショット 2020-06-29 23.38.32.png

優先度のフォームをプルダウンにする

Add画面に戻り、priorityのDataCellのプロパティを下記の通り変更する。

  • Format:Rowlink
  • Source Type:Table
  • Source table:M_Priority
    スクリーンショット 2020-06-29 23.39.23.png

view appで追加画面を確認する。
優先度がドロップダウンリストで入力できるようになっているはず。
スクリーンショット 2020-06-29 23.39.43.png

8.欲しいもの編集機能を作る

欲しいもの編集画面を用意し、既存の欲しいものを編集できるようにする。
遷移元の画面から編集対象レコードの情報を受け取り、編集画面で編集する流れとなる。

編集画面を作る

Addページをコピーして、Editページを作る。
下記の図で星がついている箇所の文言を、図の通り変更する。
スクリーンショット 2020-06-29 23.40.51.png

遷移元画面から編集対象レコードを受け取るための変数を定義する

画面の最下部にDataCellを追加し、DataCellのプロパティを下記の通り編集する。

  • 名前:WishItem
  • DataタブのType:Variable
    スクリーンショット 2020-06-29 23.42.17.png

さらに、DataCellのプロパティのDisplayタブのVisibilityに=falseと入力する。
スクリーンショット 2020-06-29 23.41.41.png

変数の内容を編集フォームに渡す

フォームをかこっているBlockのプロパティを開き、DataタブのSetSourceに=$[WishItem]と入力する。
スクリーンショット 2020-06-29 23.42.39.png

編集ボタンを作る

ボタンを修正する。
ボタンの文言を[更新]に変更する。
スクリーンショット 2020-06-29 23.42.56.png

ボタンのプロパティを開いて、Actionsタブ→Edit automationを選択して、ボンタ押下時の動作定義を開く。
中断に[Add row to WishItem..(中略)]と記載されたカードがあると思うので、下記図のようにメニューを開いて、Deleteを選択する。
スクリーンショット 2020-06-29 23.43.18.png

Add Actionsボタン→Overwriteを選択する。
表示された入力フォームに下記のように登録する。
スクリーンショット 2020-06-29 23.43.59.png

+Add anotherを選択して、同様に下記のように入力する。
スクリーンショット 2020-06-29 23.44.17.png

さらに+Add anotherを選択して、同様に下記を入力する。
スクリーンショット 2020-06-29 23.44.43.png

欲しいものリスト画面に編集画面へのリンクを用意する

Wishes画面を開き、Listの中に編集ボタンを配置する。
追加したら、適当に色や文言を変更する。
※図ではDataCellを追加しているが、ボタンのほうが良い。
スクリーンショット 2020-06-29 23.46.14.png

ボタンを押したときに、編集画面に対象レコードを渡すように設定する

編集ボタンのプロパティでActionsタブを下記のように編集する。

  • On Click:Navigation to new screenを選択
  • 対象画面のプルダウン:Editを選択
  • Set VaiablesのTake Data From:=THISROW()を入力
  • Set Valiablesのadd write to:=$[WishItem]を入力
    スクリーンショット 2020-06-29 23.46.41.png

9.欲しいもの削除機能を作る

既存のレコードを削除する機能を作る。

削除ボタンを配置する

Wishes画面のListの中にボタンを追加して、文言を[削除]にする。
色を適当に変える。
スクリーンショット 2020-06-29 23.53.40.png

ボタン押下時のアクションを定義する

削除ボタンのプロパティを開き、ACTIONSタブ→Create an auttomationを選択する。
さらにAdd Actionsを選択し、Delete a rowを選択する。
スクリーンショット 2020-06-29 23.53.35.png

List内の各要素の幅や位置を微修正し、下記のように整える。
スクリーンショット 2020-06-29 23.54.40.png

10.完了済みのアイテムの表示非表示を切り替えるトグルを作る

欲しいものリストに完了済みのアイテムを表示するか否かを切り替えるトグルを作る。

トグルの状態を保持する変数を宣言する

画面の一番下にDataCellを追加し、名前を[isDisplayDoneItem]にする。
画面に表示しないため、Visibitlityを=falseにする。
スクリーンショット 2020-06-29 23.56.37.png

とるグルを切り替えるためのリンクを配置する

[欲しいものリスト]の文言の下に、Content Boxを2つ追加し、それぞれ下記の文言を設定する。フォントサイズは12pxとする。

  • ▼完了済みのアイテムを隠す
  • ▼完了済みのアイテムを表示する。
    スクリーンショット 2020-06-29 23.57.40.png

[▼完了済みのアイテムを隠す]のVisibilityを=$[isDisplayDoneItem]=trueにする。
[▼完了済みのアイテムを表示する]のVisibilityを=$[isDisplayDoneItem]=falseにする。
※図は、[▼完了済みのアイテムを隠す]の設定イメージ
スクリーンショット 2020-06-29 23.58.37.png

[▼完了済みのアイテムを隠す]のプロパティでACTIONSタブを開き、下記のように設定。

  • On click:Update current screenを選択
  • valiablesのtake data from:=falseを設定
  • valiablesのand write to:=$[isDisplayDoneItem]を設定
    スクリーンショット 2020-06-29 23.59.10.png

[▼完了済みのアイテムを表示する]のプロパティでACTIONSタブを開き、下記のように設定。

  • On click:Update current screenを選択
  • valiablesのtake data from:=trueを設定
  • valiablesのand write to:=$[isDisplayDoneItem]を設定
    スクリーンショット 2020-06-29 23.59.57.png

トグルの状態によって、Listにバインドするデータの内容を変える

Listのプロパティを開き、DataタブのSet Sourceに下記の内容を入力する。
=if($[isDisplayDoneItem]=true,WishItem,FILTER(WishItem,"WishItem[status]<>""done"""))
スクリーンショット 2020-06-30 00.06.46.png

11・完了済みのステータスをワンクリックで切替らっれるようにする

✔のContent Boxのプロパティを開き、ACTIONSタブのCreate an automationを選択する。
表示された画面で、Add actionsをクリックし、Overwriteを選択する。
スクリーンショット 2020-06-30 00.09.02.png

表示された画面の入力フォームで、下記のように入力する。

  • Take data from:=""
  • and write to:`=[status]
  • スクリーンショット 2020-06-30 00.09.26.png

上記と同様に〇のContent Boxについても、プロパティ→ACTIONSタブ→Create an automation→Add Actions→Overwriteと進み、入力フォームで下記のように入力する。

  • Take data from:="done"
  • and write to:`=[status]
    スクリーンショット 2020-06-30 00.10.03.png

おわり

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?