比較NativeScript、Ionic2性能和大小

  比較 NativeScript/Ionic2大小和性能


在這個信息化快速發展的行業中選擇最好的技術可能是一個很難抉擇的問題。

現在Android和iOS 智能手機的普及以及應用商店正在成爲一個經常出現新應用程序,導致近年來這些設備應用開發的需求上升。令人感興趣的事實是,許多應用程序正在開發Web開發技術,也就是在瀏覽器中運行和測試,就像它們是設備本身一樣!

我們瞭解混合移動應用程序開發框架,允許您使用基本網站語言(如HTML,CSS和JavaScript)來開發移動應用程序,然後我們清楚了相對應框架技術,它不僅允許您使用Web工具進行移動開發,而且還使用Android或iOS的原生API(用於UI和其他功能)

這是一個很好的趨勢,當移動端的需求增加時,不同技術間競爭也將出現。我們已經看到了幾個移動開發框架,由於以舊技術開發新技術所需的速度,讓我們瞭解了Ionic 2、NativeScript適合移動端的開發框架。

因此,在本文中,我將介紹這兩個框架之間的差異,它們的優缺點,以及您應該爲開發選擇哪些框架之間的差異。

Ionic 2 vs NativeScript - 移動開發需要選擇什麼?

這些平臺提供了相同的目的:通過網絡技術(即HTML,CSS,JavaScript等)來支持創建移動應用程序。但是,將它們相互分開的是他們提供的功能以及它們如何與特定平臺的API進行通信。

儘管如此,移動開發還有其他平臺,因爲近幾個月來,這些平臺受到了廣泛的普及和激烈的競爭。 


NativeScript


由Telerik開發的NativeScript允許您使用JavaScript或TypeScript進行開發,因此,如果您以前使用過AngularJS 2,那麼您將有一個簡單的過渡。Telerik 之前開發了Kendo UI,用於混合應用程序的緊密角度集成,但他們後來實現了,爲什麼不提供真正的跨平臺本機體驗?

使用TypeScript和AngularJS 2,您可以輕鬆地使用聲明式創建移動應用程序的組件。聲稱支持“寫入一次,無處不在”,相同的AngularJS 2代碼可以用於UI所針對的所有平臺。NativeScript是一個真正的跨平臺,意味着100%的Native API訪問,其任務是允許人們使用相同的代碼庫進行所有平臺。

與ReactNative不同,即使您使用TypeScript / JavaScript編寫代碼,NativeScript也使用本機UI代碼(適用於相應的Android和iOS手機)!如果我們考慮性能方面,那麼NativeScript真正具有ReactNative的優勢,因爲它使用AngularJS 2結構來創建組件。

對於NativeScript來說,最好的辦法就是由Telerik開發,它保證在將來會繼續接收新的更新,因爲它得到了世界各地的專業開發人員的支持。所以,如果您使用商業應用程序,您可以依靠NativeScript超過ReactNative,因爲ReactNative更爲開源友好,並且依賴於用戶的大量貢獻。但是,NativeScript也是開源的。

與ReactNative相比,NativeScript也相當成熟。它已經在2.0版本,而不是ReactNative的情況,更不頻繁地獲得新的更新。NativeScript可以分享比ReactNative更多的代碼,這意味着它可以節省您的時間。

您可以通過以下命令設置NativeScript:

$npm install -g nativescript

現在,您需要通過以下命令安裝要求(將其寫入CMD):

$ @ powershell -NoProfile -ExecutionPolicy Bypass -Command“iex((new-object net.webclient).DownloadString('https://www.nativescript.org/setup/win'))”

您可以通過運行以下命令來確認安裝:

$tns doctor

您可以單獨從TypeScript(或JavaScript)代碼訪問任何本地API!支持整個AngularJS 2 API,因此您可以在應用程序和Web應用程序之間共享代碼,也可以使用現有的組件。

NativeScript在與應用程序捆綁在一起的JS引擎(適用於Android的V8)中運行。這使得應用程序大小很大,但是您可以使跨平臺的應用程序由於本機組件而實際上非常高效。

所以,簡而言之:

優點:

真正的跨平臺支持。用於開發所有支持平臺的應用程序的單一代碼庫。

100%Native API訪問。您可以使用TypeScript / JavaScript代碼訪問諸如相機,觸摸,日曆,電話等硬件功能。

使用AngularJS 2,以便您可以輕鬆地將以前的Web組件傳輸到應用程序中。

來自Telerik的很好的支持。

缺點:

需要爲組件單獨下載許多插件。並非所有插件都可用或經過驗證(即經過徹底測試)。

應用程序的大小遠大於ReactNative和Ionic 2.如果您的用戶有較慢的互聯網連接,那麼這可能是一個問題。

在NativeScript中不支持HTML和DOM,因此您需要學習不同的UI組件來構建應用程序的UI。


