🚀

AWS上のServerpodでFlutterWebをHosting

2024/03/11に公開

「四次元年表」スタートラインに立つ

BigBangから終わりなき「今」まで
全ての「いつ・どこで・なにが」を集めた「語らない歴史」データベースをつくる。
これを、還暦過ぎからのライフワークに定めて早三年。
実際にコードを書き始めて二年、
ようやく、web版を公開するところまで来た。
これで人に
「百聞は一見にしかず、こんなデータベースです」
「触ってみて、意見をください」
「データ収集に、協力してください」
「改良に力を貸してください」・・・・
と、言える。

ここまでの紆余曲折

Flutterは初心者に優しいPlatformだ。
Flutter×Firebaseなら多分、最強に優しい。
ただ、私が作っているのは、「多様な検索が可能なデータベース」なので、
Firebaseはちょっともの足らなかった。
MySQL×OracleCloudという路線をしばらく歩いたが、
バックグラウンドの知識が足らなさすぎてギブアップした。
ServerpodxPostgreSQLという選択は、偶然の出会いではあったけれど、
ともかくここまでこれた。
結局、Serverpodとの相性はよかったと思う。
日本ではぜんぜん話題にもならないPlatformで、情報の少なさに苦しんだけれど
ささいな質問にも丁寧に答えてくれるFounderたちにずいぶん助けられた。

ほんとはすごく簡単だったのに迷子になったHosting

Serverpodに関する日本語記事は、「使ってみた」系の数点を除くと、
ほぼ私の書いたものしかない。
今回のFlutterWebHostingについては、英語ですら、ほぼ記事はない。
私が見つけた唯一の「Hosting方法」は
この頁の
https://github.com/serverpod/pixorama
この3行だ。

わかって当然、の手順なのだろう。
こういうのが一番、困る。
六十の手習い泣かせだ。
仕方ないから、指示された3枚のfileとともに爺様にお伺いを立てた。
すると爺様、するすると「手順」を表示してくれた。
これが、罠だった。
今にして思えば、彼が列挙した手順は、
build_webというsh-fileの内容をそのまま書き起こしたものだった。
だから、sh-fileを走らせれば、自動で行われる過程だ。
それを私は、一つ一つ、手動で行った。
まあ、うまく行くわけがない。
そもそもsh-fileなんて初めて見たのだし・・・
結局、このfileに実行権限を与える、

chmod +x build_web

そして実行する。

./build_web

それだけで、Webアプリが作成され、ServerpodのServerにコピーされ、
それをAWSにdeployすればHostingされるのでした。
知らないって悲しい。
でも一つ一つ、わかっていく過程は楽しい。

FlutterUpgradeしたらbuildできなくなった!?

Hostingされて喜んでいるところに、
FlutterUpgradeのお知らせが来る。
速攻でUpgradeする。
すると例によって、cocoapodsがなんとか、といってくる。
Webだし関係ないんだよな、と思いつつも、cocoapodsもUpgradeする。
さあ、Webアプリも更新しよう、と思ったらbuildできない。

../../../.pub-cache/hosted/pub.dev/web-0.3.0/lib/src/dom/webnn.dart:162:33:
Error: The type 'JSObject' can't be used as supertype.

Scrollしきれないほど真っ赤になった。
でも、これ、自分で入れているPackageではない。
だからpubspec.yamlには書いていない。
でも、あった、pubspec.lockにはweb-0.3.0の表記がある。
pub.devで調べると、webのVersionは0.5.1になっている。
どこを直したらいいんだ?
・・・って、ただ単にpub upgradeで良いのでした。
見えてないPackageも、Upgradeされるのだと、初めて知りました。

長い長い道程の始まり

さあ、
ローカル環境でシミュレーションするだけの日々から抜け出し、
人の目にさらされる、あるいは批判される、あるいは無視される日々の始まりです。
新たに加えなければならない機能、改良しなければならない機能が山積みです。
これからが長い。
そう、十年、二十年の超長距離走。
自分の寿命との競争です。
たゆまずに、でもあせらずに、一歩一歩進みます。
よかったら、手を貸してください。
https://app.laporte.academy
サイトの名称から、直さないと・・・(>_<)

Flutter大学

Discussion