Slide 1

Slide 1 text

Flutterで ML Kitを使ってみる

Slide 2

Slide 2 text

自己紹介 ● エンジニア ● 会社:HealtheeOne https://healtheeone.com ● Android 7年くらい ● Ios/Xcodeは未経験 ● Flutterは2週間くらい…(初心者ですすみません) 簡単なOCRのモックプロジェクト作って、apk作るまでを1 週間くらいでやったので、その雑感をまとめます。

Slide 3

Slide 3 text

Flutterを始めたきっかけ ● UI/画面遷移が単純な新規アプリを、Android/IOSで作る必 要が出てきた →Flutterで作れるかも? ● 前からIOS興味あったし、 ● Google I/Oでも取り上げられていたし、 どうせならモックからFlutterで作ってみよう!

Slide 4

Slide 4 text

ML Kitとは ● 画像認識システム。機械学習機能も。 https://firebase.google.com/products/ml-kit/?hl=j a 「Image Labeling」-画像に写っているものをリス トアップできる 「Text recognition 」 -文字を認識できる 「Face detection 」 -顔を認識する 「Barcode scanning 」 -バーコードを認識する 「Landmark detection 」 -有名な場所を認識する

Slide 5

Slide 5 text

Flutterで ML Kit ● プラグイン https://pub.dartlang.org/packages/firebase_ml_ vision  ※使った方 ⭐️ https://pub.dartlang.org/packages/mlkit  ※official

Slide 6

Slide 6 text

Firebaseの設定 ● https://codelabs.developers.google.com/codela bs/flutter-firebase/#4 ● 注意 6. Platform-specific Firebase configuration の手 中、 順 iOSは6まででOK   ※6.Continuing in Firebase, follow the instructions to download the config file GoogleService-Info.plist.

Slide 7

Slide 7 text

サンプルプロジェクト紹介① https://github.com/sayurikunugi/flutter_mlkit_sample

Slide 8

Slide 8 text

サンプルプロジェクト紹介②

Slide 9

Slide 9 text

サンプルプロジェクト紹介③

Slide 10

Slide 10 text

大変だったところ① ● Androidではデバッグアプリ動くんだけど、 iOSでビルドが通らない… ● officialプラグインも非officialもダメ。 →githubで、両方ともissueしてみた ● officialの方は「flutter doctorの結果を載せて」と返事  ※issue時はflutter doctorの結果はマストらしい ● 非officialの方は直してくれた  「 ios mlkit library has updated. I'll fix it soon! 」 ● officialも更新してるので動きそう … プラグインのアップデート管理大変そう

Slide 11

Slide 11 text

大変だったところ② ● APKのビルド https://flutter.io/android-release/ flutter build apk ● apkを動かすとアプリがクラッシュ couldn't find "libflutter.so" ● flutter build apk --release --target-platform android-arm64  →使用端末では動いた ● が、別の端末でcouldn't find "libflutter.so" →つづく

Slide 12

Slide 12 text

大変だったところ③ ● CPUが32bitの端末らしい https://github.com/flutter/flutter/issues/18494 ● 3.1.3以上のAndroidStudio使う or 32bit向けにapkをbuild build.gradle defaultConfig { ndk{ abiFilters "armeabi-v7a" }… } flutter build apk --release --target-platform android-arm

Slide 13

Slide 13 text

Flutter、 Dartの感想 ● newはあっても無くてもどっちでもいいらしい ● constがわかりにくい コンパイル時に作られるので、変数をパラメータにもったりす るとクラッシュしたり? ● StatefulWidget:setState()するとbuild(onResume みたいな)が走って画面が再描画される ● file名!=クラス名。1ファイルに何クラスあってもok ● レイアウトファイルがない

Slide 14

Slide 14 text

最後に ● 始めたばかりだけど、おもしろい ● UIパーツもプラグインも充実している ● Issueは積極的に ● 難読化、iOS向けリリースは今後のTODO ● これからもFlutterやってこうと思っているので、 よろしくお願いします!