網(wǎng)站:
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序設(shè)計(jì)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了靖宇免費(fèi)建站歡迎大家使用!
Flutter官網(wǎng)
國(guó)內(nèi)Flutter中文資源網(wǎng)
Flutter中文網(wǎng)
Dart官網(wǎng)
Dart中文網(wǎng)
第三方包官網(wǎng)
國(guó)內(nèi)第三方包官網(wǎng)
必讀書籍:
《Dart語(yǔ)言實(shí)戰(zhàn):基于Angular框架的Web開發(fā)》
《Flutter實(shí)戰(zhàn)》
dio 是一個(gè)國(guó)產(chǎn)巨佬寫的一個(gè)Flutter的網(wǎng)絡(luò)請(qǐng)求庫(kù),寫這篇的文章的時(shí)候更新到3.x版本了。這里是他的 官方中文 使用鏈接: dio
按照原作者所說:
我這里這個(gè)時(shí)候的是一個(gè)3.0.9版本,這里的 ^ 符號(hào),表示3.多的庫(kù)比如說3.1.1啥的,也能更新下來。
dio 的原作者給了我們一個(gè)簡(jiǎn)單的例子
我們基礎(chǔ)的使用,請(qǐng)求一個(gè)URL,這里就直接是 Dio().get(".****.com") 。這樣就可以通過get方式來請(qǐng)求我們的鏈接。
在我們項(xiàng)目中,我們當(dāng)然不能直接使用 Dio().get(".****.com") 這樣的方法,那樣的話如果以后我們要更換網(wǎng)絡(luò)請(qǐng)求的庫(kù)的話,我們要修改的地方,就會(huì)非常的多。類似的問題,曾經(jīng)在iOS開發(fā)的歷史上出現(xiàn)過一次。最初的時(shí)候iOS的開發(fā)者大多使用的是一個(gè)叫 ASI 的庫(kù),但是在過了幾年的時(shí)候,這個(gè)庫(kù)不在維護(hù)了。這時(shí)候,我們就會(huì)去找一個(gè)新的網(wǎng)絡(luò)庫(kù)來代替他。當(dāng)時(shí)如果我們有500個(gè)文件中都直接使用 ASI ,我們就需要改動(dòng)500個(gè)地方。這樣的體力和眼力消耗,實(shí)在是太驚人了。所以,我們一般會(huì)自己創(chuàng)建一個(gè)專門的 網(wǎng)絡(luò)管理 的類 NetworkManager 。在 NetworkManager 里,我們把調(diào)用方法抽取出一個(gè)基礎(chǔ)的方法,使用的時(shí)候,基于這個(gè)基礎(chǔ)的方法來調(diào)用。這樣,我們就能很方便的去進(jìn)去使用和維護(hù)。
這個(gè)時(shí)候我們就可以使用我們創(chuàng)建的類來直接調(diào)用我們的方法了。
這樣,我們的 dio 的初步使用就完成了。下一篇文章來寫 dio 的進(jìn)階使用。
目前Flutter平臺(tái)主流的兩個(gè)播放器是video_player和fijkplayer
pub
github
1、Flutter平臺(tái)官方插件,作者是國(guó)外的,有問題溝通比較困難,只能通過提交issue
2、硬解碼
4、UI封裝: better_player
基于video_player和Chewie的高級(jí)視頻播放器。它解決了許多典型的用例,并且易于運(yùn)行。
5、播放器寬高比例與視頻內(nèi)容寬高比例不一致時(shí),會(huì)出現(xiàn)圖像壓縮變形的問題
6、調(diào)用原生內(nèi)核播放器:iOS--AVPlayer, Android--ExoPlayer
7、對(duì)于分段源 m3u8 的播放不友好,如果一個(gè)切片播放超時(shí),會(huì)導(dǎo)致整個(gè)播放都失敗
8、better_player可以緩存視頻,但不能自定義緩存的地址,只能指定key,和緩存的最大內(nèi)存量(還未研究超出最大的話是不能緩存新的,還是刪除最舊的)
9、better_player不能完全自定義UI,只能修改類中的一些開放屬性,比如說icon圖標(biāo),文字顏色啥的
10、無網(wǎng)絡(luò)有緩存時(shí),封面可以正常展示
11、better_player播放失敗有手動(dòng)retry的設(shè)計(jì)
pub
github
1、fijkplayer 是一個(gè) Flutter 生態(tài)的媒體播放器,是對(duì) ijkplayer 的 Flutter 封裝,支持 Android 和 iOS。 fijkplayer 使用 ijkplayer 作為播放器內(nèi)核,ijkplayer 使用 ffmpeg 進(jìn)行音視頻解封裝和解碼,同時(shí)添加了 Android 和 iOS 平臺(tái)特有的硬件加速解碼能力。
2 、國(guó)內(nèi)有QQ群,但是活躍度也是不高。
3、可以緩存視頻,可以自定義緩存的地址,方便后續(xù)的內(nèi)存維護(hù)。
4、可以通過FijkPanelWidgetBuilder較大程度上自定義UI。
5、無網(wǎng)絡(luò)有緩存視頻時(shí),無法展示封面,因?yàn)閮?nèi)部是通過imageProvider去加載網(wǎng)絡(luò)圖片的。
7、播放失敗無手動(dòng)retry的設(shè)計(jì)
1、兩種播放器都是通過外接紋理方案 (Texture),將播放器視頻畫面渲染接入 flutter 中,性能上優(yōu)于 PlatformView 的接入方法。
如何自己實(shí)現(xiàn)?
下面以video_palyer的iOS源碼部分解釋:
iOS用CVPixelBufferRef將渲染出來的數(shù)據(jù)存在內(nèi)存中,F(xiàn)lutter engine會(huì)將Texture的數(shù)據(jù)在內(nèi)存中直接進(jìn)行映射無需通過Channel傳輸,然后Texture Widget就可以把你提供的這些數(shù)據(jù)顯示出來。在我們傳輸數(shù)據(jù)的時(shí)候會(huì)需要將其與 TextureID 綁定,綁定的過程通過BasicMessageChannel實(shí)現(xiàn)數(shù)據(jù)流的傳輸,以做到實(shí)時(shí)展示的效果
??因?yàn)槲覀兪褂肍lutter跨平臺(tái)技術(shù)開發(fā)App時(shí),會(huì)有很多公用組件,因?yàn)镕lutter中一切皆為Widget,widget也比較細(xì)粒度,所以我們需要進(jìn)行封裝,用于一個(gè)項(xiàng)目或者公司不同項(xiàng)目中去~
??那么今天寫寫如何發(fā)布package或者插件到Pub.dev上,扯扯談O(∩_∩)O哈哈~
《Flutter的撥云見日》系列文章如下:
1、Flutter中指定字體(全局或者局部,自有字庫(kù)或第三方)
2、Flutter發(fā)布Package(Pub.dev或私有Pub倉(cāng)庫(kù))
首先,我們知道flutter有四種工程模式:Flutter Application、Flutter Module、Flutter Plugin和Flutter Package。
我們這里就主要講Package 純Dart插件的發(fā)布吧,都差不多。
創(chuàng)建工程后,就可以編寫你的公共組件,或者公用字體庫(kù)呀啥的, 都行。
在更改下你的pubspec.yaml文件,修改下你的versionCode,項(xiàng)目名稱,項(xiàng)目描述,作者等
如果上傳失敗試試????的命令:
在執(zhí)行該命令時(shí),可能會(huì)中途調(diào)到網(wǎng)頁(yè),要求你登錄google賬號(hào),登錄授權(quán),到時(shí)候登錄賬號(hào)并授權(quán)就可以了。
因?yàn)槲覀冎苯邮褂胒lutter packages pub publish是發(fā)布到Pub.dev上,并不是發(fā)布到私有倉(cāng)庫(kù),該怎么辦呢?
其實(shí)呢,也很簡(jiǎn)單!像versionCode,項(xiàng)目名,等都和發(fā)布Pub.dev是一樣的。沒啥區(qū)別。
有兩種方式:
就是這么簡(jiǎn)單o( @ )o
相信大家引用Pub.dev上的第三方庫(kù)都會(huì)了哈,到處都是這里不講了
在使用flutter pub get就可以拉到私有倉(cāng)庫(kù)項(xiàng)目了
以上就差不多聊了聊package發(fā)布和獲取的事兒了,都很明了,大家可以試試,挺簡(jiǎn)單的。
PS: 寫文不易,覺得沒有浪費(fèi)你時(shí)間,請(qǐng)給個(gè)點(diǎn)贊~ ????
Flutter教程全套 (全網(wǎng)獨(dú)家)百度網(wǎng)盤免費(fèi)資源在線學(xué)習(xí) ?
鏈接:
提取碼: m9z8 ?
Flutter教程全套 (全網(wǎng)獨(dú)家)
第一套:Flutter 攜程17章全-整理好
第五套:Flutter高仿谷歌翻譯項(xiàng)目課程
第四套:兩小時(shí)掌握Flutter移動(dòng)App開發(fā)視頻
第三套:flutter入門到精通全套
第七套:Flutter小實(shí)戰(zhàn)20個(gè)
第六套:仿直聘boss的flutter完整教程
第九套:Flutter跨平臺(tái)開發(fā)
第二套:flutter移動(dòng)電商實(shí)戰(zhàn)-技術(shù)胖
第八套:Flutter基礎(chǔ)教程(基礎(chǔ)不好的優(yōu)先看)
24Flutter的打包.mp4
23靜態(tài)資源和項(xiàng)目圖片的處理.mp4
22頁(yè)面跳轉(zhuǎn)并返回?cái)?shù)據(jù)_.mp4
21導(dǎo)航的參數(shù)傳遞和接受-2_.mp4
20導(dǎo)航的參數(shù)傳遞和接受-1.mp4
Flutter是谷歌的移動(dòng)UI框架,可以快速在iOS和Android上構(gòu)建高質(zhì)量的原生用戶界面。 Flutter可以與現(xiàn)有的代碼一起工作。在全世界,F(xiàn)lutter正在被越來越多的開發(fā)者和組織使用,并且Flutter是完全免費(fèi)、開源的。(-中文網(wǎng);-英文網(wǎng))
Flutter是一種趨勢(shì),勢(shì)必會(huì)取代RN,成為最主流的跨平臺(tái)開發(fā)框架,基于Dart語(yǔ)言。ios開發(fā)必須Mac電腦。android開發(fā)window、linux、Mac均可。