03.08 Flutter為何對程序員來說很重要?

lxl愛莉


flutter可能是個天坑,我不看好,更沒覺得flutter重要,跨平臺方案很多種,flutter只是其中一種。

為什麼我不看好flutter

flutter 哪裡是革命性,除了Google 推 dart語言,真沒覺得哪裡革命性了。而且我還是Google崇拜者,比如Google在AI,go語言,Android等等開放性成果上,我都很崇拜。所以不看好flutter上僅僅是就事論事,下面的flutter原理圖:

和遊戲的引擎有多大區別嗎?我通常說這個觀點的時候,都建議去把Android的硬件加速打開,app本身也可以自己控制,我之所以這麼說,是因為早期做Android系統開發優化時,做過這些優化嘗試,結果是渲染上會出現無法預料的坑,而且我早期用過的flutter demo幾乎是一樣的現象,動畫會拖尾黑屏。

有人說,這些可以解決呀,好的,我們假定能解決,那瀏覽器內核不能直接用硬件加速嗎,h5解析後就不能同樣直接顯卡渲染嗎?

所以我的觀點是:

1、要麼這個坑一直存在

2、要麼解決後,h5自然好用

所以如果跨平臺,我只看好h5,這也在公司架構上,重點推小程序和H5的原因。並且很多人強調體驗,把體驗和交互動畫畫等號。

我極其反對,體驗就一定是漂亮的交互動畫嗎,除了遊戲應該看重之外,更重要的是產品的易用性,功能性,服務的內涵


寫代碼的禪師



Flutter為何對程序員來說很重要?這裡不能說程序員,應該說做移動端的程序員,對他們是非常重要,這就要從Flutter的設計初衷和用途來說起了。


Flutter是Google的移動UI框架,可以快速在iOS和Android上構建高質量的原生用戶界面。 Flutter可以與現有的代碼一起工作。在全世界,Flutter正在被越來越多的開發者和組織使用,並且Flutter是完全免費、開源的。


但從跨平臺性來講,如果要選擇WebApp的開發的話,Flutter無疑是最好的選擇,同時,Flutter在不久的將來將持續的支持更多的語言和方向。


如果瞭解Flutter的特性你就知道他為什麼對程序員來說很重要了,在他的官網上是這樣介紹的:


快速開發

毫秒級的熱重載,修改後,您的應用界面會立即更新。使用豐富的、完全可定製的widget在幾分鐘內構建原生界面。

富有表現力和靈活的UI

快速發佈聚焦於原生體驗的功能。分層的架構允許您完全自定義,從而實現難以置信的快速渲染和富有表現力、靈活的設計。

原生性能

Flutter包含了許多核心的widget,如滾動、導航、圖標和字體等,這些都可以在iOS和Android上達到原生應用一樣的性能。

但從這三點我們就知道,他有著輕量級的工作區和代碼設計框架,並且更加的靈活和多變,而且在原生的支持上也是非常好的, 誰叫是Google自家的呢。



從這張圖就可以看到,當我們在寫完邏輯之後,可以直接刷新即可更新應用界面,大大的提高了我們的開發效率,並且界面簡潔,優雅。


再來看下Flutter所支持的UI吧,同樣豐富


作為一名移動開發者,流暢並且美觀的UI大大提高了用戶體驗,這是每個人都希望看到的,Flutter的支持十分的好,我們可以輕鬆實現各種炫酷的界面,這都是他的魅力。


看到這裡,你是如何看待Flutter的呢? 歡迎評論討論。


劉某人程序員


大部分小企業或者初創公司需要在選擇使用哪種移動端開發技術時都要做出關鍵選擇。他們不斷測試和評估技術,以形成快捷的開發效率以及強大的用戶體驗,無論客戶端的移動設備或操作系統如何。無論推廣渠道或設備如何,都有可能落後競爭對手。


