玩弄放荡人妇系列av在线网站,日韩黄片,人人妻人人添人人爽,欧美一区,日本一区二区三区在线 |观看,日本免费a级毛一片

您當(dāng)前的位置: 首頁 > 新聞 > 行業(yè)

為什么我們應(yīng)該使用 Flutter?環(huán)信Flutter SDK初體驗(yàn)

來源: 編輯:vbeiyou 時(shí)間:2020-03-16 03:04人閱讀
Flutter 是 Google 提供的新一代跨平臺(tái)方案,隨著 Google 在 IO19 宣布 Flutter 支持 Web 平臺(tái),就標(biāo)志著 Flutter 已經(jīng)全面持所有平臺(tái)(目前 Windows 的只是早期預(yù)覽版本,未來有可能會(huì)支持 UWP),它提供了非常友好的文檔來幫助各端的同學(xué)迅速地進(jìn)入到 Flutter 的海洋中。同時(shí)它的完全開源也讓其有了更快的迭代,更好的生態(tài)。 感興趣的同學(xué)可以關(guān)注 GitHub:https://github.com/flutter/flutter Flutter 的優(yōu)勢(shì) 相比較目前的混合開發(fā)方案,F(xiàn)lutter 提供了大量的文檔,能非常快速且友好的讓你加入到這個(gè)大家庭。它并不止 WebView,也用通過解釋 JS 后去操作系統(tǒng)的原生控件,F(xiàn)lutter 核心只有一層輕量的 C/C++代碼(Engine),F(xiàn)lutter 在 Dart 中實(shí)現(xiàn)了其他大部分系統(tǒng)(組合、手勢(shì)、動(dòng)畫、框架、widget 等),因此,開發(fā)人員可以輕松地進(jìn)行讀取、更改、替換或移除等操作。這為開發(fā)人員提供了對(duì)系統(tǒng)的巨大可定制性。

為什么我們應(yīng)該使用 Flutter?環(huán)信Flutter SDK初體驗(yàn)(圖1)

針對(duì)移動(dòng)端,F(xiàn)lutter 提供了符合 Android 風(fēng)格的 Material 和符合 iOS 風(fēng)格的 Cupertino,同時(shí)對(duì)不同平臺(tái)也做了不同的兼容,更好地保留了平臺(tái)的特性,如 ScrollView,在 iOS 平臺(tái)中,滑動(dòng)的時(shí)候就擁有回彈的效果,在 Android 平臺(tái)中,表現(xiàn)出來的就是阻尼的效果。當(dāng)然,有的時(shí)候 Flutter 的 Framework 提供的 UI 格并不能滿足我們的需求,我們還可以去自定義控件。 Flutter 在開發(fā)中支持 Hot Reload,相比較原生,這樣的方式能更高效地開發(fā),真正做到所寫即所得。 Flutter 與 Native 通訊 使用平臺(tái)通道在客戶端(Flutter UI)和宿主(平臺(tái))之間傳遞消息。

為什么我們應(yīng)該使用 Flutter?環(huán)信Flutter SDK初體驗(yàn)(圖2)

Flutter Platform Channel Flutter 定義了三種不同類型的 Channel,它們分別是: BasicMessageChannel:傳遞字符串或半結(jié)構(gòu)化信息; MethodChannel:傳遞方法調(diào)用(method invocation); EventChannel:數(shù)據(jù)流(event streams)通訊。 三種類型的 Channel 都定義在 platform_channel.dart 中,從源碼中可以看到三種 Channel 都用到了以下三個(gè)屬性。 name:String 類型,表示 channel 的名字,全局唯一; codec:MessageCodec 或 MethodCodec 類型,消息的編碼解碼器; binaryMessenger:BinaryMessenger 類型,用于發(fā)送數(shù)據(jù)。 name: Flutter 中可能存在多個(gè) Channel,Channel 之所以使用 name 來區(qū)分,當(dāng)從 Flutter 端發(fā)送到 Platform 端時(shí),需要傳 channel name,之后通過 name 找到對(duì)應(yīng)的 handle 來處理。 codec: Flutter 定義了兩種 Codec —— MessageCodec 和 MethodCodec,從而用來快速地編碼和解碼。

為什么我們應(yīng)該使用 Flutter?環(huán)信Flutter SDK初體驗(yàn)(圖3)

binaryMessenger:

為什么我們應(yīng)該使用 Flutter?環(huán)信Flutter SDK初體驗(yàn)(圖4)

