블로그로 보시는게 훨 좋습니다.
나도 이제 contributor?
최근 채용과제를 진행하면서, 패키지를 만들어 pub.dev에 배포해야할 일이 있었다.
구글은 pub.dev라는 공식 Dart, Flutter 패키지 저장소를 운영 중이었고, 편리한 버전관리와 이전버전 문서 보기, 문서관리 등 배포에 필요한 대부분의 기능을 지원해준다.
패키지를 실제로 배포해보며 contributor의 맛을 느껴보자.
패키지 프로젝트 시작하기
Plugin패키지를 알아봐야 한다면, 아래 출처들의 글들을 확인해야 한다.
Package vs Plugin
•
package
Dart코드로만 이루어진 라이브러리이다.
플랫폼과 상관없이 사용할 수 있다.
•
plugin
package에 Native code가 하나 이상 또한 포함된 라이브러리이다.
명령어로 패키지 프로젝트 만들기
아래 명령어를 사용하여 패키지 프로젝트를 만들 수 있다.
flutter create --template=package [만들고자하는 패키지명]
Shell
복사
Android Studio를 통해 패키지 프로젝트 만들기
Android Studio -> New Flutter Project에서
프로젝트 타입을 패키지로 변경하여 만들 수 있다.
플랫폼 네이티브 코드는 필요없으니 체크해제하자.
패키지 프로젝트 작성하기
만들 패키지를 lib폴더 내에서 만들자.
이때, 패키지 프로젝트 자체만으로는 코드를 실행시켜 확인해볼 수 없다.
테스트 프로젝트와 연결하기
다른 외부 프로젝트에서 만들고 있는 패키지를 연결하여 확인해볼 수 있다.
이때, 패키지 프로젝트는 테스트 프로젝트 외부에 있어야 한다.
- test-project
- package-project
Plain Text
복사
package-name:
path: {package-path} #ex) ../package-project
YAML
복사
path는 절대경로 상대경로 전부 가능하다.
패키지 프로젝트 설정
패키지를 다 만들었으면 yaml파일을 통해 정보를 입력해야 한다.
작성한 내용은 전부 pub.dev 내 노출되는 정보들이니 정확히 작성하자.
name: project name
description: 프로젝트 설명
version: 버전
homepage: (optional) 퍼블리셔 주소 혹은 패키지 index페이지 주소
repository: (optional) 코드 레포지토리
issue_tracker: (optional) issue 리포트 주소
...
YAML
복사
더 많은 정보는 https://dart.dev/tools/pub/pubspec
패키지 프로젝트 Example / Readme
아래 명령어를 입력하면 example 폴더를 생성한다.
flutter create example
Plain Text
복사
하지만 그냥 root 폴더에 (lib폴더와 같은 위치에) example 폴더를 생성하고 main.dart 코드를 작성하면 된다.
또한, GitHub 레포지토리에 작성하는 Readme가 그대로 홈페이지 소개화면에 노출된다.
따로 pub.dev를 위한 페이지를 작성할 필요가 없다.
패키지 프로젝트 CHNGELOG.md / License
프로젝트 root폴더에 CHNGELOG.md파일을 생성하면, pub.dev에서 확인할 수 있다.
## 1.0.1
* logloglog2
## 1.0.0
* logloglog
Plain Text
복사
프로젝트 root폴더에 LICENSE파일을 만들면 적용된다.
따로 만들기 귀찮으니 GitHub레포지토리 생성 시 미리 만들어두자.
패키지 프로젝트 배포하기
패키지를 실제로 배포하기 전에 빠진 부분이 없는지 정확히 확인하자.
꽤나 정확히 문제점을 알려준다.
flutter pub publish --dry-run
Bash
복사
만약 publisher 문제가 나온다면, yaml파일에 있는 publisher를 지우고 올리도록 하자.
패키지 배포 시 인증과정을 거치기 때문에 필요가 없다.
문제가 해결되었다면 아래 명령어를 통해 실제로 배포해보자.
우선 버전을 0.0.1 등으로 하여 올려보자. 아래에서 수정할 여지가 있다.
flutter pub publish
Plain Text
복사
패키지 프로젝트 관리하기
패키지 사이트를 보면 옆에 Pub Points가 보인다.
실제로 훌륭한 패키지인지 아닌지 점수를 매기는데, 생각보다 놓친 부분이 많다.
포인트를 잘 확인하여 놓친 부분을 수정하고 배포할 수 있도록 하자.
누군가는 우리가 만든 패키지를 사용하여 서비스를 만들거나 프로젝트를 생성한다.
책임감을 가지며 패키지를 관리하고 동료 개발자들에게 도움이 되어보자.