Open10

時間計測アプリ開発【Flutter】

落雁落雁

https://zenn.dev/kazutxt/books/flutter_practice_introduction/viewer/06_chapter1_environment
とりまこれでノートWindowsで環境構築してみる

https://docs.flutter.dev/get-started/install/windows/mobile
公式ドキュメント読みやすくて助かる


Android StudioでのSDKのインストール確認

自分のスマホは2712*1220

AVDのこれできなかった(flutter公式doc)

From the Graphics dropdown menu, select Hardware - GLES 2.0.


おもろ!emulator起動した!

【しおり】
https://docs.flutter.dev/get-started/install/windows/mobile
Agree to Android licensesあたりで一旦終了

落雁落雁

$ flutter doctorで、Visual Studioコンポーネントのissueが出たけど、Windows開発しないなら必要ないらしい。今はAndroid app チュートリアルだからな~~~

ん?最初にWindows開発するんじゃなかったっけ?

いれとくか~~~

良さそうなリンク集

Start developing Android on Windows apps with Flutter

Congratulations. Having installed all prerequisites and the Flutter SDK, you can start developing Flutter apps for Android on Windows.

To continue on your learning journey, consult the following guides:

Learn how to write your first Flutter app
Flutter fundamentals docs

Manage your Flutter SDK

To learn more about managing your Flutter SDK install, consult the following resources.

Upgrade Flutter
Add web as a build target
Add Windows desktop compilation tools
Uninstall Flutter

Windows開発に必要な Visual Studio
https://docs.flutter.dev/get-started/install/windows/desktop
Desktop development with C++を選択しておく~~~!

落雁落雁

時間計測・記録蓄積・軽い・自分のため

ロードマップ

  1. Windowsで動く
  2. Androidでも動く
    通知操作・ウィジェット必須、カレンダー等と連携機能
  3. 同期ができるように
    (ここまでが達成目標)
  4. 見た目に拘る
  5. 保留: Webでも動く
    Webだとファイルの保存ができないため、制約がかかる
  6. iOSでも動く
落雁落雁

作成時点わからないこと

  • (AIに書いてもらっているので) ちゃんとした依存関係か知らない
  • super.keyって?contextって?どういう構成がきれいなflutter codeなんだろう?
  • SharedPreferencesはlegacyになってきているっぽい 修正には?
  • main.dartってどれだけ分けた方が良いの?
  • 動作をより軽くするには?
  • スワイプとマウスの操作の違いは?
  • パフォーマンス改善には? > https://itome.team/blog/2019/12/flutter-advent-calendar-day8/
落雁落雁

アプリ名だとか組織名だとかをツギハギするのが面倒くさくなってきたので、新規prj作成。
そのときやったことをメモ

プロジェクト作成
flutter create --org {ドメイン逆にしたやつ。} {app_name}
ex. {app_name} -> discord とかにする!

For Android
gradleとプラグインのバージョン依存関係にしたがって、

/android/gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip
/android/settings.gradle
id "com.android.application" version "8.8.0" apply false

と設定する。これしないとAndroidBuildしたとき最悪PC落ちる。(Androidエミュレーターといっしょに適当にビルドしたら落ちた。)

なお、この状態でも以下のエラーが出る。

警告: [options] ソース値8は廃止されていて、今後のリリースで削除される予定です
警告: [options] ターゲット値8は廃止されていて、今後のリリースで削除される予定です
警告: [options] 廃止されたオプションについての警告を表示しないようにするには、-Xlint:オプションを使用します。
警告3個

また、以下のndkversionも変更すべきっぽい。

以下は修正例

/android/app/build.gradle
ndkVersion = "27.0.12077973"

SHA1フィンガープリントの取得には、

cd android
./gradlew :app:signingReport

SHA1落とし穴?

開発端末する場合はkeytoolで作ったやつを共有すべし。

apkのsha1確認する方法。
https://zenn.dev/yorifuji/articles/android-keystore-fingerprint