モバイルミニハッカソン参加記録

こんにちは、バックエンドコースのakinoriです。

6/25(2023)にモバイルミニハッカソンが開催されました。約8時間でアイデア出し、実装、そして発表という超短期間で駆け抜けるイベントです。

自分はAmazon HoneyCodeというツールを活用したいという動機で個人参加させていただきまして、非常にありがたいことに優勝することができました。

この記事ではサービスアイデアの紹介、活用した技術、Amazon HoneyCodeを紹介したいと思います

他のチームのコンテンツもとても素晴らしく、このような貴重な機会を提供してくださったYoくんに大変感謝申し上げます。

💡
このブログ全体ではCanvaを活用してスライド制作を行いました。とても便利なのでお勧めです。

サービスアイデア

『EmoTracker』~感情分析×日記~

考案したサービスは、日記を投稿すると投稿内容のモチベーションを判定してくれる『EmoTracker(エモトラッカー)』です。以下は簡単なデモのスライドです。より多くの機能を実装予定でしたが、後述の理由より機能を絞って実装しました。

ハッカソンでは誰かのペインを解決するサービスに思案を巡らすことが多いですが、今回は『こんなサービスあったらいいな』みたいな感性も大切にしようと思いました。

何が起きた日か・誰と出会った日にワクワクしたのか、どんな時に気分が沈むのかを知ることができれば、日記は過去の記録から未来への道標になるんじゃない?みたいな。

『日々の記録である日記を、その時の感情と共に振り返るアプリ。自分の新しい一面に気付けるかも』というコンセプトです。

将来的に実装したい機能

将来的には下記機能を実装できれば良いなと思っていました

  1. 活動への感じ方をカテゴリに自動整理する機能
  2. ネガティブな投稿にAIが応援する機能
  3. モチベーションの変化に焦点をあてて、自身の価値観を整理するモチベーショングラフを自動生成する機能

アイデア創出フェーズで感じたこと

個人参加ということもあり、アイデア創出のアプローチに悩みました。そんな時に沢山の示唆を与えてくれた「プロダクトマネジメントのすべて」には大変助かりました。(めっちゃ分厚い本ですが…。)

プロダクトマネジメントのすべて 事業戦略・IT開発・UXデザイン・マーケティングからチーム・組織運営まで | 及川 卓也, 曽根原 春樹, 小城 久美子 |本 | 通販 | Amazon
Amazonで及川 卓也, 曽根原 春樹, 小城 久美子のプロダクトマネジメントのすべて 事業戦略・IT開発・UXデザイン・マーケティングからチーム・組織運営まで。アマゾンならポイント還元本が多数。及川 卓也, 曽根原 春樹, 小城 久美子作品ほか、お急ぎ便対象商品は当日お届けも可能。またプロダクトマネジメントのすべて 事業戦略・IT開発・UXデザイン・マーケティングからチーム・組織運営までもアマゾン配送商品なら通常配送無料。

本来はこの時くらいアイデア創出に時間をかけたかったのですが、1dayなので、詰め切れないところは割り切っていました。

Cookpad Summer Internship 2022 最優秀賞獲得〜インタビュー〜 | 株式会社Shinonome
当社が運営する大学生向け教育コミュニティ PlayGround のバックエンドコースに所属する早稲田大学法学部 3 年の Akinori さんが、Cookpad Summer Internship 2...

活用した技術

さて、今回のアプリ開発で用いた技術を紹介します。メインの「Amazon HoneyCode」については次のセクションで紹介します。以下はアプリ開発で用いた技術を図にしたものです。

Amazon Connect

いきなり図に記載されていない技術の紹介です。

実は当初は『EmoTracker』を開発する予定ではなく、タスクを登録すると決められた日時に自動的に電話をかけるコールサービスを開発する予定でした。(応答内容次第では再度電話をかける機能も付ける予定だったのです。)

そのサービスのコアとなるのが、AWSが提供するAmazon Connectでした。Amazon Connectはクラウド上でコンタクトセンターを低コストで開発できるサービスです。

Amazon Connect(クラウドベースのコンタクトセンター)| AWS
Amazon Connect は、あらゆる規模の顧客窓口をセルフサービスで構築して、より良いサービスを低コストで提供できるクラウド型コンタクトセンターサービスです。 世界中のスタッフが日々何百万件もの問い合わせに対応するアマゾンのコンタクトセンターと同じ技術が Amazon Connect に使われています。

ところが、電話番号の利用には一手間必要であり、残り数時間で完成することが難しい状況で、泣く泣く諦めることとなりました。このことを浅く知っていたのですが、検証をもっと早くにすべきでした。

とはいえ、ほんとに直感的なUIでコンタクトセンターを立ち上げられそうで、また機会があれば挑戦したいなと思っています。

Amazon Comprehend

今回のアプリで感情分析を担当していたサービスです。Pythonで感情分析を実装するコードを書いてもよかったのですが、Amazon Connectの利用を諦めた関係で、Amazon Comprehendに頼りました。

