Androidアプリ『スナップショット家計簿 - 金澤小遣帳』のデータをPCで(無理やり)読み込んでみた

 超便利アプリ『スナップショット家計簿 - 金澤小遣帳』 は入力したデータをPCにエクスポートする機能が備わってないという残念仕様だけど、バックアップデータの拡張子を ".zip" に変えて展開してやれば SQLite3 でそのまま読める、というメモ。

 

 ぼくが使ってるのは Android (Xperia SX) で、iPhone アプリだとまた話が変わってくるかもしれない。

 具体的な方法は

 

  1. Android 端末にファイルマネージャー入れてないなら Google Play から適当なのをインストールしておく。
  2. 『スナップショット家計簿 - 金澤小遣帳』の「家計簿データのバックアップ」機能でバックアップファイルを生成する。photomoneyYYYYMMDD.smt (YYYYMMDDは作成日付)というファイルが端末内に生成されるはず。
  3.  生成された .smt ファイルをPCに転送する(面倒くさければ .smt ファイルを gmail に添付して自分宛に送りつけてPCで開くとか)。
  4. PC上で、持ってきたバックアップファイルの拡張子を .zip に変更して展開する。

    ↑ここがキモで、 .smt という見慣れない拡張子のファイルだけど実体はただの zip 圧縮ファイルなので、拡張子変えるだけであっさり展開できる*1
     
  5. 展開されると中身に data/data/com.smart_ishikawa001.photomoney/databases/photomoney.db というファイルがあるので、これを SQLite3 で開くとデータベースの中身が丸見え。

 

 Windowsユーザーなら SQLite の Web サイトからバイナリをダウンロードして来ればOK。その場合、データーベースの中身は utf8 でそのまま Windows のコマンドプロンプトから sqlite3.exe で開くと日本語文字列が盛大に文字化けするので、"chcp 65001"しておくと吉。

 csvじゃなくて生のままのデータベースそのものなので SQL クエリ考える手間はかかるけど、逆に言えばアプリが持ってるはずのデータは全部入ってるとも言える。当初の「せっかく入力して溜め込んだデータをどこにも持ち出せない」状態からは大幅に幸せになれるんじゃないかと。

 

 『スナップショット家計簿 - 金澤小遣帳』、レシートを撮影するだけで文字認識してデータをとり込んでくれる、という触れ込みの有料の家計簿アプリで、最初は「そんなに文字認識がうまく行くもんかねー」と高をくくっていたんだけど、使ってみると面白いくらい正確に読み取ってくれてびっくりした*2

 でも、それほどデータの入力側の機能が神懸っているにもかかわらず、逆にデータの出力側の機能が皆無というのは、あまりにも残念な欠陥仕様だと思うんだよなあ。というか、データをどこにも持ち出せないならどんなに入力が便利でも継続して使用する気になれない。

 Google Play のユーザーレビュー欄を見てみたら、「 みなさん言ってますけど、CSVか何かでPCで利用できる形でアウトプットできると最高ですね。」みたいな感想がたくさんあるので、アプリ製作者側で対応して欲しいところではあるけど、まあそれまでの繋ぎとして上記の手法が役に立つかもというお話でした。

 

*1:バイナリエディタで開いてみたら 'PK34 〜'で始まっていたのでZIPとわかった。

*2:例えば「TVお米風粒こんにゃく」とか「イオン農場大根1/2」とか、一字一句間違えず認識されて感動的ですらある。特に大根が  "112" とか "1|2" とかにならずにちゃんと "1/2" という分数表記になってるのはすげえと思った。