- Flutter Application: Flutter應用
- Flutter Module :Flutter與原生混合開發
- Flutter Plugin:Flutter插件
- Flutter Package:純Dart組件
1. Flutter Application (全新的APP)
標準的Flutter App工程,包含標準的Dart層與Native平臺層
創建命令:
flutter create xxapp
//默認Android使用Java,iOS使用Objective-C。
//如果要指定語言,比如安卓使用Kotlin,iOS使用Swift
flutter create -i swift -a kotlin xxapp
工程目錄:
2. Flutter Module (混編到已有的安卓/iOS工程內)
官方的混編方案-Add Flutter to existing apps 也可以參考我往期的《Flutter嵌入swift混合開發》系列文章
flutter create -t module xxapp_module
工程目錄:
3. Flutter Plugin
Flutter平臺插件工程,包含Dart層與Native平臺層的實現
flutter create --template=plugin xxapp_plugin
工程目錄:
Plugin其實就是一個特殊的Package。Flutter Plugin提供Android或者iOS的底層封裝,在Flutter層提供組件功能,使Flutter可以較方便的調取Native的模塊。很多平臺相關性或者對於Flutter實現起來比較複雜的部分,都可以封裝成Plugin。其原理如下
原理
消息在client和host之間通過平臺通道(platform channels)來進行的,之間的通訊都是異步的。
直接在Android Studio中新建一個Flutter Plugin的工程,當然也可以使用命令行來進行,例如創建一個flutter_text_plugin。
flutter create --org com.example --plugin xxapp_plugin
如果想支持swift或者kotlin,可以用如下命令進行創建:
flutter create --org com.example --plugin -i swift -a kotlin xxapp_plugin
4. Flutter Package
Flutter純Dart插件工程,僅包含Dart層的實現,往往定義一些公共Widget
flutter create --template=package xxapp_package
工程目錄:
文章摘自 三也世界的《Flutter四種工程類型》