2016-11-23 38 views
2

有沒有人有NativeScript的經驗,並可以將其與開發原生應用程序,特別是Android的比較?您對NativeScript的體驗如何?

我已閱讀所有這些文章:

我知道,尤其是他們三個人可能過時。但我想問你們所有的開發人員:

  1. 你對NativeScript的使用經驗如何?
  2. 是否有任何Android組件不能使用?這些是哪一個?
  3. 造型真的如此有限嗎?
  4. 應用程序真的看起來在運行時與在上面引用的第一篇文章的圖片中的模型看起來如此不同嗎?
  5. 將原生Android對象加載到JavaScript代碼中是否始終正常工作?
  6. NativeScript是否爲我編寫的NativeScript代碼生成Android平臺的Java代碼?
  7. 如果我想使用一些純本地功能,是否可以修改此代碼?如果我想要改變用戶界面呢?我是否必須重新生成代碼,然後是否錯過我的本機擴展?

回答

2

我調查了一下本機腳本,我的同事在工作時用它寫了一個應用程序,所以我可以爲您提供一些我的信息。 1.跳過

  1. 您可以使用本機腳本開箱即用的組件數量有限。然而,如果你有一個native-java開發者可以爲你編寫一個包裝器,你可以使用所有東西。
  2. 它僅限於您使用的平臺。 Android本身有很多風格限制,不容易被淹沒。
  3. 不知道
  4. 它有點不同。你的JS對象,或者小部件被轉換爲java代碼。所以從箱子裏的物品 - 是的,他們是okey。如果您爲自定義組件編寫包裝,則所有都由您決定。
  5. 是的。
  6. 不,代碼生成後,你將如何修改它?下一次構建中的更改將被撤消。但是,您可以爲您的應用程序編寫本地模塊,並使用您需要的任何功能。這就像定義一個接口,之後你可以在JS代碼中使用。
7

很高興看到您正在評估NativeScript以最終在目前和未來的項目中使用它。 我會盡量將幾個問題的答案壓縮成一個,因爲它們確實是相關的。

  1. 跳過。*
  2. 這取決於通過自定義視圖/插件或模塊已經暴露的內容。每個NativeScript應用程序附帶的核心模塊都包含在通用API下的Android和iOS最基本的包裝。有一些插件(nativescript npm模塊)可以在原生android視圖中提供額外的包裝(nativescript-telerik-ui一個,nativescript-carousel),其中大部分是由NS社區創建的。
  3. 正如RexSplode在我之前提到的那樣 - 主要是這個平臺強加了一定的限制。 NS使用CSS來聲明樣式,但是如果您需要的內容不易隨時可用,您還可以訪問本地組件,並以編程方式管理它們的樣式和外觀。
  4. 首先,我想說明你已經鏈接的前3篇文章已經超過一年了,相信我,NativeScript從那時起就發展了很多。有了所有可用的組件(請記住我前面提到的npm模塊?),很可能您將獲得與良好風格的原生Android模型接近1:1的相似度。
  5. 在構建時爲項目中使用的Android/Java公共API生成元數據。當JavaScript引擎(V8)啓動時,將元數據加載到內存中,構建原型鏈並附加回調函數,以便在JavaScript代碼中調用new android.widget.Button();時,將調用正確的虛擬機指令,按鈕將被創建。同樣可以訪問靜態方法,查看官方文檔以更好地瞭解它是如何工作的。 https://docs.nativescript.org/runtimes/android/advanced-topics/execution-flow
  6. 和7.以及續。 2.如果您希望擴展已經在模塊中或本地框架中不可用的本機Android類,則會生成Java代碼或編譯的Java代碼。擴展類與Java中的擴展類非常相似 - 擴展一個類,並創建接口的實現。這意味着您不必打開Android Studio創建新類,將其構建到本地插件中,然後將其添加到項目中,因爲您可以使用JavaScript/TypeScript在NativeScript代碼中完成所有操作。 https://docs.nativescript.org/runtimes/android/generator/extend-class-interface

免責聲明:我對NativeScript工程隊