Flutter教程全套 (全網(wǎng)獨家)百度網(wǎng)盤免費資源在線學習 ?
目前成都創(chuàng)新互聯(lián)已為上千多家的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)頁空間、網(wǎng)站改版維護、企業(yè)網(wǎng)站設計、柘城網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
鏈接:
提取碼: m9z8 ?
Flutter教程全套 (全網(wǎng)獨家)
第一套:Flutter 攜程17章全-整理好
第五套:Flutter高仿谷歌翻譯項目課程
第四套:兩小時掌握Flutter移動App開發(fā)視頻
第三套:flutter入門到精通全套
第七套:Flutter小實戰(zhàn)20個
第六套:仿直聘boss的flutter完整教程
第九套:Flutter跨平臺開發(fā)
第二套:flutter移動電商實戰(zhàn)-技術胖
第八套:Flutter基礎教程(基礎不好的優(yōu)先看)
24Flutter的打包.mp4
23靜態(tài)資源和項目圖片的處理.mp4
22頁面跳轉并返回數(shù)據(jù)_.mp4
21導航的參數(shù)傳遞和接受-2_.mp4
20導航的參數(shù)傳遞和接受-1.mp4
hello world例子
在終端打印字符串‘Hello World!’
計算斐波那契數(shù)列
一個簡單的類
計算兩點距離
異步并發(fā)示例
使用了Isolate
1.面向對象
對于面向對象這個概念,相信了解Java的同學對這個概念一定不會陌生。
例如:我們有個Person Object他有很多特征和行為。
這些都是這個Person Object的屬性。
也就是因為有了這些特征,行為等等才決定了這個人是誰。
那么回到Dart當中,所有的都是對象,那么在就可以可以跟進對象的屬性的特征,方法等等來進行編程。
之所以我們在這里又特別強調了一下面向對象的概念,是因為這個概念在Dart語言當中,至關重要!
2.最重要的幾個概念
3.Dart的部分特性
4.Dart的內置庫
包名
描述
dart:asynv
異步編程,提供Future,Stream類
dart:collection
集合
dart:convert
不同類型的字符編碼解碼
dart:core
Dart語言核心功能,內置類型
dart:html
網(wǎng)頁開發(fā)用到的庫
dart:io
文件讀寫,IO相關
dart:math
數(shù)字常量以及函數(shù),隨機算法等
dart:svg
事件和動畫矢量圖支持
綜上述所說要想學Flutter,先學Dart!關于Flutter下篇我會講到。為什么離不開dart!
有關更多面經(jīng)、核心技術筆記;自己也是從事Android開發(fā)5年有余了;整理了一些Android開發(fā)技術核心筆記和面經(jīng)題綱, 如有需要的同學請私信我回復“核心筆記”或“面試”領取!
網(wǎng)易云信播放器 Flutter 封裝
事情是這樣的 我們公司的業(yè)務是有 視頻播放這一塊業(yè)務 而且 是基于網(wǎng)易云信的 視頻服務的 做的開發(fā) 。公司的App開發(fā)框架是使用 Flutter , 那么問題來了 Flutter 怎么 實現(xiàn)視頻播放嘞 , 官方給出的解決方案 是 ### video_player 這個庫的 實現(xiàn) 是 原生端做視頻解碼 然后通過 Texture 的方式 映射到 Flutter 中 但是解碼器 IOS 使用的是 官方的 AVPlayer (蘋果官方提供的播放器 啥都好 就是不支持流媒體播放 ) Android 解碼器則是 exoplayer 很好很nice
但是
網(wǎng)易云信的視頻 是加密的 只有自己的 播放器sdk 在能解碼播放 android 和 ios 都支持流媒體 so 只能自己封裝
Android 使用 SurfaceTexture 銜接 視頻流 正常 但是 ios emmm 網(wǎng)易云信 播放器 返回 的 編碼格式 是 NELP_YUV420 就是 YUV420 直接映射到 Flutter 黑屏 但是有聲音
因為Skia 引擎底層只支持了 BGRA 格式的視頻數(shù)據(jù) 所以 和黑屏了
首先我們吧 YUV420 轉換成 CVPixelBufferRef 方法如下
該方法依賴 libyuv 請自行導入
然后是 pixelBuffer To SampleBuffer
最后吧 SmapleBuffer 轉換 BGRA
方法如何使用
在以前的 《Flutter 上默認的文本和字體知識點》 和 《帶你深入理解 Flutter 中的字體“冷”知識》 中,已經(jīng)介紹了很多 Flutter 上關于字體有趣的知識點,而本篇講繼續(xù)介紹 Flutter 上關于 Text 的一個屬性: FontFeature , 事實上相較于 Flutter ,本篇內容可能和前端或者設計關系更密切 。
什么是 FontFeature ? 簡單來說就是影響字體形狀的一個屬性 ,在前端的對應領域里應該是 font-feature-settings ,它有別于 FontFamily ,是用于指定字體內字的形狀的一個參數(shù)。
我們知道 Flutter 默認在 Android 上使用的是 Roboto 字體,而在 iOS 上使用的是 SF 字體,但是其實 Roboto 字體也是分很多類型的,比如你去查閱手機的 system/fonts 目錄,就會發(fā)現(xiàn)很多帶有 Roboto 字樣的字體庫存在。
所以 Roboto 之類的字體庫是一個很大的字體集,不同的 font-weight 其實對應著不同的 ttf ,例如默認情況下的 Roboto 是不支持 font-weight 為 600 的配置 :
所以如下圖所示,如果我們設置了 w400 - w700 的 weight ,可以很明顯看到中間的 500 和 600 其實是一樣的粗細,所以在 設置 weight 或者設計 UI 時,就需要考慮不同平臺上的 weight 是否支持想要的效果 。
回歸到 FontFeature 上,那 Roboto 自己默認支持多少種 features 呢? 答案是 26 種,它們的編碼如下所示,運行后效果也如下圖所示,從日常使用上看,這 26 種 Feature 基本滿足開發(fā)的大部分需求。
而 iOS 上的 SF pro 默認支持 39 種 Features , 它們的編碼如下所示,運行后效果也如下圖所示,可以看到 SF pro 支持的 Features 更多。
所以可以看到,并不是所有字體支持的 Features 都是一樣的,比如 iOS 上支持 sups 上標顯示和 subs 下標顯示,但是 Android 上的 Roboto 并不支持,甚至很多第三方字體其實并不支持 Features 。
有趣的是,在 Flutter Web 有一個渲染文本時會變模糊的問題 #58159 ,這個問題目前官方還沒有修復,但是你可以通過給 Text 設置任意 FontFeatures 來解決這個問題。
最后,如果對 FontFeature 還感興趣的朋友,可以通過一下資料深入了解,如果你還有什么關于字體上的問題,歡迎留言討論。
基于網(wǎng)友的問題再補充一下拓展知識,畢竟這方面內容也不多 。
事實上在 dart 里就可以看到對應 FontWeight 約定俗稱用的是字體集里的什么字體:
所以如果對于默認字體有疑問,可以在你的手機字體找找是否有對應的字體, 比如雖然我們說 roboto 沒有 600 ,但是如果是 roboto mono 字體集是有 600 的 fontweight ,甚至還有 600 斜體: 。
另外注意這是 Flutter 而不是原生,具體實現(xiàn)調用是在 Engine 的 paragraph_skia.cc 和 paragraph_builder_skia.cc 下對應的 setFontFamilies 相關邏輯,當然默認字體庫指定在 typography.dart 下就看到,例如 'Roboto' 、 '.SF UI Display' 、 '.SF UI Text' 、 '.AppleSystemUIFont' 、 'Segoe UI' :
另外如果你在 Mac 的 Web 上使用 Flutter Web,可以看到指定的是 .AppleSystemUIFont ,而對于 .AppleSystemUIFont 它其實不算是一種字體,而是蘋果上字體的一種集合別稱:
[圖片上傳失敗...(image-40f5ce-1648368234737)]
還有,如果你去看 Flutter 默認自帶的 cupertino/context_menu_action.dart ,就可以看到一個有趣的情況:
當然,前面我們說了那么多,主要是針對英文的情況下,而在中文下還是有差異的 ,之前的文章也介紹過:
例如,在蘋果上的簡體中文其實會是 PingFang SC 字體,對應還有 PingFang TC 和 PingFang HK 的繁體集,而關于這個問題在 Flutter 上之前還出現(xiàn)過比較有意思的 bug :
當然后續(xù)的 #16709 修復了這個問題 ,而在以前的文章我也講過,當時我遇到了 “Flutter 在 iOS 系統(tǒng)上,系統(tǒng)語言是韓文時,在和中文一起出現(xiàn)會導致字體顯示異常" 的問題 :
解決方法也很簡單,就是給 fontFamilyFallback 配置上 ["PingFang SC" , "Heiti SC"] 就可以了,這是因為韓文在蘋果手機上使用的應該是 Apple SD Gothic Neo 這樣的超集字體庫,【廣】這個字符在這個字體集上是不存在的,所以就變成了中文的【廣】;
所以可以看到,字體相關是一個平時很少會深入接觸的東西,但是一旦涉及多語言和繪制,就很容易碰到問題的領域 。
對于每一個開發(fā)者而言,開發(fā)工具就相當于他們的武器,選擇一個合適的工具能夠幫助我們在工作時事半功倍,在互聯(lián)網(wǎng)逐漸發(fā)展成熟的今天,越來越多的開發(fā)工具供我們選擇,但其中總有一些更好用的,如何選擇成為了一大難題。
從而頒布了2021年StackShare第八屆頂級工具獎,快來看看有沒有你青睞的開發(fā)工具吧。
年度最佳新興工具
1.FastAPI
FastAPI 是一個使用 Python3.6+ 構建 Web API 的高性能框架。根據(jù)框架創(chuàng)建者的說法,F(xiàn)astAPI 性能與 NodeJS 或 Golang 相當。
2.GitHub Copilot
作為一款 AI 結對編程工具,Copilot 的主要定位是提供類似 IntelliSense/IntelliCode 的代碼補全與建議功能,但在實際表現(xiàn)上有望超越同樣由微軟合作伙伴 OpenAI 開發(fā)的 Codex AI 系統(tǒng)。
3.FiglamFigma
Figma 是一個 基于瀏覽器 的協(xié)作式 UI 設計工具,從推出至今越來越受到 UI 設計師的青睞,也有很多的設計團隊投入了Figma 的懷抱,
4.Logtail
Logtail是日志服務提供的日志采集Agent,用于采集阿里云ECS、自建IDC、其他云廠商等服務器上的日志。本文介紹Logtail的功能、優(yōu)勢、使用限制及配置流程等信息。
5.Coder
開發(fā)人員工作區(qū)平臺·
6.Charts.csscss
Charts.css 是用于數(shù)據(jù)可視化的開源 CSS 框架,幫助用戶理解數(shù)據(jù),幫助開發(fā)人員使用簡單的 CSS 類將數(shù)據(jù)轉換為漂亮的圖表?!?/p>
7.Counter
簡單并且免費的網(wǎng)絡分析·
8.React Query
React Query是一個庫,可為任何類型的異步數(shù)據(jù)提供ReactJS狀態(tài)管理功能。根據(jù)他們的官方文件,·
9.vscode.dev
將VS Code引入瀏覽器,構建一個可以在瀏覽器中完全無服務器運行的開發(fā)工具。
10.BookStack
BookStack 是一個開源的、基于 Laravel + Vue.js 構建的知識管理和服務平臺。具有簡單但功能強大的所見即所得編輯器,允許團隊輕松創(chuàng)建詳細且有用的文檔?!?/p>
11.ThunderClient
Thunder Client 為我們提供了一款輕量級、易用、整潔、簡單的 Rest API 客戶端擴展?!の覀兛梢岳?Thunder Client 在編輯器內快速測試代碼庫的 API 端點,從而最大限度地減少頁面的切換。它可以替代 Postman,作為常用的無腳本測試工具。
12.Quod AI
Quod AI Code Search是一個由人工智能驅動的Chrome擴展,可以自動從Git存儲庫或Jira問題中搜索代碼。
它使用問題的標題和描述,并自動在你的Git存儲庫中找到匹配的內容。
13.Dendron
Dendron 是典型的開源社區(qū)編程思維的解決方案,雖然初看起來有一點學習曲線,但從根本上是給了使用者最大的自由發(fā)揮空間,同時又提供了最強大和最徹底的工具生態(tài)支持?!?/p>
14.Notion API
把概念和你每天使用的工具聯(lián)系起來·
15.Github1s
只需1秒,就可以用VS Code方式來看GitHub代碼。·
16.Ocean
容器的無服務器基礎架構引擎·
17.Magic
快速構建應用程序,可定制,無密碼登錄
·
18.Jina
更簡單的一種在云上構建神經(jīng)搜索的方法,
19.Focalboard
一款開源、本地存儲、免費的類 Notion 應用Focalboard 的自我定位是“Trello、Notion 和 Asana 的開源、自托管替代品”?!?/p>
20.zx
更好地編寫腳本的工具(By Google)
21.OpenSearh
OpenSearch是阿里云開放搜索簡稱,為解決用戶結構化數(shù)據(jù)搜索需求的托管服務,支持數(shù)據(jù)結構、搜索排序、數(shù)據(jù)處理自由定制?!?/p>
22.Querybook
一個可以發(fā)現(xiàn)、創(chuàng)建和共享數(shù)據(jù)分析、查詢以及表的大數(shù)據(jù)IDE(通過Pinterest),
23.MangoDB
MongoDB是一款為web應用程序和互聯(lián)網(wǎng)基礎設施設計的數(shù)據(jù)庫管理系統(tǒng)。MongoDB就是數(shù)據(jù)庫,是NoSQL類型的數(shù)據(jù)庫
24.TooIJet
Retool的開源替代品·
25.Kitemaker
Kitemaker是為團隊而非經(jīng)理創(chuàng)建的超快速問題跟蹤器。為遠程團隊創(chuàng)建的Jira的快速替代方案·
26.Appflowy
Appflowy 是一款使用 Flutter 和 Rust 構建的開源筆記軟件,它支持Windows、macOS和Linux,可以免費下載使用
27.Kubegres
Kubegres 是一個 Kubernetes Operator,用來部署并維護 PostgreSql 集群,提供開箱即用的數(shù)據(jù)復制和故障轉移功能,簡化 PostgreSql 集群生命周期管理,降低數(shù)據(jù)復制的復雜性
28.Lightning Web Components
Lightning Web Components,業(yè)內簡稱LWC,是Salesforce于Spring 19發(fā)布的一款新型Lightning Component,快速的企業(yè)級Web組件基礎
29.Judo
用無代碼構建原生應用體驗
30.Apache APISIX
Apache APISIX Apache APISIX是一個動態(tài)、實時、高性能的API網(wǎng)關。提供了豐富的流量管理功能,如負載均衡、動態(tài)上游、canary釋放、斷路、認證、可觀察性等。
31.Control
提供免費的加速、自動化安全性以及SOC2合規(guī)
32.Remix
專注于Web技術和現(xiàn)代 用戶體驗的框架
33.NocoDB
免費并且開源的Airtable替代方案
34.JetBrainsQodana
評估你擁有的、合同或購買的代碼的完整性
35.TabnineAI
只能代碼編寫
36.Coolify
一個開源的,自適應的Heroku和Netlify的替代品
37.Penpot
開源設計和原型平臺
38.Portman
Postman介紹:postman是一個開源的接口測試工具,無論是做單個接口的測試還是整套測試腳本的撥測都非常方便。
39.Devops Stack
持續(xù)部署Kubernetes環(huán)境
40.Slidev
面向開發(fā)人員的演示幻燈片
41.ReScript
ReScript 是一門針對 JavaScript 程序員的新語言,特別是對 TypeScript 和 Flow 的類型安全感興趣的程序員。ReScript 的語法和 JavaScript 非常相似
42.Fig
自定完成終端
43.FlutterFlow
Flutterflow 是一個在線低碼平臺,使人們在視覺上以人們在視覺上構建本機移動應用程序。
44.Porter
運行在你自己的云中的Heroku
45.SigmaOS
在 SigmaOS 中,你會看到完全不同的瀏覽器布局,它更像是一個工作臺
46.VictoeiaMetrics DB
快速、低成本的監(jiān)控解決方案和時間序列數(shù)據(jù)庫
47.CloudflarePages
JAMstack平臺為前端開發(fā)者提供協(xié)作和部署網(wǎng)站的平臺
48. Devbook
面向開發(fā)者的搜索引擎
49.Front Matter
直接在VS Code中管理靜態(tài)站點
50.Supacase UI
用于企業(yè)儀表的React組件庫
以上可以說是集結了開發(fā)行業(yè)中的所有“神器”,不僅能助力程序員高效工作,也是今后走向開發(fā)崗位小伙伴們的加薪工具。小伙伴可以從中挑選適合自己的工具~