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超入門

blog-page_footer_336




blog-page_footer_336




-Tech
-,

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

CAPTCHA


関連記事

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

はじめに こんにちはsuzukiです。前回に引き続きTerrainの機能を紹介していきます。 Create Neighbor Terrain Paint Terrain(前回はここまで紹介) Pain ...

【iOS14】App Groups を使用して WidgetKit にデータ共有

はじめに 今回はアプリ側のデータをWidgetKitにて表示を行うために、App Groupsを使用してデータの共有を行いたいと思います。 App Groupsとは簡単にいうと、同一デベロッパーが開発 ...

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

はじめに こんにちは。前回の記事でAndroid MLKitを通じて初めて機械学習に接し、以降も少しずつ学習を続けています。 その記事の最後のあたりで、Tensorflow Liteの独自モデルによる ...

[Flutter]画像のトリミングを簡単に行えるimage_cropperを使ってみる

はじめに 今回は、トリミングなど画像加工を簡単に行えるimage_cropperを使ってみたいと思います。 準備 次のコマンドを使用し、パッケージをインストールします。 [crayon-6ad33db ...

iOS13で申請するために押さえておきたいポイント

はじめに こんにちは、nukkyです。 来年の4月からiOS13での申請が必須になるため、今Xcode10で申請している方もXcode11以上での申請が必要ということで、iOS13で申請するために押さ ...

フォロー

blog-page_side_responsive

2019年7月
日 月 火 水 木 金 土
 123456
78910111213
14151617181920
21222324252627
28293031  

アプリ情報

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