SQLiteを使って外部サーバー格納まで
さてプログラミング。結婚式準備と出張の合間を縫ってなるべくコードに触るようにしていましたが、ちょと離れちゃってました。この2週間考えてたこと。
やりたいこと
1)ログデータを一旦ローカル(アプリに割り振られた携帯のメモリ)に格納する
ログ計測をする上で、常にネットに繋がっている環境でアプリを開いているとは限りません。例えば、飛行機でゲームしているなどです。その場合は、一旦ローカルに計測ログを格納しなくてはいけません。
流れ:ログ計測 -> SQLiteに格納
2)ローカルに格納したログデータをまとめてサーバーに送る
ネットが繋がったときに、格納していたログデータをサーバーにまとめて送る必要があります。
流れ:SQLiteのデータをJSONに変換 -> PHPに送りSQLでサーバーに格納
前提
ここでは、webviewをつかった、ブラウザアプリを想定します。
実装
1)ログ計測 -> SQLiteに格納
前回使ったSQLラッパーのSwiftDataを使って、SQLite(アプリ内に作れるデータベース)にログデータを格納します。
Printlnで、コンソールに常にステータスが出るようにしています。うまくデータベースを見つけて、以下のように表示されます。
2)SQLiteのデータをJSONに変換 -> PHPに送りSQLでサーバーに格納
結果
データベースに格納されたことが確認できました。
改善点
現状では、サーバーに送られたデータもローカルに残ってしまうので、
- 同じデータが何度も送られてしまう
- ローカルで使うメモリ量が大きくなってしまう
問題点があります。よって、改善点として、以下のように、もう一つ条件を追加する必要があります。
雑感
どんどんプログラミングが長くなってくると、以下2点が重要だなと感じています。
- 変数名をどう定義するか
- 全体の設計図をまず考える
なんだかプログラマーぽいです。ブログをあまり更新できてなかったので今日は大奮発、3つ投稿しました。
金曜日から旅行でタイへ行ってきます。バンコクで起業している日本人の友人ともキャッチアップできたらです。では、おやすみなさい。