Flutter ,沒錯,新的移動端跨平臺解決方案

簡介

Flutter作為谷歌最近推出的跨平臺開發(fā)框架,一經(jīng)推出便吸引了不少注意。關(guān)于Flutter,目前我們知道它是一個跨平臺開發(fā)框架。但是它本身并不止于此,例如Fuchsia、Dart等,我們也都需要去了解。

怎么樣RN的小伙伴一下子就心里有點忌諱了吧.
本來目前跨平臺解決方案性能最好的就是react-native,
而且生態(tài)圈也發(fā)展的不錯,結(jié)果google又來了這個東西.
在這個行業(yè)就是不停的學習,不停的采坑,不停的... .... ...... ......
最近看頭條,說IT行業(yè)薪資如何如何,他們沒看到奮斗在一線的大牛和程序員學習能力是多么的強悍,不然一分錢都賺不到.

看到這里,如果你會java,那么恭喜你,你入門就比較快了.
如果你只會OC 哈哈 恭喜你,你會有些懵逼的.

Flutter

Flutter是Fuchsia的開發(fā)框架,是一套移動UI框架,可以快速在iOS、Android以及Fuchsia上構(gòu)建高質(zhì)量的原生用戶界面。 目前Flutter是完全免費、開源的,GitHub地址。其官方編程語言為Dart,也是一門全新的語言。所以說,上手成本比較高,對于移動端開發(fā)人員,語言以及框架都是全新的,整個技術(shù)棧的積累也都得從頭開始。

可以看下其官方介紹的特性:

  • 快速開發(fā):Flutter的熱重載可以快速地進行測試、構(gòu)建UI、添加功能并更快地修復錯誤。
  • 富有表現(xiàn)力,漂亮的用戶界面:自帶的Material Design和Cupertino(iOS風格)widget、豐富的motion API、平滑而自然的滑動效果。
  • 響應式框架:使用Flutter的現(xiàn)代、響應式框架,和一系列基礎(chǔ)widget,輕松構(gòu)建您的用戶界面。
  • 訪問本地功能和SDK:Flutter可以復用現(xiàn)有的Java、Swift或ObjC代碼,訪問iOS和Android上的原生系統(tǒng)功能和系統(tǒng)SDK。
  • 統(tǒng)一的應用開發(fā)體驗:Flutter擁有豐富的工具和庫,可以幫助開發(fā)者輕松地同時在iOS和Android系統(tǒng)中實現(xiàn)想法和創(chuàng)意。
  • 原生性能:Flutter包含了許多核心的widget,如滾動、導航、圖標和字體等,這些都可以在iOS和Android上達到原生應用一樣的性能。

其實從官方特性來看,唯一有點吸引力的就是統(tǒng)一的應用開發(fā)體驗。一套代碼運行在多個平臺,做到真正的跨平臺。像熱加載,目前Android開發(fā)本身就支持了,響應式框架以及訪問本地功能和SDK,對于Native來說,本身并沒有多大的吸引。至于漂亮的用戶界面,國內(nèi)的商業(yè)項目,哪一個會去按照Material Design去設計。

跨平臺本身,往往意味著性能受損,通用性解決不了的問題,又得回到Native去實現(xiàn)。所以這些因素也是跨平臺從移動端誕生之初就開始提,到現(xiàn)在也沒有被很好解決的一個原因。至于谷歌能夠做到什么程度,或者說開發(fā)者該保持什么期許,我覺得都不好說,或許谷歌解決了一個多年的難題,或者又像被谷歌放棄掉的其他項目一樣。拋開商業(yè)層面,對于技術(shù)人員,我們更多的是應該去關(guān)注它的思想,谷歌是如何去解決這些實際存在很久的問題的,至于技術(shù)本身的發(fā)展,這個是個人開發(fā)者無法去左右的,技術(shù)的更迭,保持一種學習的狀態(tài),然后努力鍛煉身體,就能夠保證不被淘汰掉。

Flutter架構(gòu)

Flutter是一款移動應用程序SDK,一份代碼可以同時生成iOS和Android兩個高性能、高保真的應用程序。

跨平臺解決方案

