ネイティブコードのプラグイン開発フラッターに基づいて[クラウド]財務分析

フラッターはすぐにiOSとAndroidの上の高品質なネイティブ・ユーザー・インターフェースを構築することができ、GoogleはモバイルUIフレームワークを立ち上げ、使用する開発言語はダートです。フラッターは、既存のコードで動作することができます。世界では、フラッターは、開発者や組織の成長数で使用されている、そしてそれは完全に無料、オープンソースです。

フラッタ機能

1.迅速な開発

ミリ秒の熱過負荷は、変更後に、アプリケーション・インターフェースはすぐに更新されます。数分でネイティブインターフェイスを構築豊富な、完全にカスタマイズ可能なウィジェットを使用します。

2.表現とフレキシブルUI

クイックリリースは、ネイティブの経験の機能に焦点を当てています。階層化アーキテクチャは、非常に高速なレンダリングや表現力、柔軟な設計を可能にする、完全にカスタマイズすることができます。

3.ネイティブパフォーマンス

フラッターは、iOSとAndroidのネイティブアプリケーションと同様の性能を達成することができ、このようなスクロール、ナビゲーション、アイコン、フォントなど多くのコアウィジェットを、含まれています。

しかし、本当の問題があります:私たちはネイティブのiOSとAndroid SDKを持っていた場合、必要なフラッターのバージョンならば、我々は再びゼロから再構築する必要がありますか?

オリジナルのSDKインタフェースはフラッターによって呼び出すことができるように、答えが必要とされていない、フラッターは、ネイティブコードと対話することができ、それは、ネイティブコードのプラグインの開発をサポートしています。

ネイティブ・コード・プラグイン開発フラッタに基づきます

まず、クロスプラットフォームの原則はフラッターを紹介します

フラッター以下は、クロスプラットフォームの原則の説明については、公式ウェブサイトで、詳細は、こちらをクリック

 

私たちは、チャートで見ることができるのiOS / Androidはまた戻っフラッターにデータをMethodChannelできるのに対し、フラッターは、MethodChannelデータでのiOS / Androidのに渡されます。

そこもう一つの問題がある:フラッターとiOSで使用され、Androidのさまざまな開発言語は、どのようなデータの種類ごとにそれを渡すことができますか?

 

上面这张表罗列了 Flutter 使用的 Dart 语言与 iOS/Android 可以传递的数据类型,从表中我们可以看到,它只能传递一些基本的数据类型,比如 bool,int,double,高级的就是 String,List,Map,而且表中指明了在各平台对应的数据类型转换:如 Dart 的 Map 对应 Android 的 HashMap,对应 iOS 的 NSDictionary 。

二、插件的基本结构介绍

在终端输入下面的命令,等待一分钟左右,Flutter 就会把整个项目框架搭建好。

 
 

Flutter Plugin 可简单理解为上图中的 Flutter wrapper , iOS wrapper , Android wrapper 三个绿色部分,图中的双向箭头表明了代码的调用逻辑,这就是为什么说 Flutter 的插件可以跨平台使用。

如何确定 Flutter wrapper 调用的是 iOS 的接口还是 Android 的接口?答案是由运行的设备决定,即运行 iOS 设备,Flutter wrapper 自动调用 iOS wrapper 的接口,Android 也是这样。

当执行完创建 Plugin 的命令之后,Flutter 会负责在当前目录创建一个 Plugin项目,具体的目录含义如下:

android/ : Android wrapper

ios/ :iOS wrapper

lib/ :Flutter wrapper

example/ :demo 根目录

example/android/ :Android project

example/ios/ :iOS project

example/lib/ :Flutter app

第一次运行需要使用终端进入 Plugin 项目路径下执行下面命令获取 Flutter 的依赖。

三、代码层面的交互演示

MethodChannel 的创建

Flutter 通过 MethodChannel 与 iOS/Android 进行交互,下面的代码展示了三个平台如何创建 MethodChannel 对象。

通过相同字符串创建的 MethodChannel 就可以进行跨平台的数据交互。

当 Flutter 调用接口触发原生代码的时候:

iOS 会触发的方法

Android 会触发的方法

两个平台一样,都会获取 MethodCall 对象 和 FlutterResult 对象。

MethodCall 对象保存了方法名和参数,通过方法名确定调用具体的方法,通过参数获取具体的数据。

FlutterResult 对象可以将数据返回给 Flutter,下面会讲解该对象的使用。

Flutter 与 iOS/Android 数据交互总共三种方式:

1.iOS/Android 不给 Flutter 返回数据

2.iOS/Android 通过 FlutterResult 给 Flutter 返回数据

 

3.iOS/Android 通过 MethodChannel 给 Flutter 返回数据

 

通过 FlutterResult 和 MethodChannel 都可以给 Flutter 返回数据,但是两者有所区别:

FlutterResult 适用于能够快速返回数据的接口,比如说 IM 连接的回调或者连接服务器的回调。

MethodChannel 适用于不确定什么时间响应数据的接口,比如说收到消息的回调。

MethodChannel 可以替代 FlutterResult 返回数据,但是 FlutterResult 无法替代 MethodChannel。

为了让开发者和更多平台便捷的使用融云IM 功能,融云 IM Flutter 已经开源,欢迎大家体验使用。

GitHub 地址:https://github.com/rongcloud/rongcloud-im-flutter-sdk

Flutter 仓库地址:https://pub.dev/packages/rongcloud_im_plugin

融云IM商用版年中大促火爆进行中

从 7 月 1 日——8 月 31 日,融云年中大促正在火热进行中,IM 商用版预存最低享 7 折,更多详情可以点击登录融云官网活动页面查看。

おすすめ

転載: www.cnblogs.com/rongcloud/p/11314430.html