AWSインフラエンジニアでもスマホアプリを開発できるようになる Amazon Honeycode

# 図解で、ローコードなアプリ開発（プログラミング言語で記述しないアプリ開発）AWS プレビュー編。
Microsoft PowerApps でPCとiPhoneでデータを共有できるアプリ開発ができることは「もうさ、社内アプリはPowerApps使って内作でいいんじゃない？」の記事にある通り確認した。さすがマイクロソフト、とビジュアルなエディタでアプリ開発を楽しんでいたのも束の間、2020年6月24日にAWSから見た目も、出来ることも、ほぼ同じ Amazon Honeycode がベータ版としてアナウンスされた。またか。もうさ、世界をオレンジ色で一色に染めるのそろそろ減速していいんじゃないかな。

## Hoenycode って何？
- Amazon Honeycode は、ビジネスアプリを簡単に作成できる。
- PowerPoint でプレゼンテーションを作るようなスキルで作成できる。
- 作成したアプリはクラウドに置き、PCやスマホで使える（iPhoneでも使える）。
- まだプレビュー中（お試し期間）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/257c4c3b-999d-4288-19be-af472d6a6796.png)

## 何ができたの？
- CSVファイルからウィザード形式で「データ入出力アプリ」を１時間以内に作成できた。
- iPhoneとPCで、同じデータを操作できた。
- まだ本番運用には機能が少ない様に思うが、手軽にスマホアプリが動いた。

## ログイン先が違う
いつものAWSマネージコンソールでは無く、＜https://builder.honeycode.aws/auth/login
＞からログインする。IDとパスワードもHoneycode用をサインアップする。完成したアプリもここからログインして利用できる。現時点のプレビュー版では。

## 最初に試したこと（データ入出力アプリ）
**Amazon Honeycode がどんなものだか知らなかったので、とりあえず試しにiPhoneでデータ入力して、PCで閲覧できるアプリを作ってみた。無料プランのBASICをサインアップ（米国西部オレゴンリージョンを選びます［東京リージョンは未だ無い］）**

(1) 新規にExcelファイルを開いていい加減な表データを作成してCSV形式でファイルを保存。
(2) 作成したCSVファイルをインポートします（Amazon Drive に保存）。
(3) うーぷす。文字コード間違えたかな、インポートエラーが出てしまった。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/b0330871-dd2e-e886-de42-1aa84d667833.png)

(4) 調べる余裕なかったので英語ASCIIだけでCSVファイルを再作成してトライ。今度はSuccess!

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/a529e2ac-b4c4-a236-4d2d-8948381dca99.png)

(5) AWS オンラインドライブでワークシートを編集できた。何だかAWSでワークシートというのが新鮮。
(6) ここで、データカラムの属性を設定する。例えばA列の日付はカレンダー形式にする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/84ff0c34-0a7c-0538-8798-f242ee3198bd.png)

(7) いよいよ、アプリを作成するウィザードを実行する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/497d259e-02b9-9714-f6dd-e90094ca9af8.png)

(8) ウィザード１頁め：データ一覧となるリストビューを作成する。
(8)-1. アプリで使うデータカラムを選ぶ（不要なカラムを削除する）
(8)-2. 画面見出し[Table1]を[サービスリクエスト]に変えてみる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/cdf6fead-20bb-a4a2-6945-86a9e7fb1f4c.png)

(9) ウィザード２頁め：レコードを編集する画面を作る。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/a751e757-3824-e1ca-237e-f9be5ba5e6be.png)

(10) ウィザード３頁め：新規レコードを追加する画面を作る。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/a004653e-7406-eb34-4ae1-7d4757ebef5c.png)

(11) ウィザード４頁め：最後のステップ。アプリの名前を決めたら、作成したアプリを試す。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/7a62faef-7cd0-8d49-49b6-24c4b5dad8c5.png)

## アプリの動作確認（PC画面編）
ウィザードで作成したアプリをパソコンで起動する。テキストしかないのでしんみりした画面だけど、ちゃんと［+Add］ボタンを押して新規データを入力できたよ。インプットボックスは、ちゃんとカレンダーコントロールで日付入力ができる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/6968d05b-552e-68ee-0d62-ea6ea4ac6d05.png)

