この記事は mipass というパスワード管理アプリを私がどうやって作っていったかを連載記事にしたものです。連載記事の目次はこちら。
クラウドという言葉が出始めたころ「雲がどうした?」と思いながら、Dropbox 使っていました……。
ここではそんなクラウド「ド素人」開発者が、どのようにクラウド共有を決めたか、その経緯に触れておこうと思います。
技術的な解説は一番最後にある、リンクを参照してください。
とにかく、タダがいい
フリーソフトなんですから、タダというのは重要です。
ただでさえサイト運営や iOS Developer、開発ツールなどで年間数万円飛んでいってるので、これ以上の経費を増やさない事が肝心です。
去年末から Ad を置き始めたのも、そういう切実な理由からです……
しょうじき、つらい
借りてるサーバーのDBを使う?
せっかくサーバーをレンタルしているのですから、MySql データベースに情報を登録するのはどうだろう? と思いました。
ただ、これはすぐに却下しました。その理由は「クリティカルな他人様のデータを、自分の管理するサーバーに置くなんて怖すぎる」ということです。
第一回目で「パスワード管理アプリのデータを管理会社に握られるのが無理」と書きましたが、この方法は自分がその管理会社になってしまう、という事です。
もし、自分だけがアプリを使うならそれでも……と思いましたが、レンタルサーバーが停止したらどうなるでしょう。
果たして私は一生このサーバーを借り続けるでしょうか?
まるで自信がありませんし、そもそも結構作り込んじゃったから一般公開はしたい(笑)
クラウドドライブに保存する
Dropbox、Google Drive、One Drive……。
これらのドライブに保存するアプリは世の中に色々とあります。
これならお金もかかりませんし、なによりドライブのデータ所有者はユーザー(とクラウドサービス会社)であって、私がデータを預かるわけではない、というのが気に入りました。
元々データはローカルでも管理しているため、ローカルとクラウドのデータは Git のようなイメージで、必要な分だけマージする、という手法です。
これはデモ用データですが、一番左の GUID により、データの一意性を確保します。
また、1データずつ更新日付も持っているので、ローカルとクラウドで日付が新しい方を自動的に取り込みます。
日付は NTP サーバーより取得しているので、端末による時間の同期ズレにも対処しています。
オフラインの使用が長かった場合おそらく狂いが出ますが、検出のしようがないので仕様と考えています。
Google Drive を選択
どれから始めてもよかったんですが、一般ユーザーが無料で一番使ってそうなのが Google Drive(というより gmail)じゃないかと思いました。
次点は会社で使ってそうな One Drive でしょうか? 今後のアップデートで他のクラウドにも対応したいと思っています。
「私は安全です」を証明するために……
これが本当に大変でした……。
今考えてみれば当たり前なんですが、これらのクラウドサービス提供会社は「見知らぬアプリに好き勝手させるセキュリティリスクを背負って」提供しているわけです。
そのため、審査はとても厳しいですし、使い方についても色々と指示されます。
正しい利用規約やプライバシーポリシーが必要だ
アプリの使い方を説明するサイトも必要だ
アプリが作成したデータ以外へのアクセスはするな
動画で使い方を丁寧に説明してくれ
こういった話を全て英語で要求されます。それにたいするこちらの答えも当然英語です。
サイトは英文で作る必要がありましたし、動画の説明も英語。
サイトを作るだけでも結構大変なんですが、英語英語づくしなのが本当に大変でした……。
アプリを作るより、大変だったかも
ただ、これらを超えて、警告メッセージが出なくなったのは嬉しかったですね!
技術的なこととか
技術的な部分については別の記事にしていますので、こちらをご覧ください。