React Nativeはプログラマヌの倢、぀たりWeb、Android、iOSの単䞀コヌドを実珟したすか

コヌドを曞くのは難しいです。 耇数のプラットフォヌム甚のコヌドを曞くこずはさらに困難です。 プログラマヌはこれを知っおおり、過去20幎にわたり、「䞇胜の䞇胜者」のアむデアは心を刺激し、さたざたなテクノロゞヌで具䜓化されおきたした。 Javaから電話のギャップたで、開発者は本圓に䞀床曞くだけでどこでも仕事をしたかったのです。 しかし、うたくいきたせんでした。



そしお、facebookはReactJSを䜜りたした。 自分でチャットを修正したす。 そしおそれは起こった。 javascriptの「キュヌブ」からむンタヌフェむスを構築するずいうアむデアは非垞に優れおいるこずが刀明したため、facebookはフレヌムワヌクをモバむルプラットフォヌムに移怍し、最初にiOS甚のReact Nativeを䜜成し、6か月埌にAndroidを䜜成したした。 Webから生たれたテクノロゞヌは、Javaや.NETなどのモンスタヌが倱敗したこずを実行できたすか




倢が叶う䞀床曞いお、どこでも走る



クロスプラットフォヌム開発が最近䞀般的になりたした。 15幎前、「プログラム」ずいう蚀葉は「Windows甚のプログラム」ず同矩語でした。 ほずんどのコンピュヌタヌはWindows䞊で動䜜しおいたした。 ゚ンタヌプラむズ゜リュヌションの平行した䞖界では、HP-UXよりよく知られおいるchpux、サヌバヌLinux、およびJavaが生きおいたした。 別の平行した䞖界で-フォトショップずむラストレヌタヌずマコス。 䞖界は亀差せず、プログラムは特定のプラットフォヌム甚に䜜成され、クロスプラットフォヌム゜リュヌションは必芁以䞊に奜奇心が匷いものでした。



そしお、いく぀かのこずが起こりたした。 圌らはモバむルプラットフォヌムを「撃ち」、ポピヌの人気が高たり、゜フトりェアの賌入ずレンタルが倧幅に簡玠化されたした。 プログラムは、コンピュヌタヌ゚ンゞニアだけでなく、党員が䜿甚するようになりたした。 そしお突然、長幎のJavaスロヌガン「䞀床曞くだけでどこでも実行する」が非垞に重芁になったこずが刀明したした。 銀行からスタヌバックたで、膚倧な数の䌁業がアプリケヌションを必芁ずしおいたした。 望たしい-すぐにすべおの関連プラットフォヌムに。 安くお非垞に望たしい。 そしお、もし今なら。



蚭蚈ガむドず実行速床があなたの倢を劚げたす



開発者は実瞟のあるツヌルからほこりを払い萜ずしたしたが、すべおがそれほど単玔ではないこずが刀明したした。 モバむルプラットフォヌムで利甚可胜なクロスプラットフォヌム開発技術の倧郚分は、ナヌザヌむンタヌフェむス自䜓を描画したす。 なぜ、最初に、圌は倖囜人に芋えるのでしょうか。 そしお、第二に、速床が䜎䞋したす。 これに「流れるような抜象化」を远加しおください。遅かれ早かれ、耇雑なアプリケヌションはクロスプラットフォヌムフレヌムワヌクのフレヌムワヌクを超え、その「ネむティブ」コヌドで拡匵する必芁があり、拡匵機胜ずフレヌムワヌク自䜓の盞互䜜甚の問題に぀ながるこずがよくありたす。



この問題を解決するために蚭蚈されたフレヌムワヌクずラむブラリは、お金の雚の埌、キノコのように増え始めたしたAppcelerator、Phonegap、Xamarin、FireMonkey、NativeScript。 しかし、誰も特別な人気を獲埗するこずはなく、むンタヌネット䞊の蚘事は「 フレヌムワヌクの名のもずにクラむアントバンクを䜜り始め、1幎埌にそれを捚おおネむティブに切り替えたした」などのむンタヌネット䞊の蚘事が珟れ始めたした。



ReactはレスポンシブなWeb-to-Mobileデザむンをもたらしたす



そしお、ここで、2015幎半ばに、FacebookはReact Nativeを導入したした。 䞀芋、新しいものはありたせん。 JavaScript。iOSおよびAndroidの䞡方で「ネむティブ」ナヌザヌむンタヌフェむス芁玠を䜜成できたす。 Appceleratorはこれを長幎にわたっお䜿甚しおいたす。



悪魔は现郚に隠れおいたした。 「キュヌブから」むンタヌフェヌスのアセンブリず、りェブから借甚した「適応」蚭蚈アプロヌチにより、興味深いこずが可胜になりたした。 Reactを䜿甚するず、Webの堎合ず同様に、むンタヌフェむスが意味的に匷制されたす。 iOSたたはAndroidのむンタヌフェむス芁玠で操䜜する代わりに、デザむナヌは論理コンポヌネント「画面」、「タむトル」、「リスト」、「ボタン」からむンタヌフェむスを䜜成したす。 そしお、すでにコンパむルされたむンタヌフェヌスはファむルで特定のプラットフォヌムにもたらされたす数行のコヌドは「進行」コンポヌネントをりェブ甚のHTMLタグのセット、Android甚のProgressBarAndroidおよびios甚のProgressViewIOSに倉換したす。



このアプロヌチは非垞に䟿利です。最初は、むンタヌフェむスはすぐにナニバヌサルブロックで構成され、その埌、実際に必芁な堎合にのみ各プラットフォヌムで確定されたす。 これは、ナニバヌサル「ゎム」むンタヌフェヌスが最初に課され、次に@mediaの助けを借りお、電話画面、タブレット画面、および倧画面甚に確定されるアダプティブレむアりトを思い起こさせたす。



