Flutter는 오픈소스 의존성 시스템을 지원하며 따라서 커뮤니티에서 서드파티 패키지가 활발히 개발되고 있습니다. 그런데 간혹 이런 모듈 패키지들 중 있었으면 하는 기능이 빠져있거나 버그가 있거나 등 여러 이슈가 있을 수 있습니다. 이 경우 소스를 가져와서 직접 수정한 후 빌드해야 하는 경우가 될 수도 있습니다.
그렇다면 소스를 가져와서 어떻게 하면 될지를 간략히 정리해 봅시다. 간략히 정리하는 이유는 정말 간단하기 때문이지요. 😏
우선 원하는 모듈의 소스를 가져옵니다. 보통은 Github에서 가져올 테니 git clone
커맨드를 써서 복제하면 됩니다. 복제되는 위치는 마음대로 놓을 수 있습니다.
그다음으로 pubspec.yaml
파일을 열어서 의존성 목록에 아래와 같은 형식으로 해당 모듈의 소스가 위치하는 경로를 집어넣습니다.
dependencies:
...
module_name:
path: ./foo/bar/module_name
보시다시피 다른 패키지들은 버전 정보를 가지는 대신에 이 패키지는 버전 대신 path 정보를 기입했습니다. 이제 빌드를 해서 문제가 없는지 확인해보면 됩니다.
네 이제 끝입니다. 정말 간단하죠?
다만 이 방법이 모든 모듈에 동작하는 지는 보장할 수가 없습니다. 제가 시도해 본 패키지도 몇 가지 안 되거든요.
주의
대부분의 오픈소스 모듈들은 각자의 라이센스를 가지고 있습니다. 대부분의 경우 MIT 라이센스라 소스 재공개의 압박은 없거나 덜할 수 있습니다. 하지만 GPL 등 일부 라이센스는 개인적인 사용 목적이 아닌 경우 수정된 모든 소스를 반드시 공개해야 하는 의무가 있습니다. 이럴 경우에는 라이센스가 요구하는 것에 맞는 추가 대응이 필요합니다.
그리고 버그 수정 등의 경우 원 저작자에게 패치를 제공하여 커뮤니티가 발전할 수 있도록 기여해 주시면 더더욱 좋습니다.
'기술적인 이야기 > 기타 개발' 카테고리의 다른 글
Cargo :: 러스트 프로젝트 및 패키지 매니저 (1035) | 2020.07.24 |
---|---|
러스트(Rust) 시작해보기 (1311) | 2020.07.23 |
Flutter 사용 시 발생하는 미확인 개발자 문제 (5) | 2020.02.18 |
Python 3 정적 타이핑 소개 및 소감(?) (0) | 2020.02.13 |
Python에 F-string 이라는 게 있었다? (0) | 2020.02.11 |
댓글