更大挑戰在於跨平臺開發可能存在各種問題(坑)。在某些情況下,儘管開發人員盡了最大的努力,但用戶體驗卻落後於實際的原生應用程序。近幾年來,我們已經看到各種移動框架如React Native,Xamarin和Ionic的出現,這些框架能幫助程序員更容易高效地開發出最大化接近原生(Native)的體驗,以及良好的性能。而2018年12月初的 Flutter Live 2018 上我們看到一個新玩家進入遊戲 - 谷歌發佈的Flutter1.0 穩定版。



從本質上講,Flutter可能看起來像是各種Google技術和概念的大雜燴,但這會產生一個不可思議的強大移動端解決方案或框架。它基於谷歌的內部編程語言Dart,可以讓Flutter訪問Skia圖形庫 - 也是Chrome瀏覽器使用的。此外,Flutter與Google的Material Design規範無縫結合。


以下我列舉13個理由來說明為什麼選擇Flutter比較“重要”,甚至是開始您的Flutter職業生涯。

1. Flutter克服了跨平臺方案的傳統侷限

一個真正的跨平臺方案長期以來一直是個技術瓶頸,我們不得不開發同一產品的多個版本(ios/android/pc/web)等。但是,實際上,用戶體驗以及性能通常落後於本機原生的應用程序,因為我們通常最終會使用間接通過在JavaScript中構建並使用JIT(Just In Time)編譯的UI用戶體驗。

但使用Flutter,我們不僅可以獲得“一次編寫”方法的優勢,還可以創建高性能的“本機”體驗,因為Flutter App是一個提前編譯的機器二進制可執行文件。它克服了其他跨平臺解決方案帶來的一些常見挑戰。

2.開發人員將開發率提高n倍

開發率的提高之一來自Flutter的“熱重載”(AKA“有狀態熱重載”和“熱重啟”)。這些允許開發人員在不到一秒的時間內看到他們對應用程序狀態所做的更改。

無需再運行另一個Gradle構建 - 只要保存就可以實時看到修改。對於開發人員來說,這往往很容易掌握 - 使用“熱重載”時很少或根本沒有學習曲線,因為默認情況下每次保存都會觸發。但是,優勢至關重要。開發時間通常會減少30-40%,因為Gradle的重建時間會減慢Android開發人員的開發速度一般需要很長時間才能應用每個修改。

3.前端和後端只用一種語言、代碼

與Android編碼不同的是,後端(Java)引用前端(視圖)的單獨文件,而flutter使用單一語言(Dart)來完成工作。

Dart建立在其他語言的許多最流行的特性以及功能之上,而且不會失去Java或類似其他語言的熟悉程度

.Dart

是在開發人員的易用性的基礎上構建的,從而使得許多常見任務變得更加容易。

4.一個開箱即用的強大開發、設計體驗。

由於Flutter團隊精心實施了Material設計規範,因此可以輕鬆創建開箱即用的強大UI組件。它有助於產生通常只能在本機應用程序中看到的流暢,清晰的體驗,因為Flutter的發佈版本是本機應用程序。

Flutter有一些小組件可以實現iOS的界面設計規範,讓您在iPhone和iPad上也能獲得原生的“感覺”。

5.有大量的開源軟件包(輪子)

大量的開源軟件包可以幫助您更快,更輕鬆地開發APP,並且當前有許多軟件包可以使許多複雜的功能變得更加容易實現。儘管仍然相對年輕,但由於越來越多的開發人員積極地為Flutter做出貢獻,軟件包庫每天都在飛速發展。

6.與Firebase直接集成

Firebase為雲服務,雲功能,數據庫,託管,身份驗證等一系列服務提供天然的支持。我們開發的基礎架構可立即無服務器,冗餘和可擴展。這意味著我們不必花費大量時間和資源來構建服務端。將它與用於敏捷開發或自動化開發和發佈過程的工具(比如Fastlane)結合起來也很簡單; 促進項目可持續交付。因此,我們不必在團隊中擁有專門的DevOps支持。

