あるSEのつぶやき・改

ITやシステム開発などの技術に関する話題を、SEとしての経験から取り上げたり解説したりしています。

書籍『基礎から学ぶReact Native入門』を読んだ感想

はじめに

書籍『基礎から学ぶReact Native入門』を読んでみました。

React Native は React をベースとした、クロスプラットフォームのモバイルアプリ開発環境になります。

この書籍は、React Native での開発の入門書になります。

なお、React については、以下の書籍がよかったです。

www.aruse.net

よかったところ

React Native の解説が詳しい

React Native を採用するにあたり、よいところとつらいところの解説があるのがよいですね。

よいところ

NPM を使用して、JavaScript のサードパーティライブラリにより拡張できたり、Java や Object-C の実装を持つことも可能です。

つらいところ

React Native は JavaScript が分かっていればモバイル開発ができるわけではなく、Android, iOS, JavaScript の全てを網羅していないと実運用が難しいというのは現実的でよかったです。

この問題を解消するために、Expo というツール群があります。

Expo 解説が詳しい

書籍を読んでみて、React Native そのままでは厳しいなと理解しました。

Expo で開発することで、抽象度が上がり、環境依存の問題を回避しやすくなることが分かりやすいです。

画像は書籍からですが、React Native と Expo ではかなり構造が変わっていることが分かります。

f:id:fnyablog:20220327231707p:plain:w480

f:id:fnyablog:20220327231728p:plain:w480

また、Expo のメリットとして、React Native にない独自機能があったり、ビルドにおいてトラブルが発生しずらいというものがあります。

一方、Expo のデメリットとして、JavaScript のライブラリなら取り込めるけれども、Java/Objective-C で開発されたライブラリは、Expo に存在しているものしか使えないことがあります。

React Native の向き不向き領域の解説があること

React Native は、SNS やニュース系などの情報を見るアプリに向いてるけれども、グラフィックを多用するゲームなどには向いていないという解説はよかったです。ゲームなどには、Unity が向いているそうです。

スタイルの注意事項があること

React Native では、スタイルで高さやフォントサイズには単位をつけないことは意外でした。

以下のような形です。

const styles = StyleSheet.create({
    text: {
        width:300,  //Android:300dp,iOS:300pt
        fontSize:24,  //Android:24sp,iOS:24pt
    }
);

React Hooks でやってはいけないことの解説あり

React Hooks では以下のように、React Hooks の呼び出しで条件分岐してはいけないことが書いてあるのはよかったです。いかにもやりそうなので。

if (...) {
    useEffect(() => {
        // ...
    });
}

条件分岐するには、以下のように行います。

useEffect(() => {
    if (...) {
        // ...
    }
});

リリースの方法の解説があること

Expo でのリリース方法の解説があるのはよかったです。

書籍には、Expo の公式ではほとんど記載がないようです。

足りなかったところ

TypeScript ついての解説が少ない

基本は JavaScript による解説で、TypeScript による解説が少なかった気がします。

クラスベースの解説が混ざっている

React の書籍で学んだ限り、現在の React はクラスではなく関数で記述しているのが基本となっているようですが、この書籍はクラスと関数の解説が混在しています。

基本は関数で開発するのでしょうが、解説の順番としてクラス、関数となっているので、クラスが基本だと認識することがありそうです。

UI ライブラリの解説が少ない

Material Design の解説はあるのですが、他の UI ライブラリの紹介も欲しかったです。

おわりに

書籍を読んだ感想をざっくり書いてみました。

比較的最近出版された書籍ですし、よい入門書になるのではないでしょうか。