私が現在コントリビュートしているModdable版のスタックチャンについて、この1年は大きく変化があったので紹介も兼ねて振り返っていこうと思います。
PR(#234 ~ #306)から主に機能と開発環境に分けてピックアップしていきます。
機能
-
Integrate AI Stack-chan Web API #235
- スマホからスタックチャンを操作するアプリスタックチャン CONNECT対応
- APIを通じて「会話」「台詞」「表情」機能が動作する総合的なスタックチャンアプリとしては初めてかも
- 簡易的なWebAPIを実装する仕組みも実装
-
add more decorators #240
- 上記の「表情」機能に合わせて実装
- CanvasのPathを駆使したアイコン表現(このあたりからChatGPTの恩恵が出てくる
- AI機能にClaude3 #241, Gemini対応 #254
- ChatGPT以外のAIサービスもcurlのサンプルがあれば大体はすぐに対応できるようになった
- そろそろ共通化やstream対応をしていきたい
-
トーンを鳴らす
- ビープ音など操作音を追加できるようになりました
- これに合わせてTTS全般もリファクタリングを実施し、各TTSごとの実装差異も少なくなったかと思います
-
AIスタックチャン機能
- 今まで音声入力に対応してなかったため単独での音声会話機能ができなったが、ようやくの実現
- 主に
multipart/form-data
の実装と音声バッファのメモリ管理に苦労した
開発環境
-
PCシミュレータ対応
- Moddableの強みでもあるPCシミュレータ上での開発に対応
- プラットフォーム次第ではあるが、今では音声出力や入力にも対応
- modのドキュメント更新
- 一部未完了のものはありますが、動作方法が不明との意見が多かったためドキュメントを追加した
- ファームウェア側もそろそろ更新していきたい
-
[CI]actions/setup cache moddable and esp32
- GitHubActionsによるプッシュ時のビルドに時間がかかっており、結果の確認に時間がかかっていたものが大幅に短縮されるようになった
- これをきっかけにCI周りの改善を入れたりと、ちょうどGitHub Actionsを勉強する良い機会になった
-
ESLintとPrettierからBiomeへ移行する
- ESLint8系のdeprecatedを契機に単一で実現できるBiomeへ移行
- 動作自体も早く、単一のツールとなったことでメンテもしやすくなった
- Code Rabbit対応
- AIレビューにより、主に実装の書き方的な指摘についてはあまり考える必要がなくなり、レビューとしての負荷も下がったかと思う。ただ真面目に対応していくのはとても大変
振り返って
機能面では大幅にできることは増えてはないものの、待望のAIスタックチャン化対応できたりと1つのアプリケーションとして提供できる幅は広がったかと思います。
また、開発環境面も通常のWeb開発に近い体験を目指してましたが、ローカルでの開発環境〜CIまで大きく体験が改善されたかと思います。
来年にはもっとユーザがmodの開発をしていけるようにドキュメントや設定値管理などの仕組みを改善していけたらなーと思っています。