HoneyCodeで簡単なタスク管理アプリを作る　～画面表示編～

#概要
HoneyCodeでアプリを作るための練習としてサンプルを使用せずに、簡単なアプリを作成してみようと思います。
タスク管理アプリを作ってみようと思います。
今回の記事では、タスク管理アプリでタスクを表示する部分まで作成します。
タスクの追加及び削除は、別の記事で行います。
今回の完成品は、以下です。
![20200703_110850.GIF](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/ba82243d-2259-b2f1-62a3-3a96233dbecc.gif)

#Workbookの作成
まず、新規でWorkbookを作成する場合は、画面右上のCreate workbookをクリックしてください。
すると、
以下のようなポップアップが出てきます。
![スクリーンショット 2020-07-03 8.14.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/241b35f4-330b-7878-50aa-8631ed00dea0.png)


今回は一から作るので、Start from scratchをクリックしてください。
すると以下のようなスプレッドシートが出てきます。
![スクリーンショット 2020-07-03 8.25.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/66bde63c-9c7b-bc6d-8b49-05ccb9aab89b.png)

これでWorkbookの作成部分は完了です。

#Workbook名を変える
デフォルトWorkbook名は、Unititledとなっています。これだとわかりにくいので、Workbook名を変えたいと思います。

左側のスプレッドシートっぽいマス目がたくさんあるやつをクリックしてください。
するとこんなのが出てきます。
![スクリーンショット 2020-07-03 8.25.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/747e0821-99d1-3e4b-e11d-b21360d39846.png)


ここの一番上をクリックするとWorkbook名を編集できるので、ここでは、「Task management」という名前にします。
![スクリーンショット 2020-07-03 8.27.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/ce057816-2ac9-1f21-8e94-273411d07093.png)

アプリ名には、日本語もいれることができました。
ただ、Enter Keyを押すたびにするたびに入力が完了するあつかいだったので、日本語を使うのは良くないかもしれません。

これでWorkbook名の変更は完了です。

#Workbookの編集
Workbookの編集をやっていこうと思います。
基本的にスプレッドシートやエクセルと同様にセル単位で編集することや行単位で編集することができます。
ここでは、タスク管理なので一番上の列に「タスク」、「担当者」、「担当者Filter用」、「期限」を追加します。
![スクリーンショット 2020-07-03 10.42.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/d525db99-0bff-38d4-b6a3-be78bb4bbaef.png)

##各項目の説明および設定方法
今回は、「タスク」の所に何をするのかを記載して、「担当者」の所に誰がするのかを記載し、「期限」の所にmm/dd/yyの形式で記載されたそのタスクを終わらせるまでの年月日を記載することにします。
「担当者」の部分ですが、毎回名前を入力するのは面倒なので、プルダウン形式で選択できるようにします。
また、workbookを共有している全員を選択できるようにContactというフォーマットを使用します。
フォーマットを使用する方法ですが、変更したい列を選択した状態で、「Formats」をクリックします。
クリックすると右側に以下のようなものが出ます。
写真
このFormat column as: の中に「Contact」があるのでそれを選択してください。
選択後「Display Preference」の中から表示したい形式を選択してください。
現在は以下のような表示ができるようですが、今回は名前のみとします。
![スクリーンショット 2020-07-03 9.01.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/89ff910b-13a8-ae52-480c-33da85c242e6.png)
このFormat column as: の中に「Contact」があるのでそれを選択してください。
選択後「Display Preference」の中から表示したい形式を選択してください。
現在は以下のような表示ができるようですが、今回は名前のみとします。
![スクリーンショット 2020-07-03 9.04.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/39960320-607c-2707-67c1-f75c4d8e557e.png)

選択が終わったら、画面右下のApplyをクリックしてください。
すると選択した列が以下のようにプルダウンできるようになっています。
![スクリーンショット 2020-07-03 9.06.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/6581fff6-8371-dd88-f019-a039dd5bca0a.png)

（メールアドレス部分は削除しています。）
現在は、このworkbookを共有していないので一人分しか表示されませんが、workbookを共有すると、以下のように複数人表示することもできます。
![スクリーンショット 2020-07-03 9.13.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/65fc8fba-fd51-3264-6e1a-ea6314892a00.png)
（メールアドレス部分は削除しています。）