雖然三種 Channel 各有用途,但是他們與 Flutter 通信的工具卻是相同的,均為 BinaryMessager。 BinaryMessenger 是 Platform 端與 Flutter 端通信的工具,其通信使用的消息格式為二進(jìn)制格式數(shù)據(jù)。當(dāng)我們初始化一個(gè) Channel,并向該 Channel 注冊(cè)處理消息的 Handler 時(shí),實(shí)際上會(huì)生成一個(gè)與之對(duì)應(yīng)的 BinaryMessageHandler,并以 channel name 為 key 注冊(cè)到 BinaryMessenger 中。當(dāng) Flutter 端發(fā)送消息到 BinaryMessenger 時(shí),BinaryMessenger 會(huì)根據(jù) channel 找到對(duì)應(yīng)的 BinaryMessageHandler,并交由其處理。 Handler: MessageHandler; MethodHandler; StreamHandler。 三種 handle 分別與三種 channel 對(duì)應(yīng),當(dāng)我們向 channel 注冊(cè)一個(gè) handle 時(shí),實(shí)際上就是向 BinaryMessager 注冊(cè)一個(gè)對(duì)應(yīng) BinaryMessageHandler。當(dāng)向 channel 發(fā)送消息時(shí),就需要使用對(duì)應(yīng)的 handle 來處理。 Flutter Packages 的操作 使用 Packages Flutter 支持使用由其他開發(fā)者貢獻(xiàn)給 Flutter 和 Dart 生態(tài)系統(tǒng)的共享軟件包。您可以在 https://pub.dev/ 中查找。 之后需要在 pubspec.yaml 中進(jìn)行添加: dependencies: flutter: sdk:flutter im_flutter_sdk:^1.0.0 之后執(zhí)行 flutter packages get 下載。 開發(fā)的 package 用戶也可以把自己開發(fā)的 Flutter package 并發(fā)布在 https://pub.dev/ 上。這里需要注意,如果開發(fā)的 package 需要使用第三方 sdk,比如您開發(fā)的 package 需要集成環(huán)信 Android 和 iOS 的 SDK,需要在對(duì)應(yīng)的配置文件中添加對(duì) 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 發(fā)布 發(fā)布前需要先檢查: pubspec.yaml README.md CHANGELOG.md 這三個(gè)文件最后會(huì)出現(xiàn)在 https://pub.dev/package 中包信息的展示頁 ,請(qǐng)仔細(xì)確認(rèn)。 之后執(zhí)行校驗(yàn): flutterpackagespubpublish--dry-run--server=https://pub.dartlang.org 沒有問題后執(zhí)行發(fā)布: flutterpackagespubpublish--server=https://pub.dartlang.org 此時(shí)會(huì)要求校驗(yàn)郵箱,把命令行中返回的 URL 粘貼到瀏覽器中,使用 Google Gmail 進(jìn)行驗(yàn)證,校驗(yàn)后命令行中會(huì)提示校驗(yàn)成功,之后開始上傳,等待上傳結(jié)束后 package 就發(fā)布成功了。之后就可以在 pub.dev 中搜索到發(fā)布的。 結(jié)語 Flutter 作為新興的混合開發(fā)解決方案,已經(jīng)被廣泛關(guān)注和使用,這不光是因?yàn)樗?Google 的支持,更因?yàn)樗峁┝烁晟频奈臋n和更高效的運(yùn)行方式,開發(fā)者不必再把大量精力放到不同平臺(tái)的展示上,更好的完成自己的業(yè)務(wù),從企業(yè)管理者角度看,也大大降低了開發(fā)成本。作者 | 環(huán)信杜潔鵬出品 | CSDN(ID:CSDNnews) 環(huán)信IM Flutter SDK & Demo:環(huán)信IM Flutter SDK彌合了iOS和Android兩大平臺(tái)的原生SDK功能,結(jié)合Flutter社區(qū)豐富的Widgets和Frameworks,一套代碼,讓你快速擁有兩個(gè)平臺(tái)App!歡迎訪問環(huán)信官網(wǎng) http://www.easemob.com/download/im 下載體驗(yàn)。 作者簡介:杜潔鵬,從業(yè) 9 年,在環(huán)信負(fù)責(zé) iOS 開發(fā),專注于移動(dòng)開發(fā)、VR 和攝影方向。 --------------------------------------------------------- 免責(zé)聲明: 1.本文援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息,僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān)。 2.本文僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。

本站所有文章、數(shù)據(jù)、圖片均來自互聯(lián)網(wǎng),一切版權(quán)均歸源網(wǎng)站或源作者所有。

如果侵犯了你的權(quán)益請(qǐng)來信告知我們刪除。郵箱:business@qudong.com

相關(guān)文章