Amazon Comprehend(テキストのインサイトや関係性を検出)| AWS
Amazon Comprehend は、機械学習 (ML) を使用して非構造化データやドキュメント内のテキストから情報を発見する自然言語処理 (NLP) サービスです。

Amazon Comprehendは、文書を解析して以下のような機能を提供してくれるサービスで、今回はSentiment(感情分析)を主に活用しました。なお一部日本語非対応です。

  • 名詞抽出
  • キーワード抽出
  • 言語:テキストの言語を判断します。
  • 個人識別可能情報(PII)
  • 感情分析:以下の4カテゴリーで判断してくれます。
    • Neutral
    • Positive
    • Negative
    • Mixed
  • 単語別感情分析
  • 文法
💡
個人的な使い方ですが、重要なメッセージ送信時に、PositiveかNeutralか判断してもらったりしています。

AWS LambdaとAmazon API Gateway

この二つは感情分析するデータを受け取り、Amazon Comprehendで感情分析をしてもらい、その結果を返すために利用しました。

Amazon API Gateway で AWS Lambda を使用する - AWS Lambda
Amazon API Gateway で AWS Lambda を使用する方法

AWS LambdaはFasS(Function as a Serivice)の一つで有名なサービスですね。クラウド上で関数を定義するだけで利用できるという圧倒的な利便性があります。WEBフレームワークを使うまでもない場合は大変助かるサービスです(もちろんAWS App Runnerなど他にも便利なサービスが沢山あります)。

Amazon API Gatewayも開発者であれば聞いたことがあるサービスの一つかと思います。API Gatewayを用いれば、とても簡単にAPIを用意し、制限やモニタリングもできます。

久しく利用していなかったこともあり、POST通信で少し躓きましたが、何とか『EmoTracker』を形にできたのは、この二つのサービスのおかげです。

Zapier

自動化に取り組んだことがある人は一度は聞いたことがあるサービスである「Zapier(ザピアー)」で、コードをほとんど書かずに業務の自動化を実現できるサービスです。こちらに事例が紹介されているのですが、とても凄いですよね。

Zapier(ザピアー)とは できることや使い方・活用例・料金を紹介 | ツギノジダイ
ビジネスを成功に導くには、反復作業や人的ミスに繋がる作業に費やす時間を極力省き、収益があがる作業の時間を最大限確保することが重要です。Zapierを使えば手作業の反復を自動化できるので、生産性の大幅な向上が期待できます。Zapierの専…

『EmoTracker』では、以下のようなワークフローを作成しました。

  1. Amazon HoneyCodeで新レコード(日記の投稿)が追加される。
  2. 新レコードのテキストを用意した感情分析APIに送信する。
  3. レスポンスから感情分析の結果を取り出して、新レコードの感情分析記載欄を更新する。

ステップ2では、APIにリクエストを送信するためにPythonを書く必要がありました。しかしそれ以外はノーコードです。異なるアプリケーション間で自動化を考えている方にはZapier、非常におすすめです。

VSCode ThunderClient

APIのテストでは普段はPostmanを利用していたのですが、友人がこちらをお勧めしてくれたので利用してみました。VSCode内で簡単に使えますし、何よりも軽いので、今後も短期の開発には大活躍しそうです。

一方でgRPCが利用できなさそうな点は少しデメリットになるかもしれません。とはいえオススメです。

Thunder Client - Rest API Client Extension for VS Code
Thunder Client is a hand-crafted lightweight Rest API Client extension for Visual Studio Code

Amazon HoneyCode

Amazon HoneyCode(ハニーコード)はノーコードでWEB・モバイルアプリを構築できるAWSのサービスです。Google SpreadSheetsなどで慣れ親しんだスプレッドシートモデルによりアプリを構築できるため、プログラミング未経験者にとっても便利なサービスかと思います。

Amazon Honeycode のご紹介 – コードを記述せずにウェブ & モバイルアプリを構築する | Amazon Web Services
VisiCalc は 1979 年に発売され、私は Apple II 用にコピー (右に表示) を購入しました […]

ざっくり解説

ざっくりと解説をしようと考えていたのですが、こちらの記事で大変丁寧に記載されていましたので、記事を共有させていただきます。

活用事例

実際にAmazon HoneyCodeが導入された事例として、紙を用いた健康調査をHoneyCodeを活用して改善した記事が紹介されています。

