首頁>Club>
9
回覆列表
  • 1 # Android開發者

    首先,我想回答的是當前有哪些移動客戶端技術開發方案:

    原生(Navive)H5 套殼(Web)Hybrid (混合)React Native(跨平臺,js 對映為原生)Flutter (跨平臺媲美原生級別開發)Weex(阿里出品,基於vue 寫法,jsbridge 的 KPI 專案,誰用誰知道)

    那麼為什麼需要跨平臺開發:

    現在移動網際網路行業都流行跨平臺開發 App,這是開發趨勢,企業需要降低成本,日益增長的移動領域帶來的技術更新換代。桌面時代給了我們很大的啟發,桌面很多應用都搬到了瀏覽器,原生應用少之又少,但是如果你現在看看,就算有桌面客戶端,這些客戶端也是利用了跨平臺技術方案寫的,比如 微信,釘釘等這些後起之秀。

    那麼,我來說說 Flutter ,Flutter 是谷歌開發的用於跨平臺開發應用的技術,15年左右就出了,現在也支援開發 Web 了,真正實現了三個平臺一套程式碼三端部署的能力,只需對特定的平臺做稍微的適配就行,最重要的是效能能媲美原生級別的能力,渲染引擎用的是和安卓系統一樣的,關鍵是谷歌這個大佬做背書,這點放心。

  • 2 # AI智慧

    谷歌官方正式宣佈 Flutter 全面支援多平臺,包括移動平臺 Android/iOS、Web( 新發布 )、桌面 PC 平臺(內測中)、嵌入式平臺(內測中)。

    Flutter 具有高擴充套件性和高效能。可以預見,這門顛覆性程式設計技術將成為未來主流。一套程式碼邏輯規範實現全平臺開發!不過 Flutter 起步於移動端、目前重心也在移動平臺,其他平臺 Google Flutter 團隊正在逐步拓展完善。所以學習 Flutter 我們也先從移動端的開發學起。

    跨平臺是趨勢

    現在技術更新非常快,可能幾年內就會有一個新的技術出現。移動端、前端、後端開發領域的邊界逐漸模糊,要求一個開發者掌掌握多端開發的場景也越來越多,所以跨平臺開發技術層出不窮。

    為什麼會這樣呢?我們可以來分析一下。

    首先,節約成本的優先選擇(用人單位的需求)。

    網際網路行業撿錢的時代已經過去了,現在的公司紛紛選擇精簡人員配置,尤其對於規模不大的公司來說,開發一個產品要投放各平臺,至少需要一個 Web 端開發,一個 Android 開發,一個 iOS 開發,人力成本相當高。因此,在跨平臺實現效果與原生開發效果的差別愈發縮小的時候,很多公司更傾向於採用跨平臺開發。

    反之,對於開發者個人,去提前瞭解甚至掌握基本的跨平臺開發技術,不但能補足自己的技術棧,還能在趨勢早期創造明顯的就業優勢。

    其次,裝置的發展造成了需求(使用者的需求)。

    我們都有體會,以前計算機語言和技術出現和迭代的頻率並沒有這麼高。我認為,其中一個重要因素是硬體裝置的製造門檻越來越低,計算機運算速度越來越快。

    現在,計算機運算速度提高到了恐怖的程度,它縮小甚至抹平了很多技術的差距,導致不同技術呈現效果幾乎相同。裝置形態也五花八門多種多樣,人們使用著不同尺寸和特點的裝置,自然希望自己慣用的某一款產品,在這些裝置上都能流暢地開啟和使用。難道每增加一個新裝置,就要配備一個專門的開發工程師嗎?

    還有,技術的發展提供了可能性(開發者的需求)。

    原有的技術為了迎合使用者的需求,正在不斷地更新迭代,與此同時,大量新的技術和語言也在孕育和產生。它們的目標都是更便捷、更高效的開發。

    面對產品提出的各種需求,為了提高開發效率,開發者們是傾向於使用包容性強、適配性好的語言和技術。

    整個分析下來,可以看到,跨平臺正是大勢所趨。

    而 Flutter 的出現讓跨平臺移動端的接近原生的高效能體驗成為可能,並不斷在擴充套件 Web 端、PC 端等平臺。

    Flutter 是趨勢

    Flutter: a Portable UI Framework for Mobile, Web, Embedded, and Desktop.

    (Flutter,一個支援手機、網頁、可嵌入裝置、和桌面的可移植 UI 框架。)

    Flutter 是 Google 力推的跨平臺框架,將是未來的 Google Fuchsia OS 下開發應用的主要技術框架。

    谷歌對 Flutter 的投入非常大,SDK 的更新頻率也很高。2019 年 5 月 8 號,谷歌剛剛釋出了 Flutter 1.5 穩定版。

    Flutter 的開發將不僅僅侷限於移動跨平臺,目前已經支援 Web 開發、後端開發、PC 桌面應用開發(內測中)、嵌入式開發(內測中)。

    Google 的訊息推出後,阮一峰老師也第一時間表達了他對 Flutter 的看好:

    “我的看法是,如果現在學習跨平臺應用開發,第一個要看的不是 React Native,而是 Flutter。”

    其實,撇開個人開發者,許多大公司早就率先嚐試了 Flutter。國內的阿里巴巴、騰訊、愛奇藝等大公司已經把 Flutter 應用在實際開發中,例如閒魚團隊已經把 Flutter 技術應用在閒魚應用上。

    那 Flutter 開發體驗如何?

    Flutter 入門容易

    Flutter 基於 Dart 語言編寫,有 React 語言風格,又結合 JavaScript、Java 優點,有面向物件開發語言基礎的同學,很容易就上手了。

    Flutter 真正跨平臺

    除了原生外,目前跨平臺技術一般是混合開發,如採用 H5、React Native、Weex、小程式等技術。不過這些或多或少都能感覺到卡頓和體驗不流暢,並且開發和學習成本非常高,而且都有各自的侷限性。

    Flutter 既能用原生程式碼直接呼叫的方式來加速圖形渲染和 UI 繪製,又能同時執行在兩大主流移動作業系統上。看下幾種方案的對比情況:

    從上面的對比可以看出,Flutter 的優勢明顯:高體驗度、高開發效率、低學習成本、高可擴充套件性,未來 Google Flutter 團隊還將使 Flutter 支援 PC 和 Web 的跨平臺開發,真正全平臺。

    Flutter 使用者體驗媲美原生

    可以說 Flutter 是一個革命性、創新性的技術框架,它實現了一套語言實現 Android 和 iOS 終端平臺的高效開發,並且非 Web 跨平臺模式,而是採用全新渲染引擎 Skia。它實現的應用體驗和原生基本一致,流暢度遠遠高於目前的小程式、React 等技術方案,官方公佈可以達到 60 FPS,甚至要高於原生的流暢度體驗。

    Flutter 開發過程輕鬆

    太多開發者的切身實踐證明,Flutter 的開發體驗也相當不錯!

    I wrote nicer, more maintainable code that runs on both iOS and Android. It also took considerably less time and fewer lines of code to do so.

    (我編寫了更漂亮、更易於維護的程式碼,可以同時執行在 iOS 和 Android 上。它只花費了我相當少的時間和比原生開發更少的程式碼行。)

    ——Why Flutter Will Change Mobile Development for the Best

    基於原生開發的 SDK,能輕鬆寫出同時執行在 Android/iOS 的程式碼。

    Flutter 成為未來主流跨平臺開發框架技術已經勢在必行,它開發高效、效能優秀、更新頻率快、外掛三方庫支援多、Google 團隊的技術支援給力、一套程式碼多終端執行,這些都非常的吸引人。

    最後總結下,Flutter 全面網羅 Web、Android、iOS、Windows、linux、桌面、瀏覽器甚至物聯網裝置,未來趨勢是屬於 Flutter 的!

  • 3 # 無知37

    畫介面挺方便的。只要原生功能封裝齊全,確實挺方便的,比如語音sdk,視屏sdk等,但是它也只是用來畫介面,介面以外的依賴原生

  • 4 # 小鄧說IT

    很遺憾不會,2020年Flutter將不會有重大更新

    主要是小版本更新和修復bug

    國外公司也對Flutter不是很看好,願意嘗試得公司不多。

    原因主要是

    1.除了ui跨平臺並沒有解決實質問題,往往很多業務還是要寫兩套

    2.Dart語言回撥,寫法等,造成程式碼碎片化,可讀性差

    3.增加開發成本,學習成本,如果框架本身得問題,解決框架的成本都很高

    國內公司研發忽悠公司,公司忽悠投資人,最後落地,實際選擇的的公司並不多,特別是大公司,重構的風險還是很大的

  • 5 # 工號1024

    fluter作為一個跨平臺開發的框架,談他時不能拋棄它出現的背景~

    從移動端的開發史聊起,07-08年Google和Apple分別推出自家的移動端作業系統(今天二分天下的安卓和iOS),到目前為止,這兩大移動端作業系統已經歷了十多年的發展(期間也出現過其它一些移動端作業系統,基本上是來得快也去得快)。

    這些年圍繞兩大生態系統的開發生態也蒸蒸日上。

    但是程式設計師們當然希望省事些省事些,君不見2018年在github上大喊“臣妾真心學不懂了”的兄弟了?!……

    一套程式碼執行在所有平臺上,這些年除了廠家推出的原生開發框架以外,技術社群也出現瞭如RN、Weex、Xamrin之類的能夠跨平臺的開發框架。

    此外,一定說跨平臺,H5也算一種非常成熟的方案,不管移動裝置還是PC,有瀏覽器就可以執行起H5的應用,由於瀏覽器自身沉重的歷史包袱,這些年的最佳化基本跟不上開發者的訴求,加上通常平臺對H5應用存在諸多限制。

    也就促使技術人員尋找更好的跨平臺開發方案的腳步從未停止過。

    2018年1月份,Google推出了一個全新的跨平臺應用開發框架——就是今天所有聊的flutter,目前flutter已經迭代到了最新的1.2版本(2020年10月24日)。

    首先,flutter的這套框架是做的非常徹底,他從底層的渲染引擎開始從頭構建了一套UI繪製體系,摒棄了過去(類似)安卓/iOS平臺系統提供的原生態二框架。

    其次,flutter有幾個突出特點,讓血統優良的它從其它3個跨平臺開發框架中可以鶴立雞群出來:

    1、flutter這套框架完全採用了宣告式的程式設計正規化。

    宣告式和命令式兩種的最大不同在於,我們在宣告式的程式設計正規化下需要做的更多的是描述我們的需求。可以說,使用宣告式的程式設計正規化能夠大大降低開發者的負擔,讓我們有更多的時間和精力去關注邏輯和業務。(其實,我們之前有接觸過的HTML和安卓中的XML也都是符合宣告式的UI程式設計正規化的。)

    2、flutter的另外一個突出特點就是,他使用dart作為開發語言。

    dart這門有趣的語言似乎就是為flutter量身定製的一樣,dart能夠同時支援JIT和AOT兩種執行模式,這使得我們的flutter應用在開發階段能夠實現hot reload任何的開發修改,都能樣本級的呈現出來,我們也就在不需要像以前那樣修改個字號或者顏色就需要經歷幾十秒甚至幾分鐘的編譯等待之後才能看到最終的效果。

    同時dart能夠支援記憶體的快速分配和銷燬,這個特性好像就是為flutter特地準備的,要知道在一個flutter介面中通常存在著成千上萬個widget物件,這些widget物件在頁面重新整理的時候很可能要頻繁的去建立和銷燬,dart剛好能夠很好的滿足這樣的場景,確保flutter的應用能夠暢通執行。此外,像是函式能夠作為物件傳遞、空安全、級連運算子和擴充套件函式,這些特性也都是我個人比較喜歡使用dart的一些原因。

    3、flutter的另外一個明顯特點就是,在flutter中“萬物皆widget”。

    在flutter中會看到,像是padding、margin、align等對齊方式都變成了一個個的widget,雖然有些bt,但相對而言能給我們開發者帶來最大程度的靈活性,同時為未來的擴充套件留下無限的想象空間。

    最後flutter來自谷歌,而谷歌一直在潛藏自己的fuchsia作業系統(傳說會替代android),Fuchsia 的圖形渲染器是基於 Vulkan 驅動介面的高效能圖形渲染器 Escher,效能比 OpenGL 更加牛,特別是對實時3D渲染提供了強大的支援。谷歌的野心是未來可以一統所有智慧裝置,而想象一下,跑在這個系統上的大機率就是“一套程式碼多端使用”的flutter應用了。

  • 中秋節和大豐收的關聯?
  • 何為“增強現實”?