#はじめに
この記事はAndroid 初心者 Advent Calendar 2018の25日目の記事です。
Qiitaへの投稿は初めてとなります。
ReactNativeを触り始めて累計約6ヶ月、その時失敗した経験を伝え、
みなさんが同じ過ちを繰り返さないように、この記事を書かせていただきます。
Android初心者やけどKotlin Javaの記事じゃないのかよ!ってツッコまないでね
#親子関係はシンプルにしよう。
###私の失敗
親子孫ひ孫、玄孫、、、、
みたいなコードを爆誕させ、そのページ担当時は自分でもギリギリ理解していた。
しかし一旦別担当に取り組んだ後、再びそのカオスコードを見ると、
わけがわからない、コメントも書いていたがそれを読んでも意味不明。
全てを一旦白紙に戻し、再始動。
###改善点
コンポーネント同士で値を受け渡しするには、必ず親子関係をシンプルに構築しよう。
最大でも、親・子・孫の3関係程度でデータの受け渡しをしましょう。
それ以上子を増やすと自分で理解するのが難しくなりますし、コードが煩雑になります。
#iOS、Android両方の機器で動作確認をしよう。
iOS、Androidそれぞれレイアウトや、動作が異なることがあります。
例えばTextInput
iOSはこうですが、
Androidだとデフォルトではアンダーラインがひかれます。
###私の失敗
iOSエミュレーターで動作を確認して、慢心していた私はAndroidで確認を取らず、
そして、β版発表前日に、Androidでは動作しない、
ましてや、メイン機能のレイアウトがそもそも表示してない事に気付き、
その日はほぼ寝ずに修正する事に
###改善点
一つ機能を実装したら、両端末で確認を。
経験上、iOSは割とガバガバ設計でも通ってしまう
そしてAndroidは厳密に設計しないといけない感じです。
じゃぁ確認全部Androidでしてたらよくね?って思うかもしれませんが、
逆もまた然りなので、ご注意を。
#正解は1つじゃない。
よくプログラミングの教科書で言われる言葉ですね。
本当にそう思います。1つの機能を実装するにも方法はたくさんあります。
###私の失敗
プロフィール画面とプロフィール編集画面を実装時。
無知だった私はまず、親子関係を無視して、
次にグローバル変数を自作ヘッダーに持たせて、
ニックネーム、自己紹介文などの値書き換えたらいいやんっって思って実装してたら、
グローバル変数危なスギィぃぃ!ってチームメンバーに注意され、
例によって例のごとく、担当部分、白紙化、再始動。
###改善点
Profileという親に対して、
MyPrifile(プロフィール画面)・Edit_Profile(編集画面)の2つの子を持つようにした。
これによって編集画面で書き換えた値を親が保持し、プロフィール画面では親の値を表示する
「こういう実装しよう」とアイデアが出たとしても
一度立ち止まり、「別の方法もないかな?」という自分に問いかけてみよう。
またチームで製作している場合なら、
チームメンバーに相談するともっといいアイデアがもらえるかも!
#最後に
まだまだReactNativeの開発は続くので、また気づきがあればこの記事を更新していきます。
これにてQiita書込童貞卒業です。最後まで読んで頂き、ありがとうございました。