Amazon Honeycode で学校の安全な開校を支援 | Amazon Web Services
(この記事は、 Helping schools open safely with Amazon Honeyco […]

一般的に独自のアプリケーションの構築には専門的な知識が要求されることがありますが、専門知識を必要とせず、また瞬時にユーザーの要望を実現できることは非常に素晴らしいですね。

導入

現在(2023年7月時点)は、こちらのようにBASIC、PLUS、PROの3プランが用意されています。

実証として用いるであろうBASICプランはこのような特徴があります。

  • 無料である。
  • データベース2500行の利用が可能である。
  • 20名までのチームで共有可能である。
  • AWSアカウントが不要である。

デプロイ

Amzon HoneyCodeで構築されたアプリケーションは、WEB上でも確認ができますが、AppStoreなどで専用の『Amazon HoneyCode』アプリをダウンロードすることで簡単に利用できます。

業務システム開発で、WEB・ネイティブでも動作するノーコードツールは珍しいのでないでしょうか。また専用アプリのダウンロードというステップが必要になりますが、アプリが乱立しない点で優れていると思います。

変更はWEB・アプリに即座に反映されるため、要望に対して即時にデモをお見せできます。

テンプレート

Amazon HoneyCodeでは、すぐにアプリケーションを構築できるようにテンプレートが用意されており、2023年7月時点では、17種類が用意されています。

Operations、Marketing、HumanResorces、Saels、ProductManagementの5カテゴリーが用意されています。

『EmoTracker』の技術検証でも5分程度でアプリケーションを構築できて、とても素晴らしい体験でした。またテンプレートが構築のベストプラクティスとして参照できるのが良いですね。

なお『EmoTracker』ではMarketingのEventPlannerテンプレート用いました(イベント管理アプリが日記アプリに大変身です)。

ピックアップ機能

01 柔軟なフィールド

テーブルでフィールドのタイプを選択でき、下記のようなフィールドも設定できます。

  • 連番
  • 画像
  • 作成日
  • 更新日
  • チェックボックス
  • セレクトリスト
  • 外部参照
  • 関数フィールド(例えば子テーブルの特定フィールドの合計値計算の関数など。ExcelやSpreadSheetsで利用するような関数が用意されています。)

02 テーブルへのデータ一括アップロード

Amazon HoneyCodeではCSVを用いてテーブルへのデータ一括アップロード機能を提供しています。データの移行などで大変助かりますね。

03 通知機能

通知は、タイトル付きメッセージ(該当レコードのその他のデータ含めることも可能)を送信可能です。送信トリガーは以下のようなものを設定可能です。

  • レコード追加
  • レコード削除
  • DateTime系のフィールドへの任意の条件(例えばpublished_atフィールドの7日前など)
  • フィールド変更

04 レスポンシブ対応

編集画面では、WEB画面とモバイル画面が用意されています。WEB画面での変更がモバイル画面にも反映されます。

また複数のレコードリストや特定のレコード詳細を表示するブロックにおいても、APEARANCEをEnhanced・Standard・Compactの3種類から選択することで、画面上での表示の仕方を変更できます。

05 画面の自動生成

Amazon HoneyCodeでは画面の強力な画面の自動生成機能があります。下記のような画面を容易に作成できます。

  • 特定のテーブルのカード形式の一覧画面
  • 特定のテーブルの表形式の一覧画面
  • 特定のテーブルへの新規登録画面
  • 特定のテーブルのあるレコードの詳細画面
  • 特定のテーブルのあるレコードの詳細とその関連するデータ一覧画面
  • 特定のテーブルのあるレコードに関連するデータ一覧画面
💡
レコードの削除・更新は、各画面で操作可能です。

06 一覧画面で提供される様々な機能

  • 表示するデータをで画面単位でフィルター・ソートする機能
  • 他のアプリケーションとの連携。例えばGoogle Spread Sheetsとの連携機能
  • 柔軟な検索・フィルター・ソート機能

07 ブロックの動的な表示・配色制御機能

画面には各テーブルのフィールドや削除ボタンなどの多様なブロックを配置できます。Amazon HoneyCodeでは、それらのブロックを特定の条件下で非表示にしたり、配色を変更することができます。

デメリット

これまで紹介してきたようにAmazon HoneyCodeには様々なメリットがありますが、他方で下記のようなデメリットもあります。

01 デザインのカスタマイズ制限

簡単に画面が作成できる一方で、アニメーションの実装などはできません。またアプリケーションのテーマとしては4色のみ用意されています。

業務システムの構築向けなので、リッチなデザインを実装したい場合には不向きでしょう。

02 日本語非対応

Amazon HoneyCodeは日本語対応をしておらず、英語が障壁になり得るかと思います。一方で明瞭なUIなので、概ね利用には困ることはないかと思います。ただしトラブルシューティングの場合に日本語資料がないことは念頭に置く必要があります。

Amazon HoneyCodeについてのまとめ

直感的なUIと多様な機能を提供していて大変便利であると同時に、普段はノーコードツールを利用しないので新鮮に感じました。

データベース関連で少し専門的な知識が必要ですが、全くのIT未経験者が容易に構築・検証できる優れたサービスであると思います。ぜひ使ってみてはいかがでしょうか。

最後に

1Dayのハッカソンとなると、時間管理がよりシビアになります。しかも複数人であれば技術検証や開発を並行してできますが、今回は一人参加なので不可能です。

アイデア創出より先にAmazon HoneyCodeの実機検証したり、コア機能を作り上げた段階で他の機能に目移りせず、スライドの作成に取り組むことができたのが良かったポイントだと思っています。

スライド作成に1時間程度使うことができましたが、少しでも順序を間違えていたら、悲惨な結果が待ち受けていたでしょう。

1人で4人分以上の活動をするのは大変でありながらも充実感があり、とても楽しむことができました。でも、やっぱり次のハッカソンではチームで取り組みたいですね!

このような素晴らしい機会を提供してくださりありがとうございました!!最高です!