- Flutter Application: Flutter应用标准模版
- Flutter Module :Flutter与原生混合开发
- Flutter Plugin:Flutter插件
- Flutter Package:纯Dart组件
- Flutter Skeleton:Flutter应用建议实践例程模版
1. Flutter Application (全新的APP)
标准的Flutter App工程,包含标准的Dart层与Native平台层
创建命令:
1 2 3 4 |
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混合开发》系列文章
1 |
flutter create -t module xxapp_module |
3. Flutter Plugin
官方解释和使用: https://flutter.dev/docs/development/packages-and-plugins/developing-packages#plugin-platforms
Flutter平台插件工程,包含Dart层与Native平台层的实现
1 |
$ flutter create --org com.example --template=plugin --platforms=android,ios -a kotlin hello |
1 |
$ flutter create --org com.example --template=plugin --platforms=android,ios -a java hello |
1 |
$ flutter create --org com.example --template=plugin --platforms=android,ios -i objc hello |
1 |
$ flutter create --org com.example --template=plugin --platforms=android,ios -i swift hello |
Plugin其实就是一个特殊的Package。Flutter Plugin提供Android或者iOS的底层封装,在Flutter层提供组件功能,使Flutter可以较方便的调取Native的模块。很多平台相关性或者对于Flutter实现起来比较复杂的部分,都可以封装成Plugin。其原理如下
原理
消息在client和host之间通过平台通道(platform channels)来进行的,之间的通讯都是异步的。
直接在Android Studio中新建一个Flutter Plugin的工程,当然也可以使用命令行来进行,例如创建一个flutter_text_plugin。
1 |
flutter create --org com.example --plugin xxapp_plugin |
如果想支持swift或者kotlin,可以用如下命令进行创建:
1 |
flutter create --org com.example --plugin -i swift -a kotlin xxapp_plugin |
4. Flutter Package
Flutter纯Dart插件工程,仅包含Dart层的实现,往往定义一些公共Widget
1 |
flutter create --template=package xxapp_package |
5. Flutter Skeleton
该种创建项目方式,从Flutter 2.5版本以后开始支持,目的是为开发提供一种较好的项目模板,使用这个模版新建的项目,不再是默认的计数器示例。 模板中可以看到路由、资源、多语言、状态管理,文件夹等好的实践方法。可以理解成一个进阶版本的 Application 例子。