LoginSignup
6
11

More than 5 years have passed since last update.

【Monaca】端末にデータを保存する手段に関して【勉強中】

Last updated at Posted at 2015-07-07

引き続き、Monacaについて勉強中です。
備忘録として。。。

直面した問題

Monacaのアプリを使っている時に、オフラインだったらどうするか、という問題に直面し、ローカルにデータを置いておこう、となったので、Monacaでローカルにデータを保存する手段について、考察しました。

手段をしては、主に2つが見つかりました。

Web SQL Database(SQLite)

公式のドキュメント: データベースの利用方法にもありますね。

自分の知識不足で、SQLiteってもの自体も良く分からないのですが、
MySQLだったり、SQL Serverだったりと同じものって印象です。
参考HP

DB作成
CREATE hogehoge (hoge1, hoge2,...);

でDBを作って、

データ作成
INSERT INTO hogehoge VALUES ('a', 'b',...);

でデータを差し込んで、

データ取得
SELECT hoge1, hoge2,... FROM hogehoge WHERE hoge1 = 'a';

でデータを取得するといった流れになるか、と。

使用用途としては、Twitterのタイムラインのように、(投稿者・つぶやき・投稿時間)など、同じ書式のデータを保存しておいて、それをリストとして表示するような時に使えますかね。

沢山のデータを利用するにも、こちらの方が扱いやすいと思います。

Local Storage

公式のドキュメント: Local Storageにありますね。

こちらの方が、より実践的かもしれません。
アシアルブログ

こちらは、文字列(key)と値(item)を一対一で対応させる形式ですね。

使用用途としては、ユーザー登録の時に入力して頂くメールアドレスなどを保存しておくような形ですか。

データ保存
localStorage.setItem('email', 'hogehoge@hogehoge.ne.jp');

と保存しておくと、

データ取得
var eMail = localStorage.getItem('email');

とする事で、メールアドレスをいつでも引き出す事が出来ます。

単純な文字列だけでなく、オブジェクトや配列等も保存する事が可能なようですね。

結局どっちがいいの?

今回、私が業務として使う分には、SQLiteの方が好ましいです。

理由としては、リストで見せる処理を利用するので、SELECT文で一括処理出来た方が嬉しい、という事。

また、SQL構文を新たに覚える必要が無いってのも大きいですね。
Monacaについて、覚える事が他に多すぎるので。
他にも、DBの設計を考えやすいってのも理由の一つです。

ただ、Local Storageで、オブジェクトも保存出来るという事なので、
APIでJsonを引っ張ってきたデータを展開して、そのままLocalStorageに保存すれば、いちいち加工しなくても良いのでは。。。とも思います笑
ブレブレですね、すみません。

でも、SQLの方がこれまで使ってきた安心感があるので、今回は、SQLiteで。

Monacaの他の投稿

  1. 端末IDの取得方法
  2. Jsonを展開する方法 (こちら、編集途中です・・・;;)

まだまだ、勉強する事が多いですね。
誰かのお役に立てれば。。

6
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
11