久久在线视频在线_欧美在线一级va免费观看_欧美日韩国产在线一区_亚洲一区二区三区在线观看视频

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

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

來(lái)源: 編輯: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ù)覽版本,未來(lái)有可能會(huì)支持 UWP),它提供了非常友好的文檔來(lái)幫助各端的同學(xué)迅速地進(jìn)入到 Flutter 的海洋中。同時(shí)它的完全開(kāi)源也讓其有了更快的迭代,更好的生態(tài)。 感興趣的同學(xué)可以關(guān)注 GitHub:https://github.com/flutter/flutter Flutter 的優(yōu)勢(shì) 相比較目前的混合開(kāi)發(fā)方案,F(xiàn)lutter 提供了大量的文檔,能非常快速且友好的讓你加入到這個(gè)大家庭。它并不止 WebView,也用通過(guò)解釋 JS 后去操作系統(tǒng)的原生控件,F(xiàn)lutter 核心只有一層輕量的 C/C++代碼(Engine),F(xiàn)lutter 在 Dart 中實(shí)現(xiàn)了其他大部分系統(tǒng)(組合、手勢(shì)、動(dòng)畫(huà)、框架、widget 等),因此,開(kāi)發(fā)人員可以輕松地進(jìn)行讀取、更改、替換或移除等操作。這為開(kāi)發(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)出來(lái)的就是阻尼的效果。當(dāng)然,有的時(shí)候 Flutter 的 Framework 提供的 UI 格并不能滿(mǎn)足我們的需求,我們還可以去自定義控件。 Flutter 在開(kāi)發(fā)中支持 Hot Reload,相比較原生,這樣的方式能更高效地開(kāi)發(fā),真正做到所寫(xiě)即所得。 Flutter 與 Native 通訊 使用平臺(tái)通道在客戶(hù)端(Flutter UI)和宿主(平臺(tái))之間傳遞消息。

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

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

