手机app开发可选技术——React Native
百度百科
React Native是Facebook于2015年開(kāi)源的跨平臺(tái)移動(dòng)應(yīng)用開(kāi)發(fā)框架,是Facebook早先開(kāi)源的JS框架React在原生移動(dòng)應(yīng)用平臺(tái)的衍生產(chǎn)物,支持IOS和安卓?jī)纱笃脚_(tái)。RN使用Javascript語(yǔ)言,類(lèi)似于HTML的JSX,以及CSS來(lái)開(kāi)發(fā)移動(dòng)應(yīng)用,因此熟悉WEB前端開(kāi)發(fā)的技術(shù)人員只需要很少的學(xué)習(xí)就可以進(jìn)入移動(dòng)應(yīng)用開(kāi)發(fā)領(lǐng)域。
React Native使你能夠在Javascript和React的基礎(chǔ)上獲得完全一致的開(kāi)發(fā)體驗(yàn),構(gòu)建世界一流的原生APP。
React Native著力于提高多平臺(tái)的開(kāi)發(fā)效率——僅需學(xué)習(xí)一次,編寫(xiě)任何平臺(tái)。
主要特性:
原生的IOS組件
React Native主張“Learn once,write everywhere”而非其他跨平臺(tái)工具一直宣揚(yáng)的:Write once,run everywhere。通過(guò)React Native,開(kāi)發(fā)者可以使用UITabBar、UINavigationController等標(biāo)準(zhǔn)的IOS平臺(tái)組件,讓?xiě)?yīng)用界面在其他平臺(tái)上亦能始終保持如一的外觀、風(fēng)格。
異步執(zhí)行
JavaScript應(yīng)用代碼和原生平臺(tái)之間所有的操作都采用異步執(zhí)行模式,原生模塊使用額外線程,開(kāi)發(fā)者可以解碼主線程圖像、后臺(tái)保存至磁盤(pán)、無(wú)需顧忌UI等諸多因素直接度量文本設(shè)計(jì)布局。
觸摸處理
React Native引入了一個(gè)類(lèi)似于IOS上Responder Chain響應(yīng)鏈處理機(jī)制的相應(yīng)體系,并基于此為開(kāi)發(fā)者提供了諸如TouchableHighlight等更高級(jí)的組件。
各路資料、詳解
React Native,是一個(gè)混合移動(dòng)應(yīng)用開(kāi)發(fā)框架。
React Native是目前流行的跨平臺(tái)移動(dòng)應(yīng)用開(kāi)發(fā)框架之一。在開(kāi)發(fā)應(yīng)用時(shí),我們可以選擇使用原生,純基于Web或者使用混合方法(即使用原生和基于Web的技術(shù)的組合)。可以使用Apache Cordova(或Adobe PhoneGap)等開(kāi)源平臺(tái)編寫(xiě)HTML,CSS和JavaScript的跨平臺(tái)混合應(yīng)用。這些應(yīng)用在原生Web視圖(瀏覽器)中運(yùn)行,所以看著就像Web應(yīng)用,不過(guò)可以使用JavaScript和一些Apache Cordova插件調(diào)用原生功能和API。所以可以使用類(lèi)似于Web應(yīng)用而非原生應(yīng)用的用戶界面上架到Apple Store或Google Play的應(yīng)用。或者,可以使用c#,XAML和CSS使用Xamarin來(lái)編寫(xiě)原生應(yīng)用。對(duì)于用HTML5,CSS和JavaScript編寫(xiě)的非原生移動(dòng)Web應(yīng)用,還可以配套使用jQuery Mobile等框架。
React Native采用不同的方法進(jìn)行混合移動(dòng)應(yīng)用開(kāi)發(fā)。它不會(huì)生成UI組件,而是基于React,React Native是一個(gè)用于構(gòu)建基于Web的交互界面的JavaScript庫(kù),因此會(huì)有更豐富的UI 體驗(yàn)效果,同時(shí)也能夠很好地調(diào)用底層框架的UI使用。React Native已經(jīng)成為一種流行的移動(dòng)開(kāi)發(fā)技術(shù),它提供了一個(gè)使用JavaScript構(gòu)建原生跨平臺(tái)移動(dòng)應(yīng)用的強(qiáng)大框架,在需要時(shí),我們也可以使用Objective-C,Swift或Java來(lái)編寫(xiě)原生代碼來(lái)橋接。
使用React Native有利有弊從積極的方面來(lái)說(shuō),React Native已經(jīng)成為受支持的開(kāi)源社區(qū)的熱門(mén),可以使用一組技術(shù)(如JSX,React Native組件和JavaScript)為IOS和Android構(gòu)建移動(dòng)應(yīng)用。這反過(guò)來(lái)有助于在發(fā)布新版本時(shí)使IOS和Android應(yīng)用保持同步。但是,React Native仍在不斷發(fā)展,當(dāng)要在當(dāng)前不需要React Native提供的功能(例如如何進(jìn)行UI導(dǎo)航或使用地圖)時(shí)決定使用哪些庫(kù)時(shí),可能會(huì)造成混淆。此外,根據(jù)應(yīng)用的復(fù)雜程度,可能需要編寫(xiě)區(qū)別于平臺(tái)的代碼來(lái)解決移動(dòng)平臺(tái)的差異。對(duì)于復(fù)雜的應(yīng)用,可能要編寫(xiě)自定義組件或深入了解IOS和Android(例如,出于性能原因或?qū)eact Native添加到現(xiàn)有原生應(yīng)用所需的但不支持的UI組件)。
配置React Native環(huán)境
React Native的核心語(yǔ)言是JavaScript,特別是ECMAScript 6(ES6)。因此,需要熟悉ES6的一些最新功能。此外,在開(kāi)始開(kāi)發(fā)第一個(gè)React Native應(yīng)用之前,需要安裝必備的工具,比如IDE,JavaScript庫(kù)等等。另外,還需要了解核心的React Native API。
目前來(lái)看,開(kāi)發(fā)IOS原生應(yīng)用只能用macOS系統(tǒng)。由于大多數(shù)移動(dòng)應(yīng)用都會(huì)涉及到Android和IOS兩端,因此應(yīng)該考慮使用Mac來(lái)開(kāi)發(fā)React Native移動(dòng)應(yīng)用。
在創(chuàng)建項(xiàng)目之前,你需要安裝一些東西,主要包括:
Android Studio和Xcode工具
安裝最新版本以構(gòu)建和發(fā)布應(yīng)用。對(duì)于Android開(kāi)發(fā),確保為要運(yùn)行的Android API版本配置正確的模擬器。
JavaScript IDE或文本編輯器
不需要使用Xcode或Android Studio來(lái)編寫(xiě)JavaScript代碼,真正需要的只是一個(gè)文本編輯器。比如使用Atom(由GitHub開(kāi)發(fā)),Sublime Text或喜歡的任何優(yōu)秀文本編輯器。
JavaScript或React Native 包
安裝一些工具來(lái)管理React Native軟件包以及三方庫(kù),包括
從nodejs.org下載node.js:為了讓JavaScript運(yùn)行時(shí)允許訪問(wèn)npm,這是一個(gè)由node.js項(xiàng)目創(chuàng)建的便捷工具,可用于管理開(kāi)源軟件包。確保下載node.js的最新LTS(長(zhǎng)期支持)版本。此下載中還包括一個(gè)名為Metro bundler的開(kāi)發(fā)服務(wù)器,它在調(diào)試時(shí)能夠提供實(shí)時(shí)更新渲染。
下載create-react-native-app:可以使用此工具開(kāi)始開(kāi)發(fā)。它可以創(chuàng)建一個(gè)基礎(chǔ)項(xiàng)目。
下載常用的第三方庫(kù)。React Native提供了很多基礎(chǔ)組件,與原生API使用相比會(huì)更加簡(jiǎn)單。常規(guī)的移動(dòng)應(yīng)用使用可能包括相機(jī),管理狀態(tài),并具有導(dǎo)航,地圖,圖標(biāo)和復(fù)選框。這都可以從React Native社區(qū)獲取對(duì)應(yīng)組件。
此外,可以到React Native Elements獲取需要的其他UI組件元素。在開(kāi)發(fā)一個(gè)完整功能的app時(shí),需要用到上面提到的UI組件。用這個(gè)方法來(lái)安裝以前的packages
React Native Debugger:這是一個(gè)非常棒的調(diào)試器,同時(shí)他還是一個(gè)獨(dú)立的應(yīng)用,里面能用到的工具包括React Inspector和Redux DevTools。配置好環(huán)境后可以連接到應(yīng)用(注意:一次只能調(diào)試一個(gè)應(yīng)用),可以很方便的實(shí)時(shí)查看React Native應(yīng)用的狀態(tài),調(diào)試必備工具。
結(jié)論
React Native是一個(gè)充滿活力并且不斷發(fā)展的框架和社區(qū)。但React Native并不像原生應(yīng)用開(kāi)發(fā)那樣成熟。所以必須為Android,IOS和React Native的開(kāi)發(fā)保持穩(wěn)定的環(huán)境,包括所有相關(guān)的開(kāi)發(fā)工具。對(duì)于React Native中不存在的組件,可以Google搜索,就可以找到所需內(nèi)容,請(qǐng)記住所選的第三方庫(kù)可能會(huì)更改或維護(hù)可能會(huì)停止或被放棄,這是一個(gè)要考慮的主要風(fēng)險(xiǎn)。
React Native并不適合所有人或每個(gè)項(xiàng)目。這需要考慮創(chuàng)建和維護(hù)React Native代碼,工具,開(kāi)發(fā)環(huán)境和技能集的時(shí)間,精力和成本,而不是僅僅關(guān)注原生代碼。
React Native驚喜
1、即使你不懂如何使用Java或Kotlin開(kāi)發(fā)Android,或者不懂如何使用Swift或Objective-c來(lái)開(kāi)發(fā)IPad或IPhone應(yīng)用也不要緊,因?yàn)镽eact Native幾乎不需要和它們打交道。
2、如果你想同時(shí)開(kāi)發(fā)Android和IOS應(yīng)用,只要你的開(kāi)發(fā)人員懂前端,懂JavaScript和React就夠了,也能開(kāi)發(fā)移動(dòng)應(yīng)用。
特性
1、底層采用Facebook開(kāi)發(fā)的React技術(shù)。
React是一個(gè)視覺(jué)框架,使用JavaScript來(lái)構(gòu)建網(wǎng)頁(yè)和移動(dòng)網(wǎng)頁(yè)。
2、React Native內(nèi)置了大量的原生組件,這比Web App有著更強(qiáng)大的性能。
3、React Native開(kāi)發(fā)的APP可以運(yùn)行在IOS平臺(tái)和Android平臺(tái)。
優(yōu)點(diǎn)
1、完全采用JavaScript語(yǔ)言
2、跨平臺(tái),尤其是Android和IOS兩端
3、React Native具有強(qiáng)大的社區(qū),有著眾多的開(kāi)發(fā)者提供了各種類(lèi)型的組件
缺點(diǎn)
1、復(fù)雜的狀態(tài)管理、頁(yè)面切換。即使你會(huì)React ,也會(huì)覺(jué)得它的頁(yè)面切換有點(diǎn)繞。
2、創(chuàng)建新的原生組件復(fù)雜。如果你要?jiǎng)?chuàng)建一個(gè)之前從未出現(xiàn)的原生組件,難度直線上升。不僅需要懂得Android開(kāi)發(fā),還要懂得IOS開(kāi)發(fā)。
總結(jié)
以上是生活随笔為你收集整理的手机app开发可选技术——React Native的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: idea运行sql文件
- 下一篇: red5+obs+ffmpeg 推流实现