개발을 하다보면 패키지? 플러그인?? 뭐가 맞지? 헷갈리는 경우가 있다.
패키지
패키지는 쉽게 말해서 Dart 언어를 써서 작성하면 패키지인것이다.
플러그인
Plugin은 특별한 형태의 Package이다.
Plugin은 해당 플랫폼별 기능에 의존적이다. (Plugin relies on that platform-specific functionality.)
Plugin은 dart언어 뿐만 아니라, 해당 플랫폼의 기능을 사용하기 위해 플랫폼에서 사용하는 언어(Kotilin, Swift, JavaScriipt 등)로 작성된 코드도 포함하고 있다.
예를 들어 안드로이드폰의 카메라나, 센서에 접근하기 위해서는 코틀린이나 자바로 작성된 플러그인을 사용하거나 직접 작성해야 한다. Plugin의 API는 Dart 로 작성된다. 그러나 기능의 구현은 해당 플랫폼에서 사용하는 native 언어를 이용해서 작성한다. Flutter는 이러한 native code와 소통하기 위해서 Platform channel 을 사용한다.
그리고 플러그인은 아래와 같이 플랫폼 별로 설정도 할수 있다.
flutter:
plugin:
platforms:
android:
package: com.example.hello
pluginClass: HelloPlugin
ios:
pluginClass: HelloPlugin
아래의 영상을 보면 자세히 알 수 있다.