學習 React Native 4
改進原生平臺
React Native 既能利用原生平臺本身的開發優勢,也能使用您要為之開發的平臺的獨有特性。這些包括了用戶界面的元素以及動畫,就如同平臺本身的接口規范一樣,諸如:地理位置信息或者是相機,相冊。
可以對比一下現在已經存在的跨平臺移動解決方案。大部分的方案都是允許您在架構內部開發一個薄薄的偽裝層組件,然后再將其實現為原生部分。但用這種方式生成的應用大部分感覺都有“跳”。 基本上他無法完全的復制原生的用戶界面元素,所以結果就是,您的應用在很多方面,比方動畫以及樣式,就顯得很不好看,或者是很不自然。React Native 就能很輕松靈活的繞過這問題。
對比傳統的移動應用開發過程,React Native 并不會采用同樣的訪問宿主平臺的方式。 有一個為使用API而增加了復雜性的輕量級層還沒有被 React Native的核心支持,例如, 在特定的某種情況下同步 API仍然是一個挑戰。
開發工具
React Native 小組已經準備好一個強壯的開發工具,同時也在該框架中加入了意義明確的錯誤信息集, 所以能讓您在開發過程中很自然的使用該強壯的開發工具。因此, React Native 能夠把原來那些伴隨著移動開發過程中存在的大部分疼點都消除了。
舉例來說:因為React native 就是JavaScript, 所以您無須重新編譯程序就可以看到任何修改的結果了;實際上,您可以通過按 CMD + R 鍵去重新加載您的應用,就如同在任何網頁上所做的一樣。 以前在做 iOS 以及Android兩個版本開發的時候,我總是很反感在測試的過程中,我花了多少重新等待以及重新編譯的時間。 React Native 把這些時間從分鐘級別的消費減少到毫秒級別, 能讓您更集中精神在開發的工作中。
另外, React Native 讓您使用智能調試工具以及報錯機制。如果您習慣于使用 Chrome或者是Safari 的開發工具,您一定會很高興,這些將可以繼續在您的開發過程中使用。同樣的,您也可以使用任何習慣的文本編輯器編寫 JavaScript: React Native 并不會強迫您只能在Xcode 中做iOS版本的開發,或者是在Android Studio 里做Android版本。
隨著您開發經驗的逐步提高,React Native 也已經能夠改變您的產品發布周期模式。 例如蘋果,就已經明確的表示,他們可以接受,對于基于JavaScript 層面的修改可以即時更新,而無須發布新的版本。
所有這些小的意外驚喜加起來就可以節約您和您的團隊成員的大量工發時間和精力,允許您能更加集中注意力在您的核心工作中,從而大量提高您的效率。
使用已經擁有的平臺知識
對于那些已經很熟悉了指定平臺開發的傳統原生應用工程師們,移到React Native上來做開發,并不會浪費掉您已經具備的平臺規范知識。 遠非如此; 您所擁有的知識在很大情況下是非常重要的。 偶然,您也會發現 React Native 的指定平臺的橋程序也存在某個不支持宿主平臺的API或者是功能,而這個API, 或者是功能恰好是您所需要使用的。這歸,如果您已經很了解了 Objective-C就能讓您輕松自如的根據自己的需要改寫橋程序,同時擴展React Native 的關于iOS版本的支持性能。
支持社區也在 React Native 在新平臺的進化過程中起到重要的作用。 開發者可以協助React Native 建立新的橋程序,從而使 React Native 可以更好的適用于不同的平臺,該項工作是React Native 能獲得成功的強大基礎。
風險及缺點
使用 React Native 的最大風險是和他的成熟水平相關的。做為一個很年輕的項目,React Native 不可避免的存在了很多問題,也包括一些沒有最優化的實現。 這些風險有一部分可以被開發社區消化掉。 畢竟Facebook已經在真正的產品里使用了該結構,社區的貢獻起了很大的作用。 然而,使用特別前沿的一門技術絕對不是意味著,您碰的任何問題通過幾頁紙就可以完全解決了。
相類似的,您非常依賴庫文件,而這些庫文件并無須被您正在工作的宿主平臺所支持。 因為原生開發團隊有可能不能完全和蘋果保持協調, 比方說,我們可以想象如果新的 iOS 版本需要搶奪資源才能讓React native 庫提高速度。然而對于大多數的平臺,這些是完全無需要擔心的。
其它的一些主要缺點就是當您在使用React Native 的時候碰到一些使用限制。比如您想在宿主平臺的API里加入些支持,而這些支持還沒有加進 React Native的核心庫中。 如果您是一個只會使用 JavaScript 的程序員,那想完成這事兒,您得花費點時間才能完成相關知識的補充。 我們會在本書的最后特別強調這種情境,我會演示下,如何暴露Objective-C的接口給您的javaScript 代碼。
不深思則不能造于道。不深思而得者,其得易失。
名人名言- 曾國藩
- By 優聯實達
- 2015-11-15
- 1284
- 公司新聞,網站開發,網站設計,UI