Open22

Flutterでうちで飲んだお酒をメモするアプリを作ろう

ken1flanken1flan

ここ2年くらい、うちでお酒を飲むようになったのですが、のんだお酒、いつも「うめー」で終わってました。
ただ期間が長くなるに従って、前に飲んだこのお酒、これどんな感想を持ったっけな?と思うことがでてきました。
このアプリはがんばらずにお酒のメモを残すためのアプリです。
がんばって残すアプリはもっと便利なものがあるし、みんなと交流できるWebサービスもあるので、あくまでもこのアプリはシンプルに、です。
一回で数種類飲める酒豪向きではないかも。
https://docs.google.com/presentation/d/1lctIfiaexZoVs6rciL8VSkbBv5Gd-m2DGEwMTeWCQqA/edit?usp=sharing

ken1flanken1flan

まずはflutterアプリを生成、その後CI(静的解析、テスト、android用apkビルド)設定をしました。
日記アプリではcirrus ci使ってましたが、今回はgithub actionsです。

https://github.com/ken1flan/uchi_sake/pull/1

参考

  • Software Design 2022年4月号 はじめてのFlutter 第5章
ken1flanken1flan

Google Analytics使えんの…?
かなりGoogleべったり感…。使わなきゃいいかー。

ken1flanken1flan

ようやくIsarをインストールして、テストが正常終了するようにできました。
f_diaryでやってたときにテストを並列で実行できなかったのですが、アプリのディレクトリをプロセスIDごとに分けることで並列にできるようになりました。

applicationDocumentsDirectory = Directory("${Directory.current.path}/tmp/$pid");

https://github.com/ken1flan/uchi_sake/pull/10

ken1flanken1flan

flutter_launcher_iconsを設定しようとして詰まった><

~/src/uchi_sake[Add_icon(≧∇≦)b OK]
09:06 $ flutter pub run flutter_launcher_icons:main
  ════════════════════════════════════════════
     FLUTTER LAUNCHER ICONS (v0.9.1)
  ════════════════════════════════════════════


✓ Successfully generated launcher icons
Unhandled exception:
FormatException: Invalid number (at character 1)

^

#0      int._handleFormatError (dart:core-patch/integers_patch.dart:129:7)
#1      int.parse (dart:core-patch/integers_patch.dart:55:14)
#2      minSdk (package:flutter_launcher_icons/android.dart:309:18)
#3      createIconsFromConfig (package:flutter_launcher_icons/main.dart:94:47)
#4      createIconsFromArguments (package:flutter_launcher_icons/main.dart:60:7)
#5      main (file:///usr/local/Caskroom/flutter/2.10.1/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_launcher_icons-0.9.2/bin/main.dart:6:26)
#6      _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:295:32)
#7      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)
pub finished with exit code 255
~/src/uchi_sake[Add_icon(;´▽`A]
ken1flanken1flan

https://github.com/fluttercommunity/flutter_launcher_icons/blob/master/lib/main.dart#L60
https://github.com/fluttercommunity/flutter_launcher_icons/blob/master/lib/main.dart#L94
https://github.com/fluttercommunity/flutter_launcher_icons/blob/master/lib/android.dart#L309

build.gradleminSdkVersionのParseに失敗しているっぽい。

f_diaryではここは16となっていて、こっちはうまくいっている模様…。
https://github.com/ken1flan/f_diary/blame/main/android/app/build.gradle#L47

flutter.minSdkVersionをParseできてないような…。

同じ状況で困ってる人いました。
https://zenn.dev/taku_zenn/articles/3388f1da715b57

具体的なバージョンを書くことで回避しました。
https://github.com/ken1flan/uchi_sake/pull/21/commits/50153ac359c0b6c1ace788f5bbdc719adb8da48d

ken1flanken1flan

textfield_tags のサンプルコード、めっちゃ長い…。
こんな複雑なものを内包するのがイヤになってきた。

このままにしておこうと思います…。