加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

为什么我们应该使用 Flutter?环信Flutter SDK初体验

发布时间:2020-03-20 12:56:56 所属栏目:业界 来源:站长网
导读:副问题#e# 至顶网软件与处事频道动静:Flutter 是 Google 提供的新一代跨平台方案,跟着 Google 在 IO19 公布 Flutter 支持 Web 平台,就符号着 Flutter 已经全面持全部平台(今朝 Windows 的只是早期预览版本,将来有也许会支持 UWP),它提供了很是友爱的
副问题[/!--empirenews.page--]

至顶网软件与处事频道动静: Flutter 是 Google 提供的新一代跨平台方案,跟着 Google 在 IO19 公布 Flutter 支持 Web 平台,就符号着 Flutter 已经全面持全部平台(今朝 Windows 的只是早期预览版本,将来有也许会支持 UWP),它提供了很是友爱的文档来辅佐各端的同窗敏捷地进入到 Flutter 的海洋中。同时它的完全开源也让其有了更快的迭代,更好的生态。

感乐趣的同窗可以存眷 GitHub:https://github.com/flutter/flutter

Flutter 是 Google 提供的新一代跨平台方案,跟着 Google 在 IO19 公布 Flutter 支持 Web 平台,就符号着 Flutter 已经全面持全部平台(今朝 Windows 的只是早期预览版本,将来有也许会支持 UWP),它提供了很是友爱的文档来辅佐各端的同窗敏捷地进入到 Flutter 的海洋中。同时它的完全开源也让其有了更快的迭代,更好的生态。 的上风

对较量今朝的殽杂开拓方案,Flutter 提供了大量的文档,能很是快速且友爱的让你插手到这个各人庭。它并不止 WebView,也用通过表明 JS 后去操纵体系的原生控件,Flutter 焦点只有一层轻量的 C/C++代码(Engine),Flutter 在 Dart 中实现了其他大部门体系(组合、手势、动画、框架、widget 等),因此,开拓职员可以轻松地举办读取、变动、替代或移除等操纵。这为开拓职员提供了对体系的庞大可定制性。

2.jpg

针对移动端,Flutter 提供了切合 Android 气魄威风凛凛的 Material 和切合 iOS 气魄威风凛凛的 Cupertino,同时对差异平台也做了差异的兼容,更好地保存了平台的特征,如 ScrollView,在 iOS 平台中,滑动的时辰就拥有回弹的结果,在 Android 平台中,示意出来的就是阻尼的结果。虽然,有的时辰 Flutter 的 Framework 提供的 UI 格并不能满意我们的需求,我们还可以去自界说控件。

Flutter 在开拓中支持 Hot Reload,对较量原生,这样的方法能更高效地开拓,真正做到所写即所得。

Flutter 与 Native 通信

行使平台通道在客户端(Flutter UI)和宿主(平台)之间转达动静。

3.jpg

Flutter Platform Channel

Flutter 界说了三种差异范例的 Channel,它们别离是:

BasicMessageChannel:转达字符串或半布局化信息;

MethodChannel:转达要领挪用(method invocation);

EventChannel:数据流(event streams)通信。

三种范例的 Channel 都界说在 platform_channel.dart 中,从源码中可以看到三种 Channel 都用到了以下三个属性。

name:String 范例,暗示 channel 的名字,全局独一;

codec:MessageCodec 或 MethodCodec 范例,动静的编码解码器;

binaryMessenger:BinaryMessenger 范例,用于发送数据。

name:

Flutter 中也许存在多个 Channel,Channel 之以是行使 name 来区分,当从 Flutter 端发送到 Platform 端时,必要传 channel name,之后通过 name 找到对应的 handle 来处理赏罚。

codec:

Flutter 界说了两种 Codec —— MessageCodec 和 MethodCodec,从而用来快速地编码息争码。

4.jpg

binaryMessenger:

5.jpg

固然三种 Channel 各有效途,可是他们与 Flutter 通讯的器材却是沟通的,均为 BinaryMessager。

BinaryMessenger 是 Platform 端与 Flutter 端通讯的器材,其通讯行使的动静名目为二进制名目数据。当我们初始化一个 Channel,并向该 Channel 注册处理赏罚动静的 Handler 时,现实上会天生一个与之对应的

BinaryMessageHandler,并以 channel name 为 key 注册到 BinaryMessenger 中。当 Flutter 端发送动静到 BinaryMessenger 时,BinaryMessenger 会按照 channel 找到对应的 BinaryMessageHandler,并交由其处理赏罚。

Handler:

MessageHandler;

MethodHandler;

StreamHandler。

三种 handle 别离与三种 channel 对应,当我们向 channel 注册一个 handle 时,现实上就是向 BinaryMessager 注册一个对应 BinaryMessageHandler。当向 channel 发送动静时,就必要行使对应的 handle 来处理赏罚。

Flutter Packages 的操纵

行使 Packages

Flutter 支持行使由其他开拓者孝顺给 Flutter 和 Dart 生态体系的共享软件包。您可以在 https://pub.dev/ 中查找。

之后必要在 pubspec.yaml 中举办添加:

dependencies:
    flutter:
        sdk: flutter

    im_flutter_sdk: ^1.0.0

之后执行 flutter packages get 下载。

开拓的 package

用户也可以把本身开拓的 Flutter package 并宣布在 https://pub.dev/ 上。这里必要留意,假如开拓的 package 必要行使第三方 sdk,好比您开拓的 package 必要集成环信 Android 和 iOS 的 SDK,必要在对应的设置文件中添加对 SDK 的引用 ,如:

Android 必要在 build.gradle 中添加 Android SDK:

dependencies {
    api 'com.hyphenate:hyphenate-sdk:3.6.4'
}

iOS 必要在 podspec 中添加 iOS SDK:

s.dependency 'Hyphenate', '~> 3.6.4'

Packages 宣布

宣布前必要先搜查:

pubspec.yaml
README.md
CHANGELOG.md

这三个文件最后会呈此刻 https://pub.dev/package 中包信息的展示页 ,请细心确认。

之后执行校验:

flutter packages pub publish --dry-run --server=https://pub.dartlang.org

没有题目后执行宣布:

flutter packages pub publish --server=https://pub.dartlang.org

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读