<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Flutter 涼了嗎?

          共 4678字,需瀏覽 10分鐘

           ·

          2020-09-10 19:02

          點(diǎn)擊“開發(fā)者技術(shù)前線”,選擇“星標(biāo)?”

          在看|星標(biāo)|留言,? 真愛


          作者 |?Eric Grandt出品 | CSDN(ID:CSDNnews)
          原文:https://www.freecodecamp.org/news/why-i-think-flutter-is-the-future-of-mobile-app-development-768332b73c0d/

          隨著系統(tǒng)以及應(yīng)用復(fù)雜性的日益增高,「write once,run anywhere」開始成為越來越多開發(fā)工具的終極目標(biāo)。
          基于此,Google 于 2017 年的 I/O 大會上隆重推出了移動 UI 框架 Flutter,可以讓開發(fā)者在 iOS 和 Android 系統(tǒng)上快速構(gòu)建高質(zhì)量的原生用戶界面。與此同時,蘋果也于2019年 WWDC 為開發(fā)者們帶來了一套可橫跨蘋果幾大操作系統(tǒng)的 UI 框架 SwiftUI。
          那么在此趨勢下,類似?Flutter 的這種工具真的是新一代移動開發(fā)的未來嗎?
          幾年前,我在Android和iOS開發(fā)中略有涉足,使用的是Java和Objective-C。在花了大約一個月的時間學(xué)習(xí)后,我決定不再深入學(xué)習(xí)了。我就是無法找到那種深入其中的狀態(tài)。
          但最近,我了解了Flutter,并決定在移動應(yīng)用程序開發(fā)方向上再試上一試。我當(dāng)即就愛上了它,因為它使開發(fā)多平臺應(yīng)用程序變得賊有趣。自從了解它以來,我已經(jīng)使用它創(chuàng)建了一個app和一個庫。Flutter似乎是一個非常有前景的一步,下面我想解釋一下我之所以相信這一點(diǎn)的幾方面的原因。


          1


          由Dart提供技術(shù)支持

          Flutter使用的是由谷歌開發(fā)的Dart語言。如果你之前使用過Java,那么會比較熟悉Dart的語法,因為它們非常相似。但除了語法之外,Dart跟Java就很不同了。
          我不打算深入討論Dart,以免跑題,但我想討論一下我認(rèn)為它最有用的功能。這個功能就是異步操作。Dart不僅支持異步操作,而且還使其變得非常容易。
          如果你正在進(jìn)行IO或其他耗時的操作(例如查詢數(shù)據(jù)庫),那么你有可能在所有Flutter應(yīng)用程序中使用異步操作。如果沒有異步操作,任何耗時的操作都會導(dǎo)致程序凍結(jié)直到此操作完成。為了防止這種情況,Dart為我們提供了async和await關(guān)鍵字,以允許我們的程序在等待這些較長操作完成的過程中繼續(xù)往下執(zhí)行。
          讓我們看看幾個例子:一個有異步操作,一個沒有。
          并分別查看輸出:
          這不太理想。沒人會想用在執(zhí)行長時間操作時會卡住的App。所以讓我們稍微修改一下并使用async和await關(guān)鍵字。
          并再次輸出:
          有了異步操作,我們在執(zhí)行需要比較久才能完成的代碼的同時,其余代碼的執(zhí)行也不會被妨礙。

          2


          只寫一次代碼,就能同時在Android和iOS上運(yùn)行

          考慮到需要為Android和iOS使用不同的代碼庫,開發(fā)移動應(yīng)用程序可能需要花費(fèi)大量時間。除非您使用像Flutter這樣的SDK,這樣您就將擁有一個能適配兩個操作系統(tǒng)的代碼庫。不僅如此,你還可以完全原生地運(yùn)行它們。這意味著諸如瀏覽頁面和導(dǎo)航之類的東西,完美配合不同的操作系統(tǒng)。
          一言以蔽之,只要您有個設(shè)備或模擬器在運(yùn)行著,F(xiàn)lutter就可以使構(gòu)建和運(yùn)行您的應(yīng)用程序來進(jìn)行測試的過程簡單到動動手指就能完成。

          3


          UI開發(fā)

          UI開發(fā)幾乎是我最不期待的事情之一。我更像是一個后端開發(fā)人員,所以當(dāng)涉及到嚴(yán)重依賴它的東西時,我只想要一些簡單的東西。這就是Flutter在我眼中閃耀的地方。
          UI通過將不同的小部件組合在一起并修改它們以適合你的App外觀來創(chuàng)建。你幾乎可以完全控制這些小部件的顯示方式,因此你最終總是會得償所愿。為了布局UI,可以使用諸如Row,Column和Container之類的小部件。對于內(nèi)容,有諸如Text和RaisedButton之類。這只是Flutter提供的小部件中的幾個,除這些之外還有很多。使用這些小部件,我們可以構(gòu)建一個非常簡單的UI:
          Flutter像一個擁有各種各樣道具的魔術(shù)師,使你能輕而易舉地構(gòu)建App的主題。你可以通過手動更改字體,顏色,并逐個設(shè)置所有內(nèi)容,但這需要太長時間了。相反,F(xiàn)lutter為我們提供了一個名為ThemeData的東西,它允許我們?yōu)轭伾煮w,輸入字段等等設(shè)值。此功能在保持應(yīng)用外觀的一致性方面很出色。
          使用此ThemeData,我們設(shè)置應(yīng)用程序顏色,字體系列和一些文本樣式。除文本樣式之外的所有內(nèi)容都將自動應(yīng)用于整個app范圍。每個小部件的文本樣式必須手動地一個一個設(shè)置,但這仍然很簡單:
          為了進(jìn)一步提高效率,F(xiàn)lutter可以熱重新加載應(yīng)用程序,因此您無需在每次更改UI時重新打開它。您現(xiàn)在可以進(jìn)行更改,保存,然后在大概一秒內(nèi)就能看到更改后的效果。

          4




          Flutter提供了許多開箱即用的強(qiáng)大功能,但有時你需要更多功能。考慮到Dart和Flutter的大量可用的庫,這根本不是問題。是否有興趣在你的應(yīng)用中投放廣告?有這方面的庫。想要新的小部件嗎?有這方面的庫。
          如果你更喜歡自己動手DIY,可以創(chuàng)建自己的庫并馬上就能與社區(qū)其他人分享。向項目添加庫很簡單,可以通過向pubspec.yaml文件添加一行代碼來完成。例如,如果要添加sqflite庫:
          將它添加到文件后,運(yùn)行flutter packages get,這樣就好了。各種各樣的庫使開發(fā)Flutter應(yīng)用程序變得輕而易舉,并為開發(fā)過程節(jié)省了大量時間。

          5


          后端開發(fā)

          現(xiàn)在大多數(shù)App都依賴于某種數(shù)據(jù),所有這些數(shù)據(jù)需要存儲在某個地方,以便以后可以顯示和使用。因此,在尋找使用新SDK(例如Flutter)創(chuàng)建應(yīng)用時,牢記這一點(diǎn)非常重要。
          再重復(fù)一次,F(xiàn)lutter App是使用Dart制作的,而Dart在后端開發(fā)方面非常出色。我在本文中談到了很多簡單易行的功能,Dart和Flutter的后端開發(fā)也不例外。不管是對于初學(xué)者還是專家,創(chuàng)建數(shù)據(jù)驅(qū)動的App都非常簡單,但這種簡單性并不等同于質(zhì)量底下。
          可以使用庫,以便你使用所選擇的數(shù)據(jù)庫。使用sqflite庫,我們可以非??焖俚貑硬⑦\(yùn)行SQLite數(shù)據(jù)庫。感謝單件模式,我們可以訪問數(shù)據(jù)庫并從幾乎任何地方都可以進(jìn)行查詢,而無需每次都重新創(chuàng)建一個對象。
          從數(shù)據(jù)庫中檢索數(shù)據(jù)后,可以使用一個模型將其轉(zhuǎn)換為對象?;蛘?,如果要將對象存儲在數(shù)據(jù)庫中,可以使用相同的模型將其轉(zhuǎn)換為JSON。
          如果沒有將其顯示給用戶的方法,這些數(shù)據(jù)就不是那么有用了。這就是Flutter帶著諸如FutureBuilder或StreamBuilder這樣的小部件登場的時候了。如果您對使用Flutter,SQLite和其他技術(shù)來創(chuàng)建數(shù)據(jù)驅(qū)動型App有興趣做更深一步的了解,我建議你查看我寫的這方面的文章:
          • 《在Flutter中使用Streams,BLoCs和SQLite》:Streams,BLoCs和SQLite在處理Flutter中的數(shù)據(jù)時是一個很好的組合(https://medium.com/@erigitic/using-streams-blocs-and-sqlite-in-flutter-2e59e1f7cdce)。


          6


          最后的一些思考

          有了Flutter,就有了幾乎無窮無盡的可能性,因此即使是體量巨大的App也可以輕松地被創(chuàng)建出來。如果你是做移動App開發(fā)的并且尚未嘗試過Flutter,我強(qiáng)烈建議你試一下,因為我相信你也會愛上它的。使用Flutter幾個月之后,我認(rèn)為可以說這是移動開發(fā)的未來。如果不能算未來的話,這也絕對是朝著正確方向邁出去的一步。


          近年來,隨著移動智能設(shè)備的快速普及,移動多端統(tǒng)一開發(fā)框架已成為一個熱門話題。閑魚是國內(nèi)最早接觸使用 Flutter的團(tuán)隊,經(jīng)過多次研討驗證并大規(guī)模上線,在App性能、穩(wěn)定性、開發(fā)效率上收益甚多。



          這本《Flutter技術(shù)解析與實(shí)戰(zhàn)》并非基礎(chǔ)知識的簡單羅列,而是從一線問題出發(fā),循序漸進(jìn),娓娓道來。它從通用業(yè)務(wù)工程化開始,進(jìn)而展開Flutter在閑魚整體云端一體化架構(gòu)的創(chuàng)新思考。


          —— 阿里巴巴資深技術(shù)專家 孫兵(酒丐)




          近年來,隨著移動智能設(shè)備的快速普及,移動多端統(tǒng)一開發(fā)框架已成為一個熱門話題。閑魚是國內(nèi)最早接觸使用 Flutter 的團(tuán)隊,經(jīng)過多次研討驗證并大規(guī)模上線,在App性能、穩(wěn)定性、開發(fā)效率上收益甚多。


          去年,閑魚發(fā)布了《Flutter in action》電子書,系統(tǒng)地總結(jié)了閑魚在Flutter開發(fā)實(shí)踐過程中的一手實(shí)踐知識和技術(shù)沉淀。



          現(xiàn)在《Flutter in action》全面升級,納入更多創(chuàng)新思考并重新整理全書邏輯——《Flutter 技術(shù)解析與實(shí)戰(zhàn)》正式發(fā)布!



          長按二維碼2秒關(guān)注:GitHub中文社區(qū)

          回復(fù)”Flutter技術(shù)“ 獲取最新PDF

          長按二維碼2秒關(guān)注


          這本書并非基礎(chǔ)知識的簡單羅列,而是從一線問題出發(fā),循序漸進(jìn),娓娓道來。


          它從通用業(yè)務(wù)工程化開始,進(jìn)而展開Flutter在閑魚整體云端一體化架構(gòu)的創(chuàng)新思考。




          • 第?1、2?章重點(diǎn)關(guān)注?混合工程搭建以及關(guān)鍵能力擴(kuò)展和優(yōu)化

          • 第?3、4?章探討關(guān)于?大規(guī)模工程實(shí)踐?中遇到的具體問題,如?應(yīng)用架構(gòu)設(shè)計、?性能統(tǒng)計和調(diào)優(yōu)等

          • 第?5?章將給出整體的?梳理和總結(jié),以期讀者可以有一個自頂向下展開的閱讀路徑


          Flutter開源工具大集合

          閑魚Flutter應(yīng)用框架Fish Redux、開發(fā)利器AspectD、FlutterBoost等一眾開發(fā)工具正式開源,現(xiàn)在《Flutter in action》一次幫你找全了。開源地址+技術(shù)解析,手把手教你Flutter應(yīng)用框架和混合開發(fā)原理!

          閑魚Flutter企業(yè)級應(yīng)用實(shí)踐

          隨著無線,IoT的發(fā)展,5G的到來,移動研發(fā)越發(fā)向多端化發(fā)展。傳統(tǒng)的基于Native+Web+服務(wù)端的開發(fā)方式,研發(fā)效率低下,顯然已經(jīng)無法適應(yīng)發(fā)展需要。

          而Flutter是Google開源的跨端便攜UI工具包,除了具有非常優(yōu)秀的跨端渲染一致性,還具備非常高效的研發(fā)體驗,豐富的開箱即用的UI組件,以及跟Native媲美的性能體驗。由于它的眾多優(yōu)勢,也使得Flutter成為了近些年來熱門的新技術(shù)。

          在這本書中將詳細(xì)講解閑魚Flutter&FaaS云端一體化架構(gòu),和閑魚基于Flutter的架構(gòu)演進(jìn)與創(chuàng)新,學(xué)習(xí)一套全面的Flutter架構(gòu)應(yīng)用方案。

          混合開發(fā)實(shí)踐指南

          你將在這里看到閑魚技術(shù)團(tuán)隊利用Flutter技術(shù)改造和上線復(fù)雜業(yè)務(wù)的混合工程改造實(shí)踐、抽取Flutter依賴到遠(yuǎn)程的實(shí)現(xiàn)細(xì)節(jié)、以及使用Plugin橋接獲取設(shè)備信息、使用基礎(chǔ)網(wǎng)絡(luò)庫等混合開發(fā)實(shí)踐指南。

          這些實(shí)踐遍布閑魚各大業(yè)務(wù)線和應(yīng)用場景,為你使用Flutter打造自己的研發(fā)體系探索一條實(shí)踐之路。

          Flutter的深入進(jìn)階教程

          在獲得開源工具與開發(fā)實(shí)踐指南后,你還將在本書中學(xué)到Flutter的更多應(yīng)用場景。

          它們包括了如何低成本實(shí)現(xiàn)Flutter富文本、設(shè)計一個高準(zhǔn)確率的Flutter埋點(diǎn)框架、Flutter外接紋理、可定制化的Flutter相冊組件等等深入進(jìn)階內(nèi)容。

          目前本書的電子版開放下載(30M左右 ,請開啟wifi環(huán)境),我已經(jīng)幫大家下載好了。

          長按二維碼2秒關(guān)注:GitHub中文社區(qū)

          回復(fù)”Flutter技術(shù)“ 獲取該P(yáng)DF

          長按二維碼2秒關(guān)注

          瀏覽 37
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美精品中文字幕在线观看 | 福利第一页| 日本黄色免费网战 | 91蝌蚪91 九色啦 | 欧美搜索二区 |