2017-07-15 72 views
13

我要開始做出反應的本機應用的發展和需要幫助,我應該去哪個路徑決定。陣營VS本土反應創建本地應用

的主要問題是:我應該去與反應天然或反應過來創建本機應用程序?

據我瞭解,CRNA還真是反應原生利用世博會的客戶端和工具,提供更舒適的使用(無須開發賬號等)

我能看到的優點,使用CRNA在反應母語(不需要設置依賴關係,從開始開發的更快時間,不需要iPhone dev帳戶或xcode + android組合等等)

但是,由於並非所有的本地庫都包含在內,無論如何需要在以後導出我的應用程序,並繼續像以前一樣使用xcode和android studio。

所以,如果CRNA僅僅是一個很好的方式,開始使用一切,那麼我會,因爲我在一個臨時的解決方案看不出有任何點都去香草反應原生的時候了。

另外,也許你可以糾正我在這,我不喜歡這個主意,剛纔我的應用程序的頂部的另一個包裝,除非有我錯過了一些更關鍵的優勢。

所以,請你分享你的看法?如果您過去開發的應用程序具有原生的應用程序,那麼您將走哪條路,以及將來要走哪條路?迴應本地,CRNA或反應原生和世博環境?

在此先感謝。

回答

9

您好我也會分享一些我的話題經驗。

由於我有前端背景,並且不熟悉XCode或Android Studio,我決定從CRNA開始我的本機應用程序開發。

事實上,只需一個文本編輯器,純粹使用JavaScript並利用內置的expo SDK組件,我很快就能夠實現併發布到Play Store a fairly simple app。 ,我覺得真正了不起的:)

但是發佈的應用程序後,我意識到有一些缺陷是無法使其與同類競爭對手的Java應用程序競爭:

IMO跌幅最大的是APK與exp產生的大小 服務。 對於只有3個屏幕而不是很多商業邏輯的應用程序,安裝後的25 MB和大約60 MB真的很多。 According to expo devs更復雜的應用程序將大致相同的大小或僅略大一些,因爲大小的大部分是本機依賴項,​​而不是實際的JavaScript端。 但是,這仍然是一個大問題,我可能要反正eject的應用,進而優化了建築面積

所以一般CRNA是一個偉大的和快速的方式來啓動和發佈應用之前,有一些工作,但仍您不會避免使用您的自定義內部版本和所有依賴關係,如Android Studio

5

我認爲create-react-native-app是一個很好的啓動方式,因此您可以專注於原生反應的React部分,特別是如果您不熟悉React。當你準備好用本機做事情時,你可以簡單地彈出npm run eject

當我在去年年底開始一個新項目時,反應本土應用程序並沒有創建反應本機應用程序,我首先評估了世博會。我不喜歡它,因爲沒有簡單的本地整合,除非你知道我們確實需要本地整合,否則會彈出。因此,我與香草反應本土。此外,我在網絡和iOS和Android本機開發方面已經有了React的經驗。

+0

如何在您的應用程序中添加webpack + typescript +單元測試+測試覆蓋率? –

+0

無論使用React本機默認打包器,我們都不使用webpack。雖然您可以使用React Native結賬https://github.com/callstack-io/haul以使用webpack。我沒有使用打字稿,但我們正在爲項目添加流程。我們使用jest進行測試,這已經與istanbul集成,可以提供很好的測試覆蓋率輸出。 – hyb175

+0

嗨,我是React Native的新手。我使用create-react-native-app創建了我的應用程序,然後使用expo構建了我的apk,但是apk的大小很大,25mb +我的問題是create-react-native-app自動包含expo模塊? –