플러터(Flutter)를 공부하다가 문득 라이브러리 만드는 법이 궁금해졌다.
여러 개발 언어에서는 함께 쓰기 좋게 모듈화 된 공통 라이브러리 같은 모듈을 만들어 쓰는데 플러터(Flutter)에서는 어떨지 궁금해서 찾아보고 정리해 본다.
플러터(Flutter) 라이브러리의 필요성
보통 작성 중인 다트(Dart) 파일에 다른 파일의 객체나 인스턴스를 가져다 쓸 때 아래와 같이 import 구문으로 사용한다.
a.dart
String a = 'Data-a';
b.dart
String b = 'Data-b';
main.dart
import 'a.dart'; import 'b.dart'; void main() { print('$a,$b'); }
그런데 파일이 엄청 많다면 어떨까요? 네. 엄청 불편합니다. 그래서 라이브러리는 여러 파일로 만들어도 다트(Dart) 파일 1개로 불러와 편하게 사용할 수 있습니다.
플러터(Flutter) 라이브러리 만들기
이렇게 여러 파일을만들지만 1개의 다트(Dart) 파일로 불러올 수 있게 하기 위해서 part, part of 예약어를 이용합니다.
a, b 다트(Dart) 파일을 작성하고 두 파일을 library 다트(Dart) 파일에 포함해 외부에서 이용할 때 library 파일만 불러와 사용할 수 있게 합니다.
a.dart
part of 'example_library.dart'; String a = 'Data-a';
자신이 example_library.dart 의 부분임을 선언 합니다.
b.dart
part of 'example_library.dart'; String b = 'Data-b';
자신이 example_library.dart 의 부분임을 선언 합니다.
example_library.dart
library; part 'a.dart'; part 'b.dart';
자신이 라이브러리(library)임을 선언 하고 a.dart 와 b.dart 가 자신의 부분들임을 선언 합니다.
main.dart
import 'example_library.dart'; void main() { print('$a,$b'); }
라이브러리 파일인 example_library.dart 만 import 하면 a.dart 와 b.dart 파일의 내용까지 접근 가능합니다.
참고
티스토리-Flutter 기본 기능 | as, show, hide | 변수나 함수, 클래스명이 같은 경우 해결 방법 | example