Android開発Belfryパヌト2のネむティブReact

数日埌、AndroidずiOSのネむティブ開発のみを経隓する前に、䞀般的にリアクションネむティブを遞択し始めた埌、最埌の蚘事を曞きたした。 この時間の埌、私はすでに本物の反応ネむティブプロゞェクトに取り組むこずができたした。 そしお今、私は実際のプロゞェクトで働いおいるずきに出䌚ったすべおの明癜な瞬間ず非自明な瞬間を匷調したいず思いたす。 猫の䞋で興味がある人。



ツヌル



もう䞀床、䜜業ツヌルのトピックを匷調したす。 React Nativeはバヌゞョン1.0にただそれほど近づいおおらず、少なくずも1.0です。これが、この補品甚の完党に機胜する、掗緎されたIDEが䞍足しおいる理由です。 ずはいえ、突然、 デコIDEに出䌚いたした。 はい、これは本圓のIDE明らかな理由でmacOS専甚であり、airbnbも賌入したした。 しかし、すべおがバラ色であるこずが刀明したわけではありたせん。 はい、ここでは、コンポヌネントをコヌドにドラッグアンドドロップするだけで、「マりスでプログラム」できたす。 繰り返したすが、コンポヌネントのリストがあり、毎回オフィスに行く必芁はありたせん。 どのコンポヌネントがただ存圚するかを調べるためのWebサむト。 プロゞェクトを文字通り1ポヌクで開始するこずもできたすiOSのみですが、Androidには垞に問題がありたす。 しかし、それはすべおのチップが終わるずころです。 固定されたcmdでクリックするこずによるコンポヌネントぞの迅速な移行はありたせん。適切なリンタヌず自動補完さえありたせん。 コヌディング機胜に関しおは、これは閉じられおいないタグのみが匷調衚瀺できるシンプルなメモ垳です。 しかし、今では倧䌁業がこのツヌルで忙しいので、その早期開発を期埅しおいたす。



反応ネむティブに関するほずんどのビデオず、さたざたな蚘事のスクリヌンショットでは、 VSコヌドがいたるずころに芋られたした。 事は本圓に良いです、eslinterはプラグむンずしお簡単に接続できたす、あなたはフロヌを拟うこずができたす、autocomplitsずコンポヌネントぞの移行さえありたす。 組み蟌みのgitず統合されたタヌミナルさえありたす。 たた、私はそれを䜿甚したすが、私にずっおは倧きなマむナスがありたす-デフォルトでは、開いおいるファむルはそれぞれ前のファむルを眮き換えるかのように1぀のタブで開きたす。 異なるファむルで2぀のタブを開くには、ファむルの線集を開始しおから、2番目のタブで既に開いおいる別のタブを開く必芁がありたす。 2〜3皮類のファむルをすばやく衚瀺する必芁がある堎合は、怅子の宀内装食品を倉曎する必芁がありたす。これにより、䞍快感が生じたす。



したがっお、私はただNuclideに萜ち着きたしたが 、 flowをピックアップするず、オヌトコンプリヌトが倧幅に向䞊し、クリックによるコンポヌネントぞの迅速な移行に加えお、すべおのチップにタむピングが远加されたす。 これたでのずころ、1回のクリックで矎しく䟿利なプロゞェクトの起動を忘れる必芁がありたす。



カメラ、地図、その他の耇雑なものを扱う



これはおそらく誰にずっおも最も興味深い質問です。 悪いニュヌスは、カメラずカヌドのデフォルトコンポヌネントがないこずです。 ネむティブコヌドを䜿甚する必芁がありたす。 良いニュヌスは、すべおが私たちの前にすでに行われおいるこずです





䞀般的に、すでに倚くの機胜するコンポヌネントがありたすが、グヌグルで怜玢する必芁がありたす。 しかし、あなたは自分で曞くこずができたす。



䜜業プロセス



React Nativeの問題は1぀だけです。AndroidのAndroidの問題です。 これがシステムにずっお問題なのか、Androidにボルトを取り付けた開発者にずっお問題なのかはわかりたせんが、それには垞に奇劙な劚害がありたす。

最も奇劙なケヌスフォヌマット文字列に倉換された日付「YYYY-MM-DD HHmmss」は、iOSずAndroidで文字の長さが異なりたす。どのプラットフォヌムで䜙分なスペヌスがありたすか 激しいペアに぀ながるだけで、コヌドは玔粋なjs䞊にあるように芋えたす。iOSではすべおが正垞に動䜜したすが、Androidでは䜕かがうたくいかない可胜性がありたす。 したがっお、コヌドを倉曎した埌は垞に䞡方のプラットフォヌムでアプリケヌションをテストする必芁があり、これがどのような問題に぀ながるかはわかりたせん。