入力したデータを削除できるかな。［本当に削除していいですか？］の確認メッセージも無く、即削除された。これはウィザードになかったのでコード追加しなきゃダメかな。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/d5b748eb-986f-fe4c-f592-d1cabe067457.png)

## いよいよアプリの動作確認（スマホ編）
Honeycode編集画面の左側にメニューがあって、Mobile と Web を切り替えるだけ。スマホビューが表示される。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/bcc46676-75d0-d813-aa64-8af2e9ce7498.png)

**実はここがポイント。Microsoft PowerApps同様に、[AppStore]で iPhone に、アプリ実行環境である[Amazon Honeycode] アプリをインストールする。**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/95cfd92e-57b0-9e26-c56b-63b557a3f222.png)

**iPhoneでアプリを実行！　たらーん**　先ほど作ったアプリ１個（サービスリクエスト）のメニューが表示されている。タップする。試しにスマホで新規レコードを登録する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/5af1f6ee-4d23-0251-69d5-5f8dc8aba3a9.png)

## 今回できたこと。
iPhoneで追加したレコードは、パソコンのアプリでも同じレコードを閲覧することができた。プログラミング言語でのコード記述はゼロ。ノーコードでスマホアプリを作ることができた。あ、WEBブラウザアプリも同時に出来てた。これ、そのまま Microsoft PowerApps じゃないですか。Honeycode のUIコンポーネントは未だ少ないので地味な画面、例えばデフォルトで選べるアイコンは４個だけとか。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/8896af03-445d-2771-d972-7164c60a9dbc.png)

## あれ？　Honeycode Automation って何だ？
他にも機能があった。Automation だ。指定した日時やデータ追加/削除/変更などのイベントでアクションを実行できる様だ。試しに午後20:00になったらデータ複製とメール送信をしてみよう。時刻設定はUTC（英国時間）なので注意。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/fcbeb2ce-bb0d-8438-e7dc-90d8a64df7c1.png)

**(1) 自動実行する時刻を設定して**
**(2) レコード(row)をテーブルに追加して２カラム記入して**
**(3) メールを送る。メール件名、メール本文を書いて...。**

って、これも Micorsoft Automation そのままか。なんて分かりやすい。追加できる機能コンポーネントは未だ少ないのかな。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/96ce3ff1-4422-9568-d976-054fc17bfd20.png)

**そして、時間になった**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/1542c862-f6ea-0436-2dd4-d2974c6d25c9.png)

**メールが届いた。「新しいデータが登録されたよ」**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/df088d76-731b-f720-2754-2bb283361ecf.png)

**アプリで追加されたデータを確認したよ**　設定間違えたかな。既存レコードが全て複製されたようだ、　｝の部分。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189936/0bdd8f22-2c43-0edd-6076-074ba773463b.png)

## まとめ
今回はプログラミング言語を１行も記述しないで、データ入力とデータ表示をする、WEBアプリとスマホアプリができた。つまり、プログラミング経験が無いインフラエンジニアでもスマホアプリを開発できるようになる時代がすぐに到来するような気がする。あ、違うな。サーバーOSを用意しないでアプリが動くんだからインフラエンジニアの仕事無くなっちゃうのかな...。
もう少し Amazon Honeycode で何ができるのか試してみたいけど、今、本当に使うアプリを作るなら機能が豊富な PowerAppsだよね。だけどAWSの機能拡張スピードすごいから今後も動向をウォッチしようと思う。

| Microsoft       | AWS           |Google            |OracleCloud        |
|:-----------------|:-----------------------------|:---------------------------|:----------------------|
| One Drive        |Amazon Drive |Google Drive       | |
|Excel |Amazon Workbook | Google SpreadSheet| |
|Microsoft PowerApps | Amazon Honeycode | Google App Maker | Oracle Visual Builder|
|Power Automate(旧Flow) | Honeycode Automation | |Flow by TIE Kinetix |