為什么我們應(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 來(lái)處理。 Flutter Packages 的操作 使用 Packages Flutter 支持使用由其他開(kāi)發(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 下載。 開(kāi)發(fā)的 package 用戶(hù)也可以把自己開(kāi)發(fā)的 Flutter package 并發(fā)布在 https://pub.dev/ 上。這里需要注意,如果開(kāi)發(fā)的 package 需要使用第三方 sdk,比如您開(kāi)發(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 中包信息的展示頁(yè) ,請(qǐng)仔細(xì)確認(rèn)。 之后執(zhí)行校驗(yàn): flutterpackagespubpublish--dry-run--server=https://pub.dartlang.org 沒(méi)有問(wèn)題后執(zhí)行發(fā)布: flutterpackagespubpublish--server=https://pub.dartlang.org 此時(shí)會(huì)要求校驗(yàn)郵箱,把命令行中返回的 URL 粘貼到瀏覽器中,使用 Google Gmail 進(jìn)行驗(yàn)證,校驗(yàn)后命令行中會(huì)提示校驗(yàn)成功,之后開(kāi)始上傳,等待上傳結(jié)束后 package 就發(fā)布成功了。之后就可以在 pub.dev 中搜索到發(fā)布的。 結(jié)語(yǔ) Flutter 作為新興的混合開(kāi)發(fā)解決方案,已經(jīng)被廣泛關(guān)注和使用,這不光是因?yàn)樗?Google 的支持,更因?yàn)樗峁┝烁晟频奈臋n和更高效的運(yùn)行方式,開(kāi)發(fā)者不必再把大量精力放到不同平臺(tái)的展示上,更好的完成自己的業(yè)務(wù),從企業(yè)管理者角度看,也大大降低了開(kāi)發(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!歡迎訪問(wèn)環(huán)信官網(wǎng) http://www.easemob.com/download/im 下載體驗(yàn)。 作者簡(jiǎn)介:杜潔鵬,從業(yè) 9 年,在環(huán)信負(fù)責(zé) iOS 開(kāi)發(fā),專(zhuān)注于移動(dòng)開(kāi)發(fā)、VR 和攝影方向。 --------------------------------------------------------- 免責(zé)聲明: 1.本文援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息,僅代表作者本人觀點(diǎn),與本網(wǎng)站無(wú)關(guān)。 2.本文僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。

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

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

相關(guān)文章

久久在线视频在线_欧美在线一级va免费观看_欧美日韩国产在线一区_亚洲一区二区三区在线观看视频
欧美不卡高清| 欧美在线你懂的| 欧美日韩国产天堂| 99精品福利视频| 一本到高清视频免费精品| 欧美日韩1080p| 校园激情久久| 久久久精品久久久久| 亚洲黄色av| 国产在线视频欧美| 久久一区国产| 亚洲免费在线电影| 精品盗摄一区二区三区| 欧美高清在线| 国产精品久久久久久久久免费| 欧美在线精品一区| 蜜桃av综合| 亚洲欧美偷拍卡通变态| 久久精品亚洲精品| 在线亚洲观看| 性色av一区二区三区| 亚洲欧洲日本国产| 亚洲一区二区三区精品视频| 在线成人www免费观看视频| 亚洲精品一区二区三区婷婷月| 国产精品外国| 亚洲清纯自拍| 国产亚洲成人一区| 亚洲精品乱码久久久久| 狠狠色噜噜狠狠色综合久| 亚洲人午夜精品| 韩国三级电影久久久久久| 亚洲精品女人| 国产区精品视频| 亚洲精品日韩一| 一区在线免费| 午夜精品成人在线视频| 一区二区冒白浆视频| 久久嫩草精品久久久久| 欧美一区二区三区在线看| 欧美激情精品久久久久久黑人| 久久综合精品一区| 国产精品视频一二| 最新日韩av| 亚洲国产成人精品久久久国产成人一区| 亚洲午夜精品17c| 99亚洲伊人久久精品影院红桃| 久久精品亚洲热| 久久精品国产综合精品| 国产精品毛片a∨一区二区三区|国 | 一区在线播放| 久久精品青青大伊人av| 午夜精品剧场| 国产精品jizz在线观看美国| 亚洲精品乱码久久久久久蜜桃91 | 欧美亚洲一区在线| 欧美日韩伊人| 99精品福利视频| 99re这里只有精品6| 欧美成人精品一区二区| 欧美高清hd18日本| 最新高清无码专区| 欧美二区在线播放| 最新成人av在线| 一本色道久久88综合日韩精品| 欧美高清在线一区二区| 亚洲激情中文1区| 亚洲乱码国产乱码精品精天堂| 欧美国产免费| 欧美精品一区二区三区在线看午夜 | 久久久久久久国产| 久久影院午夜片一区| 一区二区三区在线不卡| 久久综合狠狠综合久久激情| 老司机午夜免费精品视频| 亚洲大片在线观看| 欧美aaaaaaaa牛牛影院| 91久久久一线二线三线品牌| 夜色激情一区二区| 国产精品久久久久久久久久尿 | 欧美三级电影一区| 亚洲专区一区| 久久野战av| 亚洲日韩成人| 国产精品v欧美精品v日本精品动漫| 一区二区三区精品视频| 久久激情视频久久| 亚洲国产精品第一区二区| 午夜精品国产| 红桃视频成人| 欧美日韩黄色大片| 亚洲欧美中日韩| 欧美aaa级| 亚洲一区亚洲| 一区二区亚洲欧洲国产日韩| 欧美mv日韩mv亚洲| 亚洲一区自拍| 亚洲大胆av| 亚洲综合首页| 亚洲电影av在线| 国产精品美女久久久浪潮软件| 久久久九九九九| 日韩亚洲欧美在线观看| 久久久蜜臀国产一区二区| 亚洲精品网站在线播放gif| 国产精品一区免费观看| 免费高清在线一区| 亚洲综合成人在线| 亚洲高清不卡在线观看| 欧美在线视频在线播放完整版免费观看| 亚洲黑丝一区二区| 国产婷婷色一区二区三区| 欧美日韩第一区| 久久综合久久久久88| 亚洲在线网站| 亚洲经典三级| 免费亚洲电影在线| 久久狠狠婷婷| 午夜精品久久久久久99热软件| 亚洲精品婷婷| 亚洲国产综合91精品麻豆| 亚洲日本无吗高清不卡| 久久久蜜桃精品| 欧美一级播放| 亚洲欧美日韩另类| 中国成人在线视频| 亚洲精品久久| 最新成人av网站| 亚洲国产三级网| 1024亚洲| 国色天香一区二区| 国产午夜精品视频| 欧美一级大片在线免费观看| 亚洲视频视频在线| 亚洲国产老妈| 在线播放日韩专区| 一区二区在线观看视频在线观看| 国产日韩欧美在线观看| 国产精品专区h在线观看| 国产精品青草综合久久久久99| 欧美三级午夜理伦三级中视频| 欧美精品在欧美一区二区少妇| 欧美国产在线视频| 欧美日韩精品免费 | 99精品欧美一区| 日韩一级网站| 亚洲色在线视频| 亚洲一区区二区| 欧美有码在线观看视频| 久久另类ts人妖一区二区| 久久噜噜亚洲综合| 久久综合一区二区三区| 欧美成人免费全部| 欧美日韩免费高清一区色橹橹| 国产精品jizz在线观看美国| 国产伦精品一区二区三| 国产综合精品| 亚洲破处大片| 亚洲午夜久久久久久久久电影网| 亚洲自拍偷拍麻豆| 久久国产66| 欧美韩日高清| 日韩亚洲欧美成人一区| 亚洲欧美激情诱惑| 久热这里只精品99re8久| 欧美精品在线视频观看| 国产精品一二三四区| 国内自拍视频一区二区三区 | 国产综合久久久久久| 亚洲人成亚洲人成在线观看 | 激情六月婷婷久久| 亚洲精品日产精品乱码不卡| 亚洲视频电影图片偷拍一区| 久久国产精品久久久久久久久久| 蜜桃av久久久亚洲精品| 亚洲免费播放| 久久久999精品视频| 欧美日韩国产成人在线观看| 亚洲福利国产| 亚洲香蕉视频| 欧美国产视频日韩| 国产日韩欧美不卡| av成人国产| 久久综合999| 中文欧美字幕免费| 欧美不卡高清| 狠狠入ady亚洲精品经典电影| 夜夜精品视频| 亚洲福利免费| 久久av在线| 国产精品久久久久9999吃药| 亚洲国产日日夜夜| 久久久久www| 亚洲一区二区三区免费视频| 欧美成年人视频| 黄色日韩在线| 久久电影一区| 亚洲伊人观看| 欧美午夜精品久久久久免费视| 亚洲国产一区二区精品专区|