市面上的跨平臺解決方案,可以大致歸結(jié)為兩類:

  • 使用平臺支持的web技術(shù):這些解決方案基本上加載了應用程序中的移動瀏覽器,并在該瀏覽器中執(zhí)行所有的邏輯,例如PhoneGap。
  • 本地跨平臺:程序員編寫的代碼自動轉(zhuǎn)換為Native代碼,這種方式的優(yōu)點是近乎原生的性能,例如RN、Weex、Xamarin等。

這些方案是否真正的解決了跨平臺問題呢?從目前的狀況來看,很顯然是沒有的,因為它們都始終逃不開性能、包大小、流暢性、內(nèi)存、平臺特性等問題。

RN單獨擰出來說,是因為它們并不是追求的一次寫到處跑,F(xiàn)B自己也知道不現(xiàn)實,所以把口號改成一次學到處寫,去考慮平臺的特性,去考慮這個被跨平臺方案經(jīng)常忽略的問題。但是RN也并沒有被廣泛的接納,從阿里開始使用到放棄,里面的很多坑都繞不過去。寫一次到處跑確實很誘人,從企業(yè)角度講,可以節(jié)省大量的人力,但是卻忽略了一個很基礎(chǔ)的問題,不同平臺是否希望如此,蘋果是否會愿意自己的生態(tài)被打破,不同平臺的特性是否應該被歸為一致。

Flutter的跨平臺解決方案

上面簡單說了傳統(tǒng)跨平臺解決方案,我們再回過頭看看Flutter的解決方案,F(xiàn)lutter跨平臺最核心的部分,是它的高性能渲染引擎(Flutter Engine)。Flutter不使用瀏覽器技術(shù),也不使用Native的原生控件,它使用自己的渲染引擎來繪制widget。

說到widget,就要說一句Flutter的一切皆為widget理念。widget是Flutter應用程序用戶界面的基本構(gòu)建塊。每個widget都是用戶界面一部分的不可變聲明。與其他將視圖、控制器、布局和其他屬性分離的框架不同,F(xiàn)lutter具有一致的統(tǒng)一對象模型:widget。在更新widget的時候,框架能夠更加的高效。

對于Android平臺,F(xiàn)lutter引擎的C/C++代碼是由NDK編譯,在iOS平臺,則是由LLVM編譯,兩個平臺的Dart代碼都是AOT編譯為本地代碼,F(xiàn)lutter應用程序使用本機指令集運行。

Flutter正是是通過使用相同的渲染器、框架和一組widget,來同時構(gòu)建iOS和Android應用,而無需維護兩套獨立的代碼庫。

Flutter將UI組件和渲染器從平臺移動到應用程序中,這使得它們可以自定義和可擴展。Flutter唯一要求系統(tǒng)提供的是canvas,以便定制的UI組件可以出現(xiàn)在設備的屏幕上。

Flutter框架

Flutter框架是一個分層的結(jié)構(gòu),每個層都建立在前一層之上。

框架沒什么可介紹的(主要是詳細介紹我也沒找到啥資料,大寫的尷尬),看著很簡單,就分為兩個部分,F(xiàn)ramework和Engine部分,其中Framework提供了各種基礎(chǔ)的組件庫,Engine部分渲染各種widget,兩者共同作用,使得運行性能高效穩(wěn)定。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,106評論 6 542
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,441評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,211評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,736評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,475評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,834評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,829評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,009評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,559評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,306評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,516評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,038評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,728評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,132評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,443評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,249評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,484評論 2 379

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,728評論 25 708
  • 本文主要介紹Flutter相關(guān)的東西,包括Fuchsia、Dart、Flutter特性、安裝以及整體架構(gòu)等內(nèi)容。 ...
    Q吹個大氣球Q閱讀 7,927評論 8 49
  • 昨晚在微信群里“生命蛻變營”組織了2016年的最后一場會議,記得尾聲時營長再次強調(diào)了那句話“這本身就是一場游戲,當...
    銥漩娜閱讀 316評論 3 2
  • 古人寫雪,因其似白玉而無暇,柔軟姿態(tài),作“不知庭霰今朝落,疑是林花昨夜開”;或因其如寒冰而徹骨,肅殺之勢,作“寒風...
    黯息笙動閱讀 217評論 0 0
  • 在互聯(lián)網(wǎng)行業(yè)里,所有人的眼睛都盯著未來,昨天一旦過去,就沒有什么意義了。 任何打破對于人、產(chǎn)品和信息的時空限制的新...
    anson_wu閱讀 382評論 0 0