7.Flutter支持各種IDE。

使用Flutter敲代碼時,我們可以從眾多集成開發環境(IDE)中進行選擇。起初我開始使用Android Studio,但後來我看到Flutter Live 發佈會直播使用的是VS Code。這讓我感到疑惑,我發現許多Flutter開發人員使用Visual Code。當我也更風使用VS Code時,我才體會到為什麼這麼多人更喜歡它。VS Code重量輕,速度更快,並且具有Android Studio和IntelliJ中提供的大多數功能。就個人而言,我已經轉移到VSCode陣營了🙂,但你也可以繼續使用其他一些IDE甚至vim,沒必要切換自己所熟悉的IDE才開始在Flutter中工作。

8.UI統一性,一切都是小部件(widgets)

一切都是一個小部件,Appbar,抽屜,Snackbar,List,Card等。我們很容易將一個Widget嵌入在另一個Widget中,以便通過將它包裝在Center Widget中來做一些事情。這也有助於確保您的用戶無論在哪個平臺上運行都能獲得體驗。

9.適用於Android / iOS的不同主題

為移動端分配不同的主題就像使用三元運算符(platform==IOS?IosStyle:androidStyle)一樣簡單檢查用戶正在運行的平臺; 允許我們APP的UI讓運行時決定使用哪些UI組件。

這是一個相同的示例代碼,它檢查當前平臺,如果它的iOS,它返回紫色主色的主題。

return new MaterialApp(

// 默認主題

theme: new ThemeData(), builder: (context, child) {

final defaultTheme = Theme.of(context);

if (defaultTheme.platform == TargetPlatform.iOS) {

return new Theme( data: defaultTheme.copyWith( primaryColor: Colors.purple ), child: child, );

}

return child;

});

10.使用Code Magic進行持續集成。

Code magic是2018年12月4日Flutter Live中的一個開源工具。

Code Magic很容易學習,完全免費!它是一種高度複雜的CI工具,專門針對Flutter進行了優化。Code magic使構建過程無縫。

11.使用2Dimensions Flare 可以更輕鬆地製作動畫。

我第一次嘗試使用Flutter + Flare - Bouncy

在Flutter live 2018期間也推出了這個牛X的在線工具,可以輕鬆創建非凡的UI或動畫。它填補了UI設計人員和開發人員之間的空白,減少了應用UI或動畫相關更改所需的時間。

我曾經使用過Flare,製作動畫soeasy; 很好入門!可以非常細粒度的定製動畫以及各種特效

12.PC端桌和WEB端

每個開發者都被Flutter團隊現在擁有在Web瀏覽器中運行的Flutter應用程序原型所震驚。之前的Top Secret項目“Hummingbird”在Flutter Live期間向全世界揭幕。現在就可以使用相同的代碼輕鬆地為移動端,PC桌面設備和WEB網頁端創建跨平臺的應用程序。


13.來自Flutter團隊和強大社區的支持

Flutter社區是一個很好的地方,即使你沒有的任何問題,你也可以通過傾聽其他開發者回答別人的問題來學到很多東西。任何一個健壯的技術或語言都離不開強大的開發社區以及生態。


每種開發語言或開發解決方案都有它的一席之地,也許Flutter就是你的“雷神之錘”!

歡迎入坑Flutter!!!

以上,望採納。


GeekEnter


基本架構就類似與unity 3D 看看後者的發展就知道未來會怎樣,有無限可能


遠78444659


Flutter是谷歌的移動UI框架,可以快速在iOS和Android上構建高質量的原生用戶界面。 Flutter可以與現有的代碼一起工作。在全世界,Flutter正在被越來越多的開發者和組織使用,並且Flutter是完全免費、開源的。

這麼省時省力節約人工成本的東西,肯定重要


程序猿dd


目前坑不少 簡單的app可以做 複雜的資料少 排坑是個事...但一定有市場 大前端可以學


分享到:


相關文章: