添加物スキャナーはどんな食品添加物が使われているか簡単に調べられるアプリです。食品の添加物ラベルを読み取り、その内容をAI技術を活用して自動的に認識し、分析結果を表示します。
Web 版のソースコードです。ソースコードは基本的な機能を備えた、Ver.1 まで公開する予定です。
絶賛、毎日開発中です。
ステータス | プラットフォーム |
---|---|
✅ | ランディングページ |
✅ | iOS |
🚧 | Android |
🚧 | Web |
マーク | ステータス |
---|---|
✅ | リリース済み |
🚧 | 開発中 |
- Vue3(Typwscript)
- Firebase Authentication
マーク | ステータス |
---|---|
✅ | 対応済み |
🚧 | 今後対応予定 |
ステータス | 項目 |
---|---|
🚧 | GitHub Actions による自動デプロイ |
Vue2 までは Vue CLI が PWA 化を担うことが多かったと思います。 Vue3 は Vite がスタンダードになったので Vite を通して PWA 化するのが基本になるようです。
なるべく公式サイトのドキュメントに沿って実装しています。私は、Vue2 時代に Vuetify をよく使っていて、プロパティのアイデアなどはよく参考にさせてもらっています。
- コンテンツを子コンポーネントに渡す場合は
slot
を使う - プロパティを子コンポーネントに渡す場合は
props
を使う - カスタムイベントは
emit
を使う。バリデーションに合格した時だけ、使いやすい型で発火する - HTML の素のイベントは型を変えないようにする。勘違いの元になるので
- 通知やダイアログなど、さまざまな場所から呼び出したいコンポーネントは
Pinia
と連携させてグローバルに呼び出す
Vue の公式サイトでは以下のような書き方で emit にバリデーションが追加できると記載されている。
// emit を定義
const emit = defineEmits({
changeValue: (value: string) => {
// ここにバリデーションを記載する
return true
}
})
GitHub Actions による自動デプロイを実施しています。
# 開発
npm run dev