実際、私にずっおは、䜕らかの理由でDateがAndroid䞊で曲がっお動䜜するのず同様の問題はたれでしたが、momentJSは問題ありたせん。 すぐに埌者を䜿甚しおください。 しかし、異なる性質の組版の問題がありたす。

第䞀に、アンドロむドは、スタむルに瀺されおいるシェヌディング方法をたったく知りたせん。 それには別のパラメヌタがありたす-'elevation'ですが、それだけです。 圱の色、半埄、透明床-これらはすべおアンドロむドを通過したす。

第二に、画面解像床。 アップルフォンは、特にプラスで巚倧な解像床を持っおいるため、必芁なフォントサむズのボタンを公開するず問題が発生したす.iOSではすべおがうたく芋えたすが、Androidではすべおが固着したす-画面は小さくなりたす。 幞いなこずに、react nativeを䜿甚するず、アプリケヌションが起動されたプラットフォヌムを特定できたす。これにより、コヌド内の䜕かスタむルなどが倉曎されたす。



開発プロセス自䜓に関しおは、Androidのネむティブ開発埌に埗られる自由感を説明するのは困難です。 Android SDKは、特定の䜕かのために蚭蚈されたツヌルを提䟛したすが、それは避けられたせん。 ここでは、クラスがレむアりトにフックされるアクティビティがあり、少なくずもあなたがしおいるこず、そしおアクティビティがあるべきだず考えられたした。Google自身でさえ、それに぀いお䜕もできたせん。 そのため、圌らはデヌタバむンディングを提䟛し、このラむブラリを䜿甚しお、ケヌスの99のアクティビティは束葉杖ずしお䜿甚され、レむアりトずViewModelを取埗し、途䞭でModelを枡したすが、レむアりトで既にモデルずViewModelを明瀺的に指定したした。 この堎合、ロゞックはたったくありたせんが、アクティビティがありたす。 情報を送信するには、Intentが必芁であり、単玔なタむプのみを問題なく送信できたす。オブゞェクトを枡したい堎合は、すべおParcelableを送信したす。

そしお、そのような䟋はたくさんありたす。 ネむティブのリアクションの堎合、... JavaScriptのみがあり、それだけです。 この芁玠たたはその芁玠の䜜成方法を決定したす。 そのため、ナビゲヌションに最倧3぀の異なるラむブラリを䜿甚できたす。





ずにかく、どんなタスクでも奜きなように解決できたすたあ、ほが。 そしお、これは詊薬の䞭で最も興味深いです。



コンポヌネント



特蚘事項は、コンポヌネントに倀したす。 Webのナヌザヌにずっおは、これは䜿い慣れたツヌルですが、携垯電話のナヌザヌにずっおは、これは単なる特効薬です。

画像

ここには3぀の異なるボタンがありたす。 実際には違いはありたせん。これは1぀のコンポヌネントです。 コンポヌネントの急峻性の芏暡を理解しおいたすか ここで「完党に」ずいう蚀葉から、レむアりトのコピヌアンドペヌストを忘れるこずができたす。 はい、アンドロむドには理論的にコピヌアンドペヌストから私たちを救うべきスタむルがありたす。 しかし、それらは玔粋なコンポヌネントに適甚されたす。 はい、ボタンのスタむルを蚭定できたすが、䞊の写真のようにボタンを䜜成するには、Androidの1぀のボタンでは䞍十分です。 これは、TextViewずImageViewの䞡方が存圚する完党に独立したレむアりトであり、これらすべおずレむアりトには独自のスタむルパラメヌタヌがありたす。 たた、3぀のボタンはすべお、これらのコンポヌネントの数が異なりたす。写真がない堎所、2぀のテキストなどです。぀たり、Androidでこれらの3぀のボタンすべおを3回完了せずに䜜成するこずはできたせん。 さお、反応でこれをどのように行うこずができたすか ここには3぀の魔法がありたす。



  1. 小道具
  2. 存圚する芁玠のみを衚瀺する
  3. スタむルオヌバヌレむ


すべおの詳现をご芧ください。

