四コマ漫画「今日は定時で帰れるっしょ」

https://github.com/yukinissie/jyogi-hackathon

React

Unity

Lambda

Flutter

Just 4 koma Manga!

ニッシー☆

推しアイデア

なんと言っても1つのクライアントで完結しているユーザーフレンドリーさ!

作った背景

じょぎの後輩たちが頑張っていると聞きまして。

推し技術

ちゃんと縛り技術を全部使ったよ!あと全部ちゃんとデプロイされてるし、ReactもLINE BotもCICDあるよ!

プロジェクト詳細

四コマ漫画「今日は定時で帰れるっしょ」

四コマ漫画を作ってね!と言われたので作りました!(どーん)

LINE 公式アカウントに友達登録する

まずは LINE で今回のためだけに生まれた LINE 公式アカウントに友達登録をお願いします。

友達登録用 QR コードは以下の画像です。

友達登録用QRコード

または、リンクから友達登録する

追記:スミマセン、どうやら開発者しか動作しない状況みたいなので次のセクションのデモ動画をごらんください。(内部でLINEミニアプリ(旧LIFF)を利用しており、本番リリースするには審査を通す必要がありました。うーん、たぶん通らないでしょう!w)

追記の追記:LIFF 剥がして直接開けるようにしました!最初からこうしておけばよかった!w

追記の追記の追記:LIFF剥がしたら外部ブラウザが起動するようになってしまった!やはりインラインで起動するLIFFじゃないと完成度が下がるなぁ。。

追記の追記の追記の追記:私が勝手に外部ブラウザで開く設定にしてただけでデフォルトの挙動はインラインブラウザが起動するらしかったから体験は劣化してなかった()

デモ動画

十年後はうまくうごいていないかもしれません。動画もご覧ください。

https://youtube.com/shorts/NXPJl7vKTOw?feature=share

インフラ構成図

時間がなさそうなので図をご覧ください。

全体像

左側がユーザーが触れるLINEの中身の構成、右側がコンテンツを提供しているアプリケーションの構成図です。

image

LINE 側

ユーザーフレンドリーに一つのクライアントで完結させたかったので苦肉の策でLINEをベースに構築しています。LINEが提供しているリッチメニューを使うことで特定のURLを開いたり、特定のメッセージをトークルームに送ることができます。このことを利用して起承転結それぞれの画面を呼び出しています。(承に関してはLINE Botにメッセージを送って画像を返させている)

image

特定のURLにはLINEミニアプリ(旧LIFF)を指定でき、LINEの中で起動させることができます。 できますが、これを利用せずともインラインブラウザが開けることがわかったのでやめました。これ インラインブラウザを利用してReactやUnityがホストされているWebアプリを表示させています。

アプリ側

全ての技術を1つのクライアントでまとめようと考えてまず思いついたのが Unity の WebGL 化や Flutter の web 出力の選択でした。

image

全てを別々のインフラに乗せてURLからアクセスできるようにし、先の LINEミニアプリインラインブラウザで表示できるようにさせました。

つらみとか

みんな大変だったよね。。

  • LINE bot との繋ぎこみが思ったより掛かった。サンプルコードが意外と公式で見つからなかった
  • Unity でレスポンシブに画像を出そうとと思ったらカメラにスクリプト突っ込んでカメラ自身のサイズを動的に変えるとかしないといけなかった
  • Amplifyに画像をホストしたんだけどそのままだと普通にFlutterやUnity上でCORSエラーが出た
  • 生成AIに描かせた絵を何度か手直しをした
  • そもそも今回の4技術(React、LINE Messaging API、Unity、Flutter)で1つのものを作るのは鬼畜そのものだった
  • 私はさらに React、LINE Messaging API、Unity、Flutter の順で画面を作らねばならなかった

一言

みんなもハックツハッカソンに出よう!

おまけ

起承転結

※登場人物の名前や言動は実在の個人または組織とはなんら関係のない架空のものです。

image

起を見る

image

承をみるにはLINE登録してメニュー内の「承」を押してください。

image

転を見る

image

結を見る

Unity起動画面

image

カラフル

image

アイデア出しとかストーリー出し、スプリント管理にFigJamが大活躍

image

image

理想と現実

ぜんぜん進まないから途中で半分くらい機能削減しました。

image

オチ

LINEミニアプリ(旧LIFF)をハッカソンで使う時は公開するのに審査がいるから全力で事前準備してたとしても諦めてください!w

image

(画像は LINE Developers 画面から引用)

オチのオチ

Webアプリをインラインブラウザで表示するだけならLIFFをかえさずともリッチメニューに直接URL指定するだけで行けるやないかーい!😇😇

オチのオチのオチ

LIFF 剥がしたら外部ブラウザが起動するようになってしまった!これだと無駄に遷移とかしてしまって体験が悪い!やはりLIFFを使わないと完成度が下がってしまうなぁ、、

ということで残業が確定したニッシー☆であった。(終)

image

追記:外部ブラウザが起動するのは私がそうLINEで設定してただけだった(めでたしめでたし)

ニッシー☆

@yukinissie