Open4

flutter

bz0bz0

環境構築
https://flutternyumon.com/how-to-setup-flutter/
https://docs.flutter.dev/get-started/install/macos

mac m1環境です。(/bin/zsh)
ダウンロードするデータが大きいので有線でやるのがオススメです。

$ sudo softwareupdate --install-rosetta --agree-to-license
  • Get the Flutter SDKで「Apple Silicon」の方をダウンロードし解凍
  • Flutter SDKを作業ディレクトリ(今回は「$HOME/wk」にしました)に移す
  • Flutter SDKにパスを通すために~/.zshrcを下記例のように追記
    • exportで環境変数であるPATHに「$HOME/wk/flutter/bin」を追加してます
  • source ~/.zshrcで変更を反映する
  • xcodeインストール
  • android studioインストール
  • ios simulatorインストール
  • android studioでflutterアプリを新規作成し ios simulatiorとAndroid Emulatorで動くかチェック
  • ホットリロードはandroid studioの雷ボタン押すだけ
% vi ~/.zshrc
export PATH=$PATH:$HOME/wk/flutter/bin
bz0bz0
  • Widget:FlutterのUIを構築しているパーツのこと
    • ステートフルウィジェットとステートレスウィジェットに分かれる
    • 部品
      • MaterialApp:全体のデザインや画面遷移をする場合の状態監視、そして、アプリケーション全体のタイトルやその全体にかかわるプロパティの管理
      • Scaffold:メニュー表示方法を含めて画面全体を管理する部品
bz0bz0

flutter バージョン

 % flutter --version
Flutter 3.0.1 • channel stable • https://github.com/flutter/flutter.git
Framework • revision fb57da5f94 (7 weeks ago) • 2022-05-19 15:50:29 -0700
Engine • revision caaafc5604
Tools • Dart 2.17.1 • DevTools 2.12.2

ライブラリ追加

pubspec.yml追記

https://pub.dev/packages/flutter_audio_recorder/install

dependencies:
  flutter_audio_recorder: ^0.5.5

ライブラリインストール

pub getでエラー

android studioの「pub get」でインストールしようとしたら下記エラー発生
このライブラリが2年前から更新がないため、androidの対応バージョンが古くエラーになっているものと思われます。いったん別のライブラリを利用することで回避しました。

Running "flutter pub get" in audio_recorder...                   2,322ms
The plugin `flutter_audio_recorder` uses a deprecated version of the Android embedding.
To avoid unexpected runtime failures, or future build failures, try to see if this plugin supports the Android V2 embedding. Otherwise, consider removing it since a future release of Flutter will remove these deprecated APIs.
If you are plugin author, take a look at the docs for migrating the plugin to the V2 embedding: https://flutter.dev/go/android-plugin-migration.

minSdkVersionでエラー

AndroidManifest.xmlのminSdkVersionを上げるとエラーが直るらしい。
「flutter.minSdkVersion」を23に変更し解消。
https://qiita.com/Riscait/items/74c46f3deeb38e70f902

android/app/build.gradle

    defaultConfig {
        minSdkVersion 23
    }
/Users/kz/StudioProjects/audio_recorder/android/app/src/debug/AndroidManifest.xml Error:
	uses-sdk:minSdkVersion 16 cannot be smaller than version 18 declared in library [:flutter_sound] /Users/kz/StudioProjects/audio_recorder/build/flutter_sound/intermediates/merged_manifest/debug/AndroidManifest.xml as the library might be using APIs not available in 16
	Suggestion: use a compatible library with a minSdk of at most 16,
		or increase this project's minSdk version to at least 18,
		or use tools:overrideLibrary="com.dooboolab.fluttersound" to force usage (may lead to runtime failures)

FAILURE: Build failed with an exception.

https://github.com/llfbandit/record/tree/64e09961a17b5b66dac2b028cf49721fd39aaea1/record

bz0bz0
Error: ADB exited with exit code 1
Performing Streamed Install

adb: failed to install /Users/kz/StudioProjects/audio_recorder/build/app/outputs/flutter-apk/app.apk: 
Exception occurred while executing 'install':
android.os.ParcelableException: java.io.IOException: Requested internal only, but not enough space
	at android.util.ExceptionUtils.wrap(ExceptionUtils.java:34)
	at com.android.server.pm.PackageInstallerService.createSession(PackageInstallerService.java:557)
	at com.android.server.pm.PackageManagerShellCommand.doCreateSession(PackageManagerShellCommand.java:3143)
	at com.android.server.pm.PackageManagerShellCommand.doRunInstall(PackageManagerShellCommand.java:1341)
	at com.android.server.pm.PackageManagerShellCommand.runInstall(PackageManagerShellCommand.java:1303)
	at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:193)
	at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
	at android.os.ShellCommand.exec(ShellCommand.java:38)
	at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:24742)
	at android.os.Binder.shellCommand(Binder.java:950)
	at and
Error launching application on sdk gphone64 arm64.

https://teratail.com/questions/245650

対処: