シリコンバレーのマーケター日記

東京、シンガポールを経てシリコンバレーで働く、マーケター。英語、プログラミング、データ分析は次世代マーケターの必須スキルだと信じて進む。

SQLiteを使って外部サーバー格納まで

さてプログラミング。結婚式準備と出張の合間を縫ってなるべくコードに触るようにしていましたが、ちょと離れちゃってました。この2週間考えてたこと。

 

やりたいこと

1)ログデータを一旦ローカル(アプリに割り振られた携帯のメモリ)に格納する

ログ計測をする上で、常にネットに繋がっている環境でアプリを開いているとは限りません。例えば、飛行機でゲームしているなどです。その場合は、一旦ローカルに計測ログを格納しなくてはいけません。

流れ:ログ計測 -> SQLiteに格納

2)ローカルに格納したログデータをまとめてサーバーに送る

ネットが繋がったときに、格納していたログデータをサーバーにまとめて送る必要があります。

流れ:SQLiteのデータをJSONに変換 -> PHPに送りSQLでサーバーに格納

 

前提

ここでは、webviewをつかった、ブラウザアプリを想定します。

 

実装

1)ログ計測 -> SQLiteに格納

前回使ったSQLラッパーのSwiftDataを使って、SQLite(アプリ内に作れるデータベース)にログデータを格納します。

Printlnで、コンソールに常にステータスが出るようにしています。うまくデータベースを見つけて、以下のように表示されます。

f:id:yuyutata:20150723005310p:plain

2)SQLiteのデータをJSONに変換 -> PHPに送りSQLでサーバーに格納

 

結果

データベースに格納されたことが確認できました。

f:id:yuyutata:20150723005824p:plain

 

改善点 

現状では、サーバーに送られたデータもローカルに残ってしまうので、

  1. 同じデータが何度も送られてしまう
  2. ローカルで使うメモリ量が大きくなってしまう

問題点があります。よって、改善点として、以下のように、もう一つ条件を追加する必要があります。

f:id:yuyutata:20150723011320p:plain

 

雑感

どんどんプログラミングが長くなってくると、以下2点が重要だなと感じています。

  1. 変数名をどう定義するか
  2. 全体の設計図をまず考える

なんだかプログラマーぽいです。ブログをあまり更新できてなかったので今日は大奮発、3つ投稿しました。

金曜日から旅行でタイへ行ってきます。バンコクで起業している日本人の友人ともキャッチアップできたらです。では、おやすみなさい。