Python

django WEBアプリをReact Nativeを使ってスマホアプリにしてみよう

djangoアプリの基本がわかってきたので、スマホアプリにチャレンジしてみます。

どうやら私のPCはWindowsなのでiOSアプリを作るのが難しい様です。(不可能では無いらしい、、)

なのでandroidアプリの製作を目指していきます。

ところでどの様にスマホアプリを作成すべきか。ネットで検索すると「React Native 」を用いればできるらしいです。

React Native の他にnodeやnpm、yarnいったツールの名前が出てきて混乱してしまったので、1つ1つ調べていくことにしました。

React Native とは?

React Native はモバイルアプリケーションフレームワークです。

React と呼ばれる言語を使用して、Android、iOS アプリを開発することができるようにした言語であるので、Reactと全く同じでは無い様です。Reactをよく知らない私としては、JavaScriptの言語のライブラリの一つがReactであるといった認識を持っています。

ネットで検索すると🔍

2つの技術的な大きな違いとしては、Reactは仮想DOM(Document Object Model)を使ってWebブラウザ上でコードをレンダリングするのに対し、 React Native はネイティブAPIを使ってモバイルデバイス上でUIをレンダリングする点が違っている。

という内容が書いてありました。

んー、、🧐ちょっとイメージできない。。React=javascriptであると考えておこう。

とにかく、Java や Swift が書けなくても React が分かれば、Android と iOS 同じコードでスマホアプリが開発できるので、やってみるしかないですね。とはいえ、DENはReactは触ったことがないので一から勉強です。

しかもReact Nativeの他にも使うツールがあるらしい。

React Nativeだけではアプリ開発はできない。その他に、Android Studioや、Xcodeといったツールが必要となる。

開発を始めるための初期設定がややこしい。

React Nativeを使う上で欠かせないフレームワークが、Expoらしい。その名もエキスポというみたいです。

Expoって?

Expoは、React Nativeでアプリ開発する為に必要なリリース、ビルド時の細かな設定を自動でやってくれるフレームワークです。

具体的にどんなことをやってくれるかはこれから学ぶとして、まずはReact NativeとExpoの2つがキーワードを中心に学ぶことになりそうです。

まずはインストールからやってみよう

では早速React NativeとExpoを準備しよう!とはなりません。

React NativeやExpoに関してはNPM(Node Package Manager)と呼ばれるシステムで管理するのでNode.jsのインストールが必須です。

Node.jsの役割は、ブラウザ上で動かす言語(javascriptなど)をサーバー上で動かすことができるようになります。

このサーバー上で動かすことができることによってWEBアプリが実装できるのですが、今回はこのNode.jsをつかってパッケージマネージャーとしての役割を果たしてもらうために必要となります。これによってフロントエンドとしてReact Nativeを利用するための環境としてインストールが必要なのです。

Node.jsをインストール

コマンドプロンプトで以下のコマンドを入力すればバージョンが確認できます。

node -v

次に、npmのYarnのインストールも行います。(コマンドプロンプトで以下のコマンドを入力)

npm install -g yarn

YarnはJavaScriptのプロジェクトで使用される依存関係を管理し、効率的にパッケージをダウンロード、インストール、アップグレードするためのツールで「パッケージマネージャ」と呼ばれます。

pythonでいうと「pip」ですね。

つまり、JavaScriptのパッケージマネージャーである「Yarn」があるおかげで、今何のバージョンが入っているんだっけ?、このバージョンは合わないです、、、等のバージョン管理ができるようになるのです。

さらに、、Expo CLIと呼ばれるExpoを操作するシステムをインストールします。(コマンドプロンプトで以下のコマンドを入力)

npm install –global expo-cli

これだけで設定は完了です!

ABOUT ME
den
完全独学でWEBデザインを無謀にも挑戦している中年男。 工場勤務の会社員で3児の父。 チャレンジを忘れず、妻に怒られても心はおれず。 有益な情報を発信し、これを見ている人の為になればと思っています。
関連記事一覧