AmazonHoneycodeノーコードで出退勤アプリを作成してみた

こんにちは、入社二年目のあいあいです。
前回はAmazon Honeycodeのテンプレートを使ってToDoリストを作成しましたが、
今回はテンプレートを使用せず出退勤アプリを作成していきます。

AmazonHoneycodeのおさらい



Amazon Honeycodeには4つの特徴があります。
(前回のブログの概要と同じです。)

  1. すぐに使える一般的なアプリケーションのテンプレートがある
  2. データベースの構築はしないで、スプレッドシートがデータベースのように機能する
  3. コードを記述しなくてもモバイルおよびウェブアプリケーションを構築できる
  4. チームと共有できる

作成した出退勤アプリについて


出勤・退勤ボタンを押下し、押下した時間を登録するだけという非常に簡単なアプリです。
画面は以下の4つを作成しました。

  1. 出退勤一覧画面
  2. 新規登録画面
  3. 詳細画面
  4. 出退勤ボタン画面


1.2.3の画面は、Wizardsを使って簡単に画面を作成します。

出退勤アプリを作ってみる


開発の流れは以下の通りです。

  1. サンプルデータ(CSVファイル)を準備する
  2. Amazon Honeycodeへサンプルデータをインポートする
  3. アプリケーションを作る(Wizards)
  4. アプリケーションを作る(Builder)
  5. アプリケーションを動かしてみる

    では、さっそく作成していきます。

1.サンプルデータ(CSVファイル)を準備する



Amazon HoneycodeへインポートするためのCSV形式のファイルを準備します。
以下のようなデータを準備しました。

出勤時刻 退勤時刻 休憩時刻 稼働時間 出社日 備考 ユーザー
9:00 17:00 1:00 7:00 2020/10/1   あいあい
9:30 17:30 1:00 7:30 2020/10/2 電車遅延 あいあい


※注意
CSVファイルはUTF-8で保存してください。
私は最初、SJISで保存したらファイルがインポートできませんでした…。


2. Amazon Honeycodeへサンプルデータをインポートする



Amazon Honeycodeにログインし、画面右上の「Create workbook」ボタンを押下し、「Import CSV to table」を選択します。


CSVファイルを選択、「Workbook name」を変更し、「Create」ボタンを押下します。


CSVファイルのインポートに成功すると、Tableが表示されます。


Table名の変更と、データの書式を定義します。
書式の設定は画面上部の「Formats」を押下し、
「FORMAT」を指定し「Apply」ボタンを押下します。


稼働時間は、「退勤時刻 - 出勤時刻 - 休憩時間」で計算をするので、「FORMULA」に数式を入れておきます。




※注意
ユーザーは、インポートしたサンプルデータとユーザーアカウントの関連付けが自動的に行われません。
「FORMAT」で「Contact」 と選択し、各セルをクリックしてユーザーを再度選択してください。


3.アプリケーションを作る(Wizards)



Wizardsを使うと素早くアプリケーションを作成することができます。


画面上部の 「Build app」 アイコンをクリックし、「Use app wizard」 を選択します。 


①一覧画面のデザインを行います。
データ項目の削除は「×」ボタン、追加は「+ Add colum」、入れ替えはドットをドラックして変更します。
一覧画面のデザインが完了したら、「Next」ボタンを押下します。


②詳細画面のデザインを行います。
鉛筆マークで、編集するかしないかを選択できます。
詳細画面のデザインが完了したら、「Next」ボタンを押下します。


③新規登録画面のデザインを行います。
データ項目の削除は「×」ボタン、入れ替えはドットをドラックして変更します。
詳細画面のデザインが完了したら、「Apply」ボタンを押下し、デザイン終了です。


4画面中3画面の作成が終わりました。
詳細画面に戻るボタンがないなど、少し修正は必要ですが、ここでは完成とします。
次は出退勤ボタン画面を追加していきます。


4.アプリケーションを作る(Builder)



Builderを使って、出勤・退勤ボタンを追加します。
出退勤ボタン画面では、「ユーザー」を選択し、
「出勤」ボタンを押下したら、”出社日”・”出勤時刻”・”ユーザー”が登録できるように、
「退勤」ボタンを押下したら”退勤時刻”・”休憩時間”・”稼働時間”を登録できるようにします。




Screensから新しい画面を追加し、その画面にボタンを二つ追加、ユーザー選択するための「Data Cell」を準備しました。
スクリーンの名前を「attendance button」、ボタンをそれぞれ「出勤」「退勤」としました。



まず最初に、「ユーザー」を選択する「Data Cell」の設定をします。
「Editable」にチェックを入れて、「DISPLAY」の「Format selection as:」で「Contact」、「Display Preference」で「Adam Brown」を選択します。



次に「出勤」ボタンを選択し、「ACTIONS」から「Create an automation」をクリックします。
「+ Add actions」をクリックし「Update or insert row」を選択します。
テーブルを選択し、「Match row from~~」の箇所に、データを更新または挿入する条件を入れます。

If this data: Is in attendance column:
=TODAY() =[出社日]
=$[DataCell1] =[ユーザー]



「Update matched rows in,~~」の箇所にデータを登録する条件(以下参照)を入力します。

Take data from: and write to:
=$[DataCell1] =[ユーザー]
=NOW()+9/24 =[出勤時刻]
=TODAY() =[出社日]



※Honeycodeでは、関数と数式を利用することができます。
NOW()関数はUTCを基準にしているため、JSTへの変更が必要になります。




「退勤」ボタンも「出勤」ボタンと同様に、「Match row from~~」までは同じです。
データを登録する条件(以下参照)を入力します。

Take data from and write to
=$[DataCell1] =[ユーザー]
=NOW()+9/24 =[退勤時刻]
=TODAY() =[出社日]
=attendance[退勤時刻]-attendance[出勤時刻]-attendance[休憩時間] =[稼働時間]
0:00 =[休憩時間]



※注意
稼働時間の「as a:」の箇所にある「Value」と「Formula」の選択は、
「Formula」にしないとうまくいきません。
私はここでずっと躓いていました…。


「出勤」・「退勤」ボタン押下後は「一覧画面」に画面遷移してほしいため、
「Add actions」をクリックし、「Navigate」で「attendance」を設定します。


これで、「出勤」・「退勤」ボタンの完成です。

5.アプリケーションを動かしてみる



右上にある「View app」を押下して動かしてみます。
作成した画面は以下です。


ユーザーを選択して、「出勤」ボタンを押下します。
一覧画面に”出社日”・”出勤時刻”・”ユーザー”が登録できました。


次に、「退勤」ボタンを押下します。


”退勤時刻”・”休憩時間”・”稼働時間”の登録ができました。

まとめ


作成した出退勤アプリにはまだまだ課題はたくさんありますが、
テンプレートを使用しなくても1~2日でアプリケーションを簡単に作成することができました。
Excelを使ってなにか業務をしている人は、Honeycodeを使ってアプリケーションを作成してみてはいかがでしょうか。

 

アプリケーション開発バナー

AWS相談会バナー