본문 바로가기

Flutter에서 써드파티 모듈을 수동으로 집어넣기

기술적인 이야기/기타 개발 2020. 6. 9.
반응형

Flutter는 오픈소스 의존성 시스템을 지원하며 따라서 커뮤니티에서 서드파티 패키지가 활발히 개발되고 있습니다. 그런데 간혹 이런 모듈 패키지들 중 있었으면 하는 기능이 빠져있거나 버그가 있거나 등 여러 이슈가 있을 수 있습니다. 이 경우 소스를 가져와서 직접 수정한 후 빌드해야 하는 경우가 될 수도 있습니다.

그렇다면 소스를 가져와서 어떻게 하면 될지를 간략히 정리해 봅시다. 간략히 정리하는 이유는 정말 간단하기 때문이지요. 😏

우선 원하는 모듈의 소스를 가져옵니다. 보통은 Github에서 가져올 테니 git clone 커맨드를 써서 복제하면 됩니다. 복제되는 위치는 마음대로 놓을 수 있습니다.

그다음으로 pubspec.yaml 파일을 열어서 의존성 목록에 아래와 같은 형식으로 해당 모듈의 소스가 위치하는 경로를 집어넣습니다.

dependencies:
  ...
  module_name:
    path: ./foo/bar/module_name

보시다시피 다른 패키지들은 버전 정보를 가지는 대신에 이 패키지는 버전 대신 path 정보를 기입했습니다. 이제 빌드를 해서 문제가 없는지 확인해보면 됩니다.

네 이제 끝입니다. 정말 간단하죠?

다만 이 방법이 모든 모듈에 동작하는 지는 보장할 수가 없습니다. 제가 시도해 본 패키지도 몇 가지 안 되거든요.

주의

대부분의 오픈소스 모듈들은 각자의 라이센스를 가지고 있습니다. 대부분의 경우 MIT 라이센스라 소스 재공개의 압박은 없거나 덜할 수 있습니다. 하지만 GPL 등 일부 라이센스는 개인적인 사용 목적이 아닌 경우 수정된 모든 소스를 반드시 공개해야 하는 의무가 있습니다. 이럴 경우에는 라이센스가 요구하는 것에 맞는 추가 대응이 필요합니다.

그리고 버그 수정 등의 경우 원 저작자에게 패치를 제공하여 커뮤니티가 발전할 수 있도록 기여해 주시면 더더욱 좋습니다.

728x90
반응형

댓글