相當多的小夥伴對我的印象都是——Qt,嘿嘿,這是因爲我憑一己之蠻力寫作並出版了兩本Qt方面的書《Qt on Android核心編程》和《Qt Quick核心編程》,在當時的Qt圈子裏砸出了一點小浪花。
很少有人知道,我還做過Android開發和iOS開發,是使用Qt這個跨平臺框架哦——Qt從2013年開始支持移動平臺了。
不過用Qt開發移動端APP,有兩個不大好的地方:1)安裝包體積太大,會比原生APP增加40M左右;2)界面風格與原生平臺適配較爲麻煩。
鑑於這兩個原因,強大的Qt在移動端的發展有些緩慢,後來我自己也沒怎麼用Qt開發移動端應用了,不過移動端跨平臺開發真的是非常方便,對小公司、小團隊來講也真的是非常經濟的選擇,所以我一直在關注各種跨平臺開發框架,比如Cordova、React Native、Weex、Flutter、Xamarin等,都有所瞭解。
最近在GitHub上浪的時候,忽然發現了一個新的框架——MLN,項目頁面上介紹說MLN是一個高性能、小巧、易上手的移動跨平臺開發框架。而且神奇的是,它居然是基於Lua語言的框架!
你知道嗎?我在2008年時用過Lua ,還在CSDN上寫了一系列的博客。
當時還採用Lua作爲腳本化的語言爲我們的WebOS系統設計了一個熱更新的插件框架。
所以當我看到MLN可以使用Lua開發時,興趣一下子被調動起來,趕緊瀏覽它的GitHub主頁,發現項目的README這麼介紹MLN:
MLN是一個移動跨平臺開發框架,讓開發者用一套代碼構建Android、iOS應用。MLN設計思路貼近原生開發,客戶端開發者的經驗,可以迅速遷移到MLN上,輕易構建出跨平臺移動應用。
- 易上手,MLN專爲客戶端開發者設計,iOS、Android程序員非常容易上手。使用MLN不需要學習Node.js、npm、vue、ES6這些對客戶端開發陌生的前端技術,也不強迫使用響應式框架。花幾個小時瞭解下lua語言和文檔就能輕鬆上手,客戶端開發者的整個技術棧在這裏都派得上用場。
- 增加包體積極小,1.2M。
- 真正的原生性能。跨平臺往往意味着性能受損,得益於lua虛擬機的高性能和MLN優化,我們極大減少了中間介質影響,即使在低端安卓手機加載頁面也極快。
- 支持熱更新。
簡單講,就是跨平臺、易上手、性能高、熱更新、增加包體積超小。
想想我之前用的Qt,安裝包體積增加幾十兆,想想RN性能優化時的各種槽點,我對MLN到底怎麼樣,起了強烈的好奇心。剛好我手上有一個媳婦淘汰下來的iPhone 6,還有一個之前移動充話費送的OPPO A3,都是過時的機子,正好可以用來測試MLN。於是我就找了兩個朋友,參照MLN項目主頁上給出的DEMO,用MLN、Weex(0.28.0)、Flutter(1.13.2)、React Native(0.61.5)各整了一個DEMO,分增加包體積大小、頁面加載速度、頁面刷新幀率(fps)、內存佔用四個方面進行了測試。
先說Android手機OPPO A3上的測試結果。
安裝包大小測試結果(增量):
頁面加載速度測試結果:
頁面刷新幀率(fps)測試結果:
內存佔用測試結果:
測試結果整理成表格如下:
由此可見,在安卓平臺上,相比Weex、Flutter、React Native,使用MLN開發的APP,安裝包體積增量最小,fps和頁面加載速度都更接近原生APP。
再來看iPhone 6 的測試結果。
安裝到手機後包大小測試結果(增量):
頁面加載速度測試結果:
頁面刷新幀率(fps)測試結果:
內存佔用測試結果:
測試結果整理成表格如下:
由此可見,在iOS平臺上,相比Weex、Flutter、React Native,使用MLN開發的APP,安裝到手機後包大小增量最小,頁面加載速度和內存佔用都更接近原生APP。
綜合兩個平臺,可以發現,採用MLN框架開發的APP,的確具有其項目首頁(https://github.com/momotech/MLN)上所說的易上手、性能高、增加包體積超小等特點。
除了顯著性能優勢,MLN上手門檻也不高,甚至可以說非常低——它從頁面佈局方式到開發模式,都貼近客戶端程序員開發習慣,通常一天就能上手。
說到這裏可能有小夥伴會有疑問,這麼好的移動跨平臺開發框架,適合在什麼場景下使用呢?
一個典型的場景是,MLN更適合嵌入到已有開發工程裏使用,進行混合式開發。這種模式下,它能實現熱更新並顯著提高開發效率。
第二個典型場景是,使用MLN獨立開發完整APP。這個也經過驗證,可以明顯節省人力並能達到原生一樣的高性能。
到這裏,又有小夥伴會問:有沒有App在用呢?
其實推出MLN的陌陌公司,其App就有多處是用MLN開發的,包括陌陌APP的首頁(陌陌第一幀)、直播幀(陌陌第二幀)、直播頁面在線榜單等,陌陌裏面的附近羣組、殭屍派對、聊天室等,也是用MLN開發的。
可能很多人對陌陌的印象還停留在陌生人社交軟件這個標籤上,而實際上,陌陌的產品最近幾年有很多變化,短視頻、直播、遊戲等,都有涉獵,而這些產品的發展,也打磨出一支實力雄厚的研發技術團隊。
MLN就是陌陌技術團隊的對外技術輸出,已經在陌陌的商業化場景下驗證過,是經得起考驗的框架,值得一試。
如果你對MLN感興趣,可以訪問 https://github.com/momotech/MLN 瞭解更多。