[개발] Flutter

[Flutter] await rootBundle.loadString 란?

  • -
반응형

 

Flutter의 await rootBundle.loadString() 설명

Flutter에서 rootBundle.loadString()은 앱의 assets 폴더에 저장된 파일(예: JSON 파일, 텍스트 파일 등)을 비동기적으로 읽어오는 방법입니다. await 키워드는 이 작업이 완료될 때까지 기다린 후 결과 값을 반환받는 데 사용됩니다.

 

 

 

 

 

 

rootBundle이란?

rootBundle은 Flutter에서 기본적으로 제공하는 AssetBundle 객체로, 앱의 리소스(이미지, 텍스트 파일, JSON 파일 등)에 접근할 수 있게 해줍니다. loadString() 메서드를 사용하면 파일을 읽고, 그 파일의 내용을 문자열로 반환합니다.

 

 

 

 

 

 

await의 역할

await는 비동기 함수가 완료될 때까지 기다린 후 그 결과를 반환하는 역할을 합니다. await를 사용하면 비동기 작업의 완료 여부에 따라 다른 작업을 진행할 수 있습니다.

 

 

 

 

 

 

loadString()의 사용 예시

rootBundle.loadString()을 사용하여 assets 폴더에 저장된 JSON 파일을 불러오는 예제입니다:


import 'package:flutter/services.dart';
import 'dart:convert';
import 'package:flutter/material.dart';

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State {
  String _data = '';

  @override
  void initState() {
    super.initState();
    loadAsset();
  }

  Future loadAsset() async {
    String jsonString = await rootBundle.loadString('assets/data.json');
    final jsonResponse = jsonDecode(jsonString);
    setState(() {
      _data = jsonResponse['message'];
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Load Asset Example'),
        ),
        body: Center(
          child: Text(_data),
        ),
      ),
    );
  }
}
    

 

 

 

 

 

 

 

 

 

 

assets 파일 등록

rootBundle.loadString()을 사용하기 위해서는 pubspec.yaml 파일에서 assets를 등록해야 합니다. 예를 들어, assets/data.json 파일을 사용할 경우 다음과 같이 설정해야 합니다:


flutter:
  assets:
    - assets/data.json
    

 

 

 

 

 

 

 

loadString()의 반환 값

rootBundle.loadString()은 파일의 내용을 String 타입으로 반환합니다. 반환된 문자열은 JSON 파싱이나 텍스트로 화면에 표시하는 데 사용할 수 있습니다.

 

 

 

 

 

 

 

실제 사용 상황

  • JSON 파일 불러오기: 서버와 연동하기 전에 로컬에서 JSON 데이터를 읽어올 때 유용합니다.
  • 텍스트 파일 읽기: 텍스트 파일을 앱 내에서 사용하고자 할 때 loadString()을 통해 불러올 수 있습니다.

 

 

 

 

 

 

 

결론

await rootBundle.loadString()은 Flutter에서 로컬 리소스 파일을 비동기적으로 읽어올 때 사용하는 편리한 메서드입니다. 이를 통해 앱의 assets 폴더에 저장된 파일을 쉽게 읽고 처리할 수 있습니다.

반응형

'[개발] Flutter' 카테고리의 다른 글

[Flutter] FutureBuilder 란?  (0) 2024.09.27
[Flutter] Scaffold 란?  (0) 2024.09.26
[Flutter] Future 란?  (0) 2024.09.24
[Flutter] State<StatefulWidget> 란?  (0) 2024.09.23
[Flutter] {super.key} 란?  (0) 2024.09.22
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.