Ionic 2

Ionic 2不僅僅是對以前的Ionic框架的重寫,而且還採用了AngularJS 2的設計/結構,同時也爲Android,材質設計和iOS設計語言提供了靈感。它是TypeScript準備好的,這意味着您也可以使用現有的AngularJS 2組件。

Ionic 2是一個混合的移動開發框架 ...可以,混合開發意味着什麼?混合應用程序就像您可以在應用商店中找到的任何其他應用程序,它們以相同的方式運行(通過下載和安裝它們),用戶交互是相似的,實際上大多數用戶幾乎不瞭解本機應用和混合應用。

混合應用程序的有趣之處在於,它們託管在使用WebView 的本機應用程序中- 這是一種無瀏覽器的網頁加載程序,因此您可以訪問移動功能,例如相機,聯繫人,陀螺儀等。通過網站語言,如HTML,XML,CSS等。

Ionic 2仍然使用WebView (就像之前的Ionic版本),所以你在Android的活動中編寫HTML代碼,所以與ReactNative 和NativeScript 相比,它可能會比較慢(我們稍後再討論一下)。您可以在Ionic 2中創建本地化的小部件,但是它們仍然在本地容器中的WebView 中呈現,因此在技術上不是原生的。

WebView提供了不同於瀏覽器網頁的小部件,因此所有Web錯誤都被忽略,因爲目的是爲應用程序文件提供HTML畫布,而不是實際的網頁功能,因此移動應用程序創建只是與網站開發的知識。

Apache Cordova 用於Ionic 2以訪問手機硬件功能。UI實際上不是本機的(即使可以給出本機UI的外觀),它作爲典型/正常的網頁加載在WebView上。如果您的手機具有較慢的處理器,則可能會導致性能問題或圖形問題。

以前的Ionic版本使用ngCordova 插件來訪問本機API。它只是將本機功能包裝到AngularJS庫中,因此您可以通過JavaScript訪問設備的本機功能,但新版本支持Ionic Native ,與ngCordova完全相同,但更加順暢。例如,它包裝在插件回調承諾或可觀察,所以共同的接口被提供用於所有的插件,支持易用性天然的功能性的。

您需要下載用於訪問本機功能的插件,例如,如果要使用Google地圖,則需要從此處下載Cordova插件(https://cordova.apache.org/plugins/)。如果你知道PWA(Progressive Web App),那麼Ionic 2就是一個很好的例子,因爲你通過使用現代的網絡技術獲得類似應用程序的體驗。

所以,我們來看看如何在Ionic 2中創建一個項目。你需要先安裝Cordova和Ionic CLI(假設你已經安裝了NPM):

$npm install -g ionic cordova

現在,您可以創建新的Ionic項目:

$ionic start sampleProject --v2

然後你可以服務它:

$ cd sampleProject

$ ionic serve

Ionic 2的問題是,與直接使用本機API相比,TypeScript組件可以使任務更慢。幸運的是,Ionic 2在其結構的幫助下克服了幾個性能問題,並定期更新,並且在大多數情況下,您不需要太多的性能。

Ionic 2非常適合需要儘可能快地交付的應用程序的原型設計和快速開發,或者如果有許多應用程序需求,但代碼庫的變化較少,您可以在短時間內創建多個應用程序出了相同的代碼庫。

所以,簡而言之:

優點:

混合網頁開發支持。相同的代碼可用於開發Android,iOS,Windows Phone和Web應用程序。

非常快速的開發測試周期。您編寫代碼並在瀏覽器上進行測試,無需重型模擬器加載。

允許您在TypeScript中編寫代碼,使得從AngularJS 2過渡非常簡單。

相同的語言(TypeScript)可用於爲每個平臺開發應用程序。

其插件系統使您可以使用任何類型的設備的本機功能。

缺點:

如果您需要對本地代碼使用大量回調,則可能會出現性能問題。

所有設備中的UI都可以爲那些喜歡本機UI外觀的用戶開放。

開發高度先進的圖形或高度互動的過渡可能是一項複雜的工作。

尾聲

    那麼問題來了NativeScript/Ionic2我該怎麼選擇?不過我的回答是:這些都不是需要考慮的,難道不是?

在現在的4G網速下,兩者開發應用大小和性能顯而易見,對於用戶體驗也不會產生的影響。而如果用戶還在用2G網絡,你要先想一下,他是你的目標用戶嗎?事實上很多應用的設計目標都不包括2G用戶。

所以,我們要先弄清楚自己的根本目標是什麼,否則必然事倍功半。

開發任何應用產品的目標都是爲目標用戶羣提供最佳的服務,超出目標用戶羣的需求則屬於nice to have(有更好,沒有也無所謂)。有了清晰的目標,研發投入纔不會浪費。

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章