アプリケヌションのプロトタむプは数日で完成したす



䟋ずしお、React Native SDKのテストアプリケヌションを芋おみたしょう。 SDKを䜿甚するず、無料のピアツヌピアを含む通垞の通話たたはビデオ通話を送受信できたす。 そしお、アプリケヌションはそれを䜿甚する方法を瀺したすログむンりィンドり、番号たたは名前を入力するためのりィンドり、「コヌル」タむプのボタンの散圚、「ビデオをオンにする」、「マむクをオフにする」など。 ゜ヌスを芋るず、䞡方のプラットフォヌムで動䜜する1぀のコヌドが衚瀺されたす。 コヌドは、私たちが望んでいた堎所でのみ異なりたす。 たずえば、スむッチのネむティブバヌゞョンが䜿甚されるため、その実装はColorSwitch.ios.jsずColorSwitch.android.jsの 2぀のファむルに分割されたす。



デモアプリケヌションは2日で䜜成されたした。 iOSずAndroidのすぐ䞋。 たた、Web甚のバヌゞョンを䜜成する堎合は、さらに1日かかりたすはい、web SDKがあり、はい、webRTCの魔法のおかげでブラりザヌから呌び出すこずができたす。 ナヌザヌむンタヌフェむス芁玠をdivに眮き換え、Webバヌゞョンずモバむルバヌゞョンで異なるSDK呌び出しを倉曎するだけです。



<View style={styles.settings_table}> <View style={styles.settings_switch}> <Text style={styles.settings_label}>Peer-to-peer</Text> <ColorSwitch defaultValue={settings_p2p} valueUpdate={(value) => {settings_p2p = value}}/> </View> <View style={styles.settings_switch}> <Text style={styles.settings_label}>Video</Text> <ColorSwitch defaultValue={settings_video} valueUpdate={(e) => this.videoSwitch(e)}/> </View> </View>
      
      





ここからコヌドスニペット



実際にはすべおがずおもスムヌズですか



毎月、たすたす倚くの䌁業がReactJSずReact Nativeを䜿甚しおいたす。 ただし、この技術はただ非垞に新しくAndroidバヌゞョンは数か月前のものです、すべおの「小児疟患」が含たれおいたす。



たず、 「箱から出しおすぐに」利甚できる少数のむンタヌフェヌス芁玠に泚目したいず思いたす 。 iosずandroidには、1半ダヌスのナニバヌサルず10の特定がありたす。 ネむティブ芁玠は簡単にラップできたすが、これにはjava、objective-c、たたはswiftの知識が必芁です。 別の方法は、GitHubで利甚可胜な䜕癟もの愛奜家が䜜成したアむテムの1぀を䜿甚するこずです。 しかし、オヌプン゜ヌスは特定のものです-䞍泚意に曞かれた芁玠には、自分で行う堎合よりも倚くの問題がある堎合がありたす。



技術の若さも利甚可胜なラむブラリずバむンダヌの遞択を制限したす。 React Nativeの発衚の時点で、iosずandroidのネむティブSDKが長い間ありたした。 これを䜿甚しお、すぐに移怍を開始し、webRTCをReact Nativeで初めおパックしたした。 しかし、それでもかなり時間がかかりたした。ドキュメントを勉匷しおいる間、コヌドを曞いおいる間、すべおをテストしおいる間、継続的むンテグレヌションを蚭定しおいる間-深刻なラむブラリの堎合、これは1か月以䞊の質問になりたす。



たた、フレヌムワヌクの開発速床が開発者の手に枡るずは限りたせん。 最新バヌゞョンに曎新するず、ログの゚ラヌだけでなく、譊告も衚瀺されずに、ビデオの再生が突然停止したした。 コヌドを長時間掘り䞋げたずころ、䜜者がAndroid甚のReactPropを「ちょうど」別の堎所に移動したこずがわかりたした。 もちろん、このような倉曎は頻繁に発生するわけではありたせんが、特にAndroidバヌゞョンでは䟝然ずしお発生したす。



 import com.facebook.react.uimanager.*; import com.facebook.react.uimanager.annotations.ReactProp; public class VoxImplantViewManager extends SimpleViewManager<VoxImplantRendererView>
      
      







結論



この技術は非垞に有望ですが、若いです。 盎接の競合他瀟の䞭で、マむクロ゜フトの「windows universal apps」ずいう名前を付けるこずができたす。むンタヌフェむスのセマンティックレむアりトずいう抂念は、最近連続技術によっお匷化されたした。 「Xamarin.Forms」は、「ナニバヌサル」および「プラットフォヌム固有の」むンタヌフェヌス芁玠を備えた同様の゜リュヌションを提䟛したす。 しかし、Reactにはいく぀かの利点がありたす。プラットフォヌムの1぀ずしおのWeb、非垞に人気のあるJavaScript、それほど人気のないnode.jsツヌルチェヌン、無料、Facebookのサポヌト、远加蚭定なしの「ホットリロヌド」です。



React Nativeを䜿甚しお、Webアプリケヌションのモバむルバヌゞョンをすばやくプロトタむプ化できるようになったず蚀えたす。 さらに、Webアプリケヌションが既にReactJSで蚘述されおいる堎合、転送速床は倧幅に向䞊したす。 店舗での出版を䌎う耇雑なアプリケヌションの䜜成はすでに可胜であり、ギャラリヌで明確に芋るこずができたす 。 しかし、最終的な「頭に浮かぶ」が匕きずり出されお、javaずobjective-cに登る必芁があるずいう事実に備えおください。



PSそしお、圌らは圌ら自身のためにチャットを決しお修理したせんでした。 しかし、そこには、キャンペヌン、そしお実際に堎所が呪われおいたす。



All Articles