workbookの共有方法は別のQiita記事として記載しておきましたので、そちらを参照してください。
[HoneyCodeでworkbookを共有する方法](https://qiita.com/sirajirasajiki/items/eeb074b83a3a595ac257)

###担当者Filter用が必要な理由
アプリで表示する時に自分の担当分のタスクのみみたいな感じでフィルターをかけたい場面があると思います。
これを実現したかったのですが、フォーマットがContactの場合、何故かうまくいかなかった（Errorと表示されます）からです。
なので担当者Filter用で名前のみを設定します。
設定方法は、以下のようにすれば名前だけを持ってくることができます。
=[担当者][First Name]
Contactは、First Name以外にもメールアドレスを取得する場合は、[First Name] の部分を[Email]に変えるとでき、[Phone Number]に変えると登録している電話番号になります。[Phone Number]は登録していない場合だと、0になります。[Last Name]にするとLast Name部分だけになります。
今回は、登録に失敗していたので、全部First Nameあつかいになっています。
登録する時に、名字と名前の間に半角スペースを入れると、その前後でFirst NameとLast Name判断してくれるみたいです。
今回は、フォーマットのCOLUMN FORMULAの部分に=[担当者][First Name]を入れます。

同様に、期限の部分もmm/dd/yyの形式になるように、フォーマットの設定を行います。
今回は以下のように設定しました。
![スクリーンショット 2020-07-03 10.42.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/1b1622d4-f5f1-4049-3bd7-84caedfd68b2.png)


以上でworkbookの準備は完了です。

#アプリ画面の作成
workbookの作成だけだとアプリに表示できないので、アプリの画面を作成していきます。
今回は、スプレッドシートの中身を表示するアプリにするため、表示する場所のみを作成します。
画面の作成をする時は、マス目がたくさんあるマークの下にある菱形がたくさん繋がっているマーク（Builder）の部分をクリックしてください。
するとこんな画面が出てきますので、プラスマークを押して今回は、Build your ownをクリックしてください。
![スクリーンショット 2020-07-03 9.25.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/f9493a8a-cf36-833a-9418-24606051c20f.png)

ちなみにUse app wizardを使うと簡単に追加及び削除まで入ったアプリを作成することができます。
ただ、今回は、勉強のために表示部分のみを作成するのでBuild your ownを使います。
特に不要な方はUse app wizardを使用してください。

Build your own をクリックすると以下のような画面が出てきます。
![スクリーンショット 2020-07-03 9.35.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/1b3f95a2-d785-aaa0-a202-df8031632032.png)

真ん中にあるのは、アプリでどのように表示するかの画面になります。
左側の「Screens」の下にあるのは、このアプリはどのくらいの画面があるのかを示します。
「Screens」の右にあるプラスは、アプリの画面を増やすことができます。
その上にあるMobaileとWebに関しては、それぞれの環境でどのように表示されるのかを見ることができます。
画面左下にあるAdd objectsは、画面にどんな項目を置くかを決めることができます。
以下のようなものが選べます。
![スクリーンショット 2020-07-03 9.41.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/cb8f0159-823b-b33b-410e-a51d2298b8a6.png)

一番したのTable1は、データを取得したいスプレッドシートを示します。
今回は、Table1のスプレッドシートの中身を置くので、「DATA & DISPLAY」の項目内の「Column List」を選択します。
選択すると以下のように表示されます。
![スクリーンショット 2020-07-03 9.44.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/8735e40b-18f5-7824-41de-8fb70ccde89d.png)

「Allow users to filter list」は、項目毎にフィルター機能をつけることができます。
例えば、担当者でフィルターをかけることができます。
ただし、contactの項目はフィルターかけれないみたいです。
なので「担当者Filter用」を使用してフィルターをかけたいと思います。
「Add a detail screen」は、その行の詳細な内容を表示するというものです。
ホームの画面では表示していない内容をこの画面で表示することができます。
こんな感じで表示されます。
![スクリーンショット 2020-07-03 11.00.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/4aa0a98b-af36-7221-d64b-cf1fa0b34b3d.png)

記事の最初でも置きましたが、これを実際にアプリとして動かすとこのようになります。
![20200703_110850.GIF](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/ba82243d-2259-b2f1-62a3-3a96233dbecc.gif)

今回は、以上になります。

#次回予告
タスク管理するのに毎回HoneyCodeのWorkBookをいじるのは面倒なのでここをアプリでできるようにしたいと思います。

#感想
簡単なアプリでしたが、普通のスプレッドシートやExcelにはない「Contact」という項目が、便利だと思いました。
また、簡単なことでも触ったことないものだと結構時間がかかると思いました。

#最後に
何か間違っているところがあれば、ご指摘いただけると嬉しいです！