React Native社群發(fā)起問卷調(diào)查State of React Native,以進(jìn)一步了解框架痛點(diǎn)以及替代工具的選擇。React Native是一個(gè)由臉書以React.js為基礎(chǔ),所開發(fā)的應(yīng)用程序框架,供開發(fā)者以聲明式程序開發(fā)模式開發(fā)多平臺(tái)應(yīng)用程序,多數(shù)用于開發(fā)iOS和Android平臺(tái)應(yīng)用程序,但也能夠通過另外的組件開發(fā)UWP應(yīng)用程序。
React Native中有許多新興客戶端狀態(tài)庫(kù)讓開發(fā)者感興趣,包括Zustand、Jotai和Legend State,但是采用率仍相對(duì)較低,Redux函數(shù)庫(kù)仍是更為熱門的選擇,使用率僅低于內(nèi)置的Hooks。而在服務(wù)器狀態(tài)函數(shù)庫(kù)方面,TanStack Query和Apollo表現(xiàn)相當(dāng),但是在開發(fā)者表達(dá)會(huì)再次使用的比例上,Apollo明顯更少。
問卷調(diào)查React Native的使用痛點(diǎn),而結(jié)果反應(yīng)了該框架一直以來的問題,便是框架版本升級(jí)困難和調(diào)試不易,而且多數(shù)React Native開發(fā)者也不滿意性能表現(xiàn),不過,還有超過半數(shù)的受訪者,指出React Native框架還存在另外兩個(gè)嚴(yán)重問題,是無人維護(hù)的組件以及過分依賴第三方函數(shù)庫(kù)。
導(dǎo)致React Native有許多無人維護(hù)函數(shù)庫(kù)的原因,State of React Native發(fā)起人,同時(shí)也是Software Mansion軟件工程師Kacper Kapu?ciak認(rèn)為,由于維護(hù)React Native需要三種以上的語(yǔ)言專業(yè),同時(shí)還要了解iOS和Android API知識(shí),實(shí)際上并不容易,而且移動(dòng)平臺(tái)不停的更新,使得許多橋梁組件過時(shí)。
最受React Native開發(fā)人員偏愛的替代框架是SwiftUI和Jetpack Compose,而Ionic、微軟Xamarin和Apache Cordova,則是不那么受React Native開發(fā)人員喜愛。這項(xiàng)調(diào)查有趣的地方是,雖然React Native開發(fā)人員普遍不愛Cordova和Ionic,但是Cordova使用率卻位居第一,Ionic以些微差異位居第二,表示雖然目前開發(fā)人員必須使用這些組件,但也樂意看到他們被取代。
盡管框架還有許多可改進(jìn)之處,不過受訪者對(duì)框架整體感到滿意,無論是構(gòu)建應(yīng)用程序的復(fù)雜度或是框架的改進(jìn)速度,社群成員皆認(rèn)為發(fā)展適中。
這是第一份State of React Native調(diào)查報(bào)告,在React Native社群中收集到超過1,800份回應(yīng),Bart?omiej Bukowski向知名JavaScript社群調(diào)查State of JS的創(chuàng)建人Sacha Greif取經(jīng),并在React Native社群創(chuàng)建一個(gè)類似的調(diào)查。Bart?omiej Bukowski表示,React Native開發(fā)人員常會(huì)面臨不知道該在項(xiàng)目使用那種解決方案的困擾,而通過集中比較,能夠助開發(fā)者更好地選擇想要使用的技術(shù)。