Tech

ReactNativeデータ永続化

投稿日:

はじめに

こんにちは、nukkyです。
今回はアプリとしてなくてはならないデータの永続化について書いていこうと思います。

データ永続化の方法

調べた所、React Nativeでデータを永続化する方法は色々あるみたいです。
例えば、React Native標準の仕組みにはAsyncStorageというものがあり、iOSとAndroidに両方対応しています。
他にも、Realm、SQLite、Couchbase、MongoDBといった選択肢があります。

今回はAsyncStorageとRealmを使ってみたいと思います。

AsyncStorage

早速使ってみようと公式に飛んだらDeprecatedになってました。。。
「Deprecated. Use react-native-community/react-native-async-storage instead.」
とのことなのでreact-native-async-storageを使ってみたいと思います!

react-native-async-storage

AsyncStorage(react-native-async-storage)は非同期の永続的な、key-valueストアです。

インストール

インストールしたいプロジェクトで以下のコマンドを実行します。

実装

まずはインポートします。

値を保存したいときは以下のコード、

上記の保存した値を読み込むときは以下のコードになります。

 

Realm

iOSやAndroidのネイティブ開発で採用される例が増えている、モバイルアプリケーション向けデータベースです。
Realmはデータベースであり、AsyncStorageとは仕組みが異なりますので、より複雑で速度の必要なデータの扱いはRealmの方が良いかもしれません。

今回の記事ではRealm JavaScript 2.29.0のコードになっています。

インストール

インストールしたいプロジェクトで以下のコマンドを実行します。

実装
公式のサンプルコードになります、Realmを扱うにはスキーマを定義する必要があります。
ネイティブ開発でRealmを使ったことがある人は、戸惑うことなくコードを書いていけそうです。

redux-persist

Reactにおけるデータの永続化といえばこれといった形で本などでも紹介されているのですが、
私がまだReduxを学習中であり、これを紹介するのはReduxの記事を書くときにしようと思ったので今回は触れていないです。
今後にご期待ください。。。

さいごに

iOSエンジニアの所感としてはAsyncStorageはUserDefaultsの様な使い方(状態のフラグ管理など)で、DBが必要な複雑なデータを扱わない場合やプロトタイプなどにはシンプルに使えそうですが、やはりDBは欲しくなると思うので使い慣れたRealmかなと行った所です。
そろそろReduxも記事にしたくなってきたのでより学習を進めて説明できる様になりたいと思います。

おすすめ書籍

React入門 React・Reduxの導入からサーバサイドレンダリングによるUXの向上まで (NEXT ONE)  React.js&Next.js超入門

page_footer_300rect




page_footer_300rect




-Tech
-,

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

ReactNative環境構築[Android/iOS]

1 はじめに2 準備2.1 HomeBrewをインストール2.2 node.jsのインストール2.3 Watchmanのインストール2.4 React Native CLIのインストール2.5 サンプ ...

MLKitで使えるTensorflow Liteについて調べてみた

1 はじめに2 そもそもTensorflowとは3 そしてTensorflow Liteとは4 Tensorflowの環境構築4.1 pyenv, pyenv-virtualenvをインストール4.2 ...

[Unity] Terrain(地形)を使ってみた

1 はじめに2 Terrainの追加方法3 Terrainの使い方4 Create Neighbor Terrain5 Paint Terrain5.1 Raise or Lower Terrain5 ...

icon

ドキュメント作成の技術「テクニカルライティング」とは

1 はじめに2 テクニカルライティングとは3 少しでも分かりやすく、簡潔にする3.1 一文一義3.2 長くしすぎない、繋げすぎない3.3 長さの目安は?4 伝わりやすく書く4.1 まず主題を書く4.2 ...

ReactNative入門

1 はじめに2 そもそもReact Nativeとは3 JSXとは3.1 JSXに値を埋め込む3.2 属性の値を設定する3.3 関数でJSXを作る4 コンポーネントとは4.1 再利用性4.2 新規コン ...

フォロー

follow us in feedly

page_side_300rect

2019年7月
« 6月  
 123456
78910111213
14151617181920
21222324252627
28293031 

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。