這是一個GUI的排版顯示引擎和跨平臺的GUI應用程序開發框架,基於NodeJS/OpenGL,這也是第一個在移動端Android/iOS融合NodeJS的前端GUI項目,至此JavaScript成爲了真正意義上先後端通吃的語言。css
Ngui的目標:在此基礎上開發GUI應用程序可擁有開發WEB應用般簡單與速度同時兼顧Native應用程序的性能與體驗。html
開源跨平臺移動項目Ngui【簡介】
開源跨平臺移動項目Ngui【入門】
開源跨平臺移動項目Ngui【視圖與佈局系統】
開源跨平臺移動項目Ngui【Action動做系統】
開源跨平臺移動項目Ngui【CSS樣式表規則及用法】
Ngui API 文檔
這有點相似Reac-Native
可能大家會問爲何你要寫一個與React-Native
同樣的東西,雖然表面上看見確實有類似之處,都使用jsx
語法,都是跨平臺的,都能實現熱更新,也都不是基於瀏覽器webview。
但不一樣之處是Ngui
不依賴操做系統的GUI組件,徹底調用標準OpenGLAPI進行繪圖渲染,而且給它編寫了一套佈局引擎,這有點相似瀏覽器的div+css
。幾年前在開始構思這個框架時效率就一直作重中之重來考慮,雖然如今有不少地方不足,還達不到理想目標,但我相信在不久的未來必定能夠。基於這幾個特色作爲一個GUI系統Ngui
能快速的移植到任何操做系統,對操做系統作特例化處理的地方會不多,更重要的一點是基於此開發的應用代碼可以作到真正意義上的跨平臺。前端
固然在這裏並非抨擊RN
的不足,相反RN
第一次用一種語言統一各端平臺,這是很是了不得的,這也是我靈感的源泉。node
若是你歷來沒有使用過ngui
你能夠從這裏開始,一步步建立你的第一個ngui
程序。python
先讓給大家看一個簡單的Hello World
程序react
import { GUIApplication, Text } from 'ngui' new GUIApplication().start( <Text>hello world!</Text> )
作過react
開發的朋友必定會很是熟悉這種代碼,對就是facebook
發明的那個JavascriptXML
簡稱jsx
,這段代碼能在你的設備屏幕上顯示hello world!
linux
首先你須要安裝ngui
提供的工具包,工具包是使用nodejs編寫而且運行時依賴python2.7
,因此必需先安裝nodejs
與python
,若是已經安裝過那就能夠跳過了android
還有一個地方須要注意,這個工具暫時只能在mac
系統下運行,由於我只在mac
下作過測試,理論上也應該能夠在linux
下運行,你們能夠可自行試試,可是我並不敢保證它運行不會出錯,但有一點能夠肯定如今必定是不能在windows
下運行的。最好是在mac
下運行由於若是你要開發ios
必定是須要mac
的。ios
得到到這個工具包git
nodejs
自帶的軟件包管理器npm
來安裝它,打開Terminal
並執行如下命令:
# shell $ sudo npm install -g ngui-tools
上一步你應該已經安裝了工具包如今用它來建立你的第一個項目吧!
使用下面的shell
命令建立一個新的ngui
工程:
# shell # 建立一個工程根目錄 $ mkdir myproject # 進入到工程根目錄 $ cd myproject # 使用ngui命令初始化工程目錄 $ ngui init
如今myproject
工程根目錄結構應該以下:
myproject
examples
是一個實例程序也就是在goole play
與app store
上發佈的那個實例程序,你可對照這個目錄結構建立本身的應用程序目錄,當前也能夠刪除它但需時同時刪除app.keys
下對應的鍵值。node_modules
目錄是運行ngui
程序所必要的庫文件,庫所提供的API
能夠查閱這裏http://nodegui.org/doc/
會有比較詳細的說明app.keys
中描述的每個key
對應的目錄都是一個app
應用程序 。.keys
是ngui
提供的一種數據格式文件,相似json
格式可定義數組與對像,我會在之後的文章中對這種數據格式作詳細說明,這裏先略過如今只要知道它是一種類json
格式就好了。你如今所看到的目錄結構就是ngui
的標準項目結構,無論ngui
之後支持多少種操做系統與平臺,這個項目結構不會變。
構建項目是專業術語,其實就是把你的應用程序進行編譯打包,在這裏會把你剛剛建立的ngui
項目根目錄下的js
與jsx
文件以及資源文件進行壓縮打包。
在項目根目錄下執行下面的shell命令進行構建:
# shell $ ngui build
執行完命令後你應該能夠在項目根目錄下看到多出了一個out
目錄,對這就是你剛剛執行命令自動生成的文件,這個目錄的詳細說明留到之後的章節中,今天在這裏這不是重點。
導出Xcode
orAndroid Studio
工程,有人會問爲何還要導出第三方工程不是跨平臺嗎?我指的跨平臺是在運行與編碼上是跨平臺並,而且你最終輸出的是一個.apk
包或蘋果公司的.dmg
或.ipa
因此這種基本的導出工做仍是要作的,抱歉現階段我還沒法爲你們提供IDE,只能是穩妥的把核心作好。那麼既然要導出三方工程,那麼你就去百度下安裝它們吧,這並不困難而且這些都是免費的。
在項目根目錄下執行下面的命令:
# shell # 導出 ios Xcode 項目 $ ngui export ios # 導出 android stodio 項目 $ ngui export android
執行完命令後會在項目根目錄下生成project/ios
與project/android
分別對應Xcode
工程與Android Stodio
工程。
有人想了解Xcode
與Android Stodio
是怎麼建立項目的請看這裏:
導出工程後那麼你就能夠打開它們進行編譯與調試了,若是你安裝過Xcode
導出命令執行後會自動打開Xcode
這是我mac
機上項目目錄的樣子:
這是打開Xcode
的樣子:
這是打開Android Studio
的樣子:
Ngui Tools
提供了一個遠程測試http服務器,你不須要每次修改完js
或jsx
代碼都進行從新安裝。把你的應用啓動地址設置成調試服務器地址,在導出項目時工具會自動把啓動地址設置這個調式地址,所大部分狀況下你不須要修改,除非你想鏈接到其它地方。
執行下面的代碼能夠啓動它:
# shell $ ngui
這個工具如今還不是很完善只能作簡單的日誌顯示,並不能從終端主動干預你應用的運行狀態,這是我在將來的版本中須要解決的問題。
Android
實例程序apk
包下載地址examples-release.apk
Google Play
或App Store
中搜索AvocadoJS
,AvocadoJS
是項目以前的名稱,因爲後來項目更名還沒來得急上傳商店中。Github
源碼地址Examples Demo
謝謝你們,未完待續~