모바일 개발하는 자바리안의 메모장

Flutter - export 를 활용한 dart 파일 관리 본문

Flutter

Flutter - export 를 활용한 dart 파일 관리

자바리안 2022. 11. 7. 22:26
반응형

개발을 하다보면 많은 import 때문에 코드 상단이 지저분해지는 경우가 많다.

보다 정결하게 코드를 관리하는 법은 없을지 항상 고민하다가 최근 아주 속시원한 솔루션을 찾을 수 있었다.

 

바로 export를 이용하는 방법이다. 

 

예를들어 A라는 페키지 아래와 같은 파일이 있다고 생각해보자.

 

그리고 동일, 혹은 다른 페키지에 있는 파일에서 상기 정의한 파일들을 사용해야 한다면 아래와 같이 각 dart 파일에 대한 import를 해줘야한다 :

import 'package:flutter/widgets.dart';
import 'package:solve/pacakage_a/class_a.dart';
import 'package:solve/pacakage_a/class_b.dart';
import 'package:solve/pacakage_a/class_c.dart';
import 'package:solve/pacakage_a/class_d.dart';

main() {}

class MainApp extends StatelessWidget {
  MainApp({super.key});

  final ClassA classA = ClassA();
  final ClassB classB = ClassB();
  final ClassC classC = ClassC();
  final ClassD classD = ClassD();

  @override
  Widget build(BuildContext context) {
    return Container();
  }
}

 

 

물론 IDE에서 알아서 import를 해줘서 불편할 건 전혀 없다.

하지만 composition 관계가 복잡한 파일에 추가해야 하는 다수 라인의 import를 깔끔하게 정리해 줄 수 있고,

페키지간의 의존성을 명확히 구분해야 할 때도 패키지 단위로 import를 하는 구조이기에 한 눈에 포함 관계를 확인할 수 있는 장점도 있다.

 

자 그럼 어떻게 다수 dart 파일들을 단일 파일로 export 하는지 알아보자.

우선 여러 파일들을 묶어(export) 줄 dart 파일을 만들자 :  

package_a.dart 파일 추가

그리고 export 키워드로 해당 파일에 추가할 dart 파일들을 나열해주자 : 

export 'package:flutter/widgets.dart';
export 'class_a.dart';
export 'class_a.dart';
export 'class_b.dart';
export 'class_c.dart';
export 'class_d.dart';

 

6개 dart 파일들을 export했던 package_a.dart 하나만 import 하여 코드를 간결하게 관리할 수 있다 :   

import 'package:solve/pacakage_a/package_a.dart';

main() {}

class MainApp extends StatelessWidget {
  MainApp({super.key});

  final ClassA classA = ClassA();
  final ClassB classB = ClassB();
  final ClassC classC = ClassC();
  final ClassD classD = ClassD();

  @override
  Widget build(BuildContext context) {
    return Container();
  }
}

 

 

반응형
Comments