7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Flutterでのファイルアクセス

Last updated at Posted at 2018-06-17

Flutterでのファイルアクセスってどんな感じなのかちょっと触ってみたので、その備忘録

Asset

基本はこれ。

以下に詳しく書いてあるので、一度読めばだいたい分かると思います。

pubspec.yamlにあらかじめassetで呼び出すファイルを指定します

flutter:
  ...

  # To add assets to your application, add an assets section, like this:
  assets:
    - assets/test.png

呼び出しは画像用とbyteと文字列が呼び出せます。

文字列

Future<String> loadAsset() async {
  return await rootBundle.loadString('assets/config.json');
}

画像

new AssetImage('graphics/background.png')

動画・音声

ドキュメントではテキストファイル(文字列)と画像しか触れていませんが、動画やたぶん音声も扱えます。

動画はvideo_playerプラグインが提供されており、こちらはassetした動画をプラットフォームから参照しています。

    if (dataSource) {
      NSString* assetPath;
      NSString* package = argsMap[@"package"];
      if (![package isEqual:[NSNull null]]) {
        assetPath = [_registrar lookupKeyForAsset:dataSource fromPackage:package];
      } else {
        assetPath = [_registrar lookupKeyForAsset:dataSource];
      }
      player = [[FLTVideoPlayer alloc] initWithAsset:assetPath frameUpdater:frameUpdater];
    } else {
      dataSource = argsMap[@"uri"];
      player = [[FLTVideoPlayer alloc] initWithURL:[NSURL URLWithString:dataSource]
                                      frameUpdater:frameUpdater];
    }

音声はちょっと探せてないので、確認できた方いらっしゃいましたらぜひ教えてください🙇

Filesystem

path_providerプラグインが提供されており、
こちらはアプリのファイルシステムにアクセスできます。

// 一時ファイル(よく消える)
Directory tempDir = await getTemporaryDirectory();
String tempPath = tempDir.path;

// ドキュメントファイル(アプリ削除するまで消えないディレクトリ)
Directory appDocDir = await getApplicationDocumentsDirectory();
String appDocPath = appDocDir.path;

こちらはアプリ側で生成したものを読み込む、といった使い方になると思うので、アプリに組み込むファイルはAssetを使いましょう。

最後に

今後公式提供のプラグインが潤沢になればうれC

Android java書いたことないので、自力で実装はしんどいかも。。。(興味はある)

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?