Androidでは、最初にレむアりトでコンポヌネントを䜜成し、次にアクティビティでID'shnikによっおコンポヌネントを芋぀け、いく぀かのパラメヌタヌを枡したす。たずえば、テキストを倉曎したす。 これは、衚瀺するものが事前にわかっおいる堎合に機胜したす。 詊薬では、必芁なパラメヌタヌを䜿甚しお䜜成する必芁があるコンポヌネントを瀺したす。 塩ずは䜕ですか 小道具では、簡単なものからオブゞェクトたで、問題なくすべおを転送できたす。 䞭倮のボタンず同じですが、矢印が異なるボタンがもう1぀必芁だずしたしょう。 アンドロむドでは、4番目のボタンを描画するために実行し、その埌、小道具に別のアむコンを枡したす。



しかし、ここでさらに魔法が起こっおいたす



{true && <Text> </Text>} {false && <Text>  </Text>}
      
      





ポむントは、この方法では存圚しないオブゞェクトを衚瀺できないこずです。 動的型付けでJSを䜿甚したす。たずえば、次のように自分で䟿利に䜿甚できたす。

 const text = this.props.text; {text && <Text> {text} </Text>
      
      





textパラメヌタヌをpropsに枡した堎合、コンポヌネントはそれをレンダリングしたすが、それを枡さなかった堎合、それはしないので、なぜですか 動的型付けに再び焊点を圓おる䟡倀がありたす。 すべおはテキストで問題ありたせん。テキストはtrue、テキストはfalseではなく、オブゞェクトず同じです。 しかし、数字の堎合、問題は0を送信するこずです。JSはこれが間違っおいるず考えたす...

ロゞックは到達し始めたすか 私たちは、その䞭にある可胜性のあるすべおの可胜なオプションを考慮に入れたコンポヌネントを䜜成し、䞊蚘で提瀺したデザむンでそれらをラップしたす。

そしお、ここで別の問題が発生する可胜性がありたす-倧きすぎるテキスト、倧きすぎる画像などは、コンポヌネントの倖芳を損なう可胜性がありたす。 ここでは、アむテム番号3が圹立ちたす。



 <Text style={[styles.defaultStyle, this.props.customStyle]}> {this.props.text} </Text>
      
      





スタむルをスタむルの配列ずしお定矩したす。 これはどういう意味ですか これは、スタむルを小道具に枡さない堎合、コンポヌネントはデフォルトになり、事前に決定したこずを意味したす。 しかし、カスタムスタむル、たずえば䞊からのむンデントに1぀のパラメヌタヌを枡すずどうなりたすか そしお、このコンポヌネントにはデフォルトのスタむルに加えお䞊郚にパディングがありたす。 ポむントは、デフォルトのスタむルが垞に完党に適甚され、カスタムスタむルで枡すパラメヌタヌのみが眮き換えられるこずです。 すなわち テキストの色のみを倉曎したい堎合-問題ではありたせん。サむズ、むンデント、その他の喜びは消えたせん。 たた、スタむルにパラメヌタヌが必芁ない堎合は、カスタムスタむルでこのパラメヌタヌに倀nullを枡したす。



おわりに



reduxを䜿甚しおデヌタを操䜜するこずもできたすが、これはフルサむズの蚘事甚に蚭蚈された別個の哲孊です。 私は、ネむティブ開発の埌、reduxで働いたずきに避けられないものを受け入れる5぀の段階をすべお経たず蚀いたす。 しかし、その埌、私は関䞎し、このアプロヌチを本圓に尊重したした。



反応ネむティブは誰にずっお最も重芁な質問ですか はい、みんな。 補品を䜜成するずき、iOSずAndroidの2チヌムの開発者を確保する必芁がありたす。 1぀で十分です。 第䞀に、それは愚かに安く、必芁な人が2倍少なくなり、第二に、䟿利です-バグが発生し、すぐに2぀のプラットフォヌムに修正されたした。 そしお、真面目な人たちも参加し始めたした。 FacebookずInstagramだけではなくなりたした。 Airbnb、walmart、testa、これらの人は䜕かを知っおいるず思いたす



そしお、プロゞェクトはバヌゞョン1.0のリリヌスに近づいおおらず、プロゞェクトを開発するために䞀緒に集たった倚くの著名な人たちはすでにそれに興味を持っおいたす。 駅に到着するこずさえなかったが、電車を降りる前ではない電車に乗るずいうナニヌクな機䌚がありたす。 バヌゞョン1.0の倧量リリヌス前にこのツヌルを習埗した人特に携垯電話のネむティブ開発の経隓がある人は、他の人よりも倧きな利点がありたす。



All Articles