Package 제작부터 배포까지

공식문서


Index

0. Package vs Plugin

1. Package 프로젝트 생성

2. Package 프로젝트 작성

3. example 생성 및 작성

4. 배포



0. Package vs Plugin

  • Package

    • dart 코드만!
    • pub.dev에 모든 플랫폼으로 노출 (ANDROID, IOS, LINUX, MACOS, WEB, WINDOWS)
  • Plugin

    • dart 코드 이외 플랫폼 특화 코드 포함될 경우(Swift, Kotlin, Java 등)
    • Native Bridge 사용해서 만들때!

굳이 나누자면 Package에 Native Code 포함 시키면 Plugin!!!


1. Package 프로젝트 생성

프로젝트를 생성할 폴더에 가서 Terminal 또는 CMD에서 프로젝트 생성

flutter create --template=package [만들고자하는 패키지명]

ex)

flutter create --template=package flutter_custom_sliver

차분히 다 생성될 때까지 기다리면 001-projectCreate Branch의 내용과 같이 생성된 프로젝트를 볼 수 있습니다.

완성된 모습 - 001-projectCreate Branch

2. Package 프로젝트 작성

이제 프로젝트를 생성 했으니 프로젝트 내용을 작성해 봅시다.
당신이 원하고자 하는 UI 혹은 기능을 구현한 후 main.dart에서 export 해줍니다.

library flutter_custom_sliver;

export 'sliver/custom_sliver.dart';
export 'sliver/custom_sliver_app_bar.dart';

export 해주는 이유는 만일 여러개의 클래스가 각기 다른 파일에 있을 경우 실제 사용할 때 각각 파일별로 임포트를 해주지 않고 export하는 라이브러리 하나만 import하여 사용하기 위함입니다.

import 'package:flutter_custom_sliver/flutter_custom_sliver.dart';

완성된 모습 - 002-packageWrite Branch


3. example 생성 및 작성

pub.dev 에서 패키지 상세 페이지에서 example 탭에 올라갈 코드입니다.
프로젝트 폴더에 가서 example을 만들어 줍니다.

flutter create example

example 폴더가 생성 되었으면 example/pubspec.yaml에서 당신이 만든 패키지의 dependencies를 추가해 줍니다.

dependencies:
  flutter:
    sdk: flutter

  cupertino_icons: ^1.0.2
  flutter_custom_sliver:
    path: ../

추가 후 example/lib/main.dart에서 만든 패키지를 사용하는 간략한 예제를 만들어 줍니다.

완성된 모습 - 003-example Branch


4. 배포

이제 배포할 일만 남았습니다. 하지만 배포하기전에 해야할 일이 조금 남아있습니다.
아래 파일들을 수정해야 하는데 순차적으로 수정해 봅시다.

  • README.md
    • 내 플러그인의 설명.
    • pub.dev 패키지 상세 페이지에서 바로 보여지는 그 설명!
    • pub.dev에 보여질 문서이기 때문에 각자 개성을 살려 아름답게 작성해 봅시다.
  • pubspec.yaml
    • 패키지 정보입력.
name: 패키지명
description: 패키지 간략설명
version: 버전
publisher: pub.dev에 퍼블리싱할 이메일
homepage: 당신의 홈페이지 주소
repository: 당신 패키지의 github repository 주소

예제

name: flutter_custom_sliver
description: Flutter Custom Sliver
version: 0.0.1
publisher: jwlee1024@gmail.com
homepage: https://github.com/111coding
repository: https://github.com/111coding/flutter_custom_sliver
  • CHNGELOG.md
    • 패키지 버전별 changelog(이것도 각자 알아서)
## 0.0.1

* Flutter custom sliver pre release
  • LICENSE
    • 배포 수정 등의 허용범위를 작성
    • MIT, Apache 등등. 이것 또한 본인이 원하는대로 하시면 됩니다.

이제 모든 준비가 끝났으니 배포를 하기 전에 테스트를 해봅시다.

flutter packages pub publish --dry-run

혹시나 아래와 같은 에러가 출력 된다면 pubspec.yamlpublisher 지우고 해보세요.
실제 퍼블리싱할 때 인증을 거치기 때문에 지워도 굳이 상관은 없습니다.

* "publisher" is not a key recognized by pub - did you mean "publish_to"?

에러가 없이 테스트를 완료 했으면 이제 진짜 배포를 해봅시다.

flutter packages pub publish

참 쉽죠?!^.~

완성된 모습 - 004-publish Branch




'Flutter' 카테고리의 다른 글

플러터 웹소켓 채팅 Flutter WebSocket Chat (Stomp)  (0) 2022.05.05
복사했습니다!