開発開始から1ヶ月、KuroNote における開発で予想以上に大変だったこと
product Life Software

開発開始から1ヶ月、KuroNote における開発で予想以上に大変だったこと

今回は、ちょうど開発から1ヶ月が経過し、開発も終盤にさしかかってきた KuroNote & KuroNotes。その中で開発中の大変だったこと、製品の特徴を実装する上で、困った事や具体的な問題などの紹介記事となりますが、なるべく専門用語は除外し分かりやすく説明したいと思います。


ちょうど一ヶ月前に、シンプルで高速なメモアプリの開発をしようと思い立ち、基本的な仕様については前回の記事で説明をしたのですが、高速メモ自体は難易度は高くなかったものの、その中にゼロトラスト(機密保持の方法)での実装の件について、ようするに本人以外は「アプリの製作者」も「ハッカー」も、「データを記録するサーバー」すら中身がみれないメモというのを目指すと書いた機能が、予想以上に大変でした。

一番悩みまくったユーザーのミスへの対応#

何が大変って、機能そのものよりもその機能が持つ特徴故のヒューマンエラーなどの運用に対する対処でした。例えば「ユーザーが間違ってアプリをアンインストールして、データが消える」というミスなどです。普通のアプリであれば、サーバーにデータを保管しアカウントの復元で解決できますが、この KuroNote単体では無料で永久に利用するために、データをサーバーに持たせず、スマホですべてを完結させる必要があります。

しかし、その端末の中ですらデータは暗号化されており、そもそもアプリをアンインストールすると、問答無用でアプリは消去されます。スマホの挙動としては正しいのですが、KuroNote みたいな重要なデータを扱うアプリだと大問題です。そこでデータ維持の方法をどうするかには、本当に悩みまくりましたが、実際にはアプリのアンインストールに特別な確認画面を出す事もできないため、ほとんど方法がありませんでした。

対処法:個人が契約しているクラウドストレージにデータを保存する。

そう、もうどうやったって、アプリのアンインストールされたらデータは消えるので、他にデータを保存するしかない。KuroNotes の契約が難しい人向けには、その人がすでに契約しているクラウドストレージを使うしかないというアプローチになりました。それでも暗号鍵はアプリが消去されると、クラウドに保存したメモは見れなくなるので、あまり意味がありませんが、パスキーに暗号鍵が一緒に保存されているスマホであればメール登録しておくことで、復旧できる可能性が残ります。またクラウドでのデータ保存を暗号化せずに保存すれば、再インストールでもデータは復旧できる形となりますが、KuroNote/KuroNotes の目標である、サーバー会社すら内容を確認できないという形はとれず、さらにはクラウドのデータが漏洩したときも平文で読まれてしまう危険は残ります。ここはアプリの目的より個人の選択に任せる事にしました。

正直にいえばこの「暗号化なし」はやりたくない。安全なデータ保護を売りにしているのに、クラウドストレージ側からは見放題ですし、複雑な google のシステムを適切に使いこなせる人は少ないと思うからです。ユーザーが google の設定を間違えて公開していたとか普通にありそうで・・。しかしデータが消えてしまうことも減らしたい・・、うーん。文房具店でメモ帳を買って、メモ帳を無くしてもメモ帳の会社に文句を言う人はいませんが、これがアプリだと自分でアプリをアンインストールしたのに、消えた!と文句を言う人がいるので、少しでも可能性を下げるしかありません。

スマホを無くした・壊してしまった場合の対応#

次の問題は、スマホを無くしてしまった場合や壊れて機種変更する場合です。正直、スマホにしか入っていない情報をスマホがない状態で復旧するのは、当たり前ですが不可能です。アンインストールと一緒です。そこで上記と同じクラウドストレージが使えます。もちろんサーバーにデータを保存する KuroNotes で契約しておいた方が、シンプルですし構造的にも一番安心です。復旧へのレジリエンス(復元力)が大きく向上します。しかし自分のメモ帳に100円も払いたくない人も多いはずで、そのためには上記のようにクラウドストレージに保存してもらうしかありません。紛失についても機種変更でもスマホの中にデータがあるので外部のクラウドストレージ接続、又はKuroNotes契約をしないとデータの移行はできません。無料のスマホ版 KuroNote だけではどうしても限界があります。

クラウド契約もない人はどうなるか?#

こればかりは、もうどうしようもありません。重要な記録の手帳を無くした時と同じで、重要だからこと取り扱いに注意することが一番の安全策でもあります。ただ今どきのスマホユーザーであれば、下記の理由でクラウドストレージの契約者は意外と多いのではと思っています。とりあえず、クラウド(ローカル接続含む)接続の数をそろえてユーザーに外部保存してもらうしかないので、接続方式はかなり多くの対応を行いました。

クラウドストレージ名
KuroNote対応
理由など
Google Drive
対応
gmail を使っている人なら、まず自動的に契約されている。無料枠でも広いが、写真や動画が多い人なら400円前後の最低金額だけの有料契約者も多い。
Microsoft OneDrive
対応
Excel や Word などを頻繁に使っている場合、Office 365 などの契約をしている人も多く、付属の基本ストレージの容量もそれなりに大きい。
Dropbox
対応
クラウドストレージの老舗。安定した速度に、大きな容量が売りでコンピュータに詳しい人や多くのデータを安全に管理したい人なら契約している人が多い。
BOX対応一時期勢いがあったが最近は下火。料金と容量のコスパが悪く敬遠される傾向がある。
WebDAV対応少し古い規格だが、多くのサービスで利用されているWEBストレージの1つ。自分でもサーバーを立ち上げて利用している人も多い。
SMB(Samba)対応ローカル環境専用。Windows共有の別名。家や会社にいるときにしか同期できないけど、無いよりまし。通信規約的にもセキュリティ的にも脆弱で不安は多い。
S3対応Amazon のAWSサービスで提供されるストレージサービス方式。AWSが一時期デファクトスタンダードだったので、S3互換のサービスも多い。
MEGA対応保存データはすべて自動的に暗号化する、ある意味、KuroNote/s の設計と同じで、誰も読めない方式。容量と料金でも一番コスパが良い。マイナーなので一抹の不安。
Apple iCloud
非対応
Apple 製品のみの対応のため、Windows や Android 向けに 開発ツールが存在していない。Android やパソコンで実装ができないので不可能。macユーザーでも gmail 使っている人多いのであまり困らないと思われる。

本当は自分も Apple 系の製品を沢山(全部で10機器ぐらいある)使っているので、iCloud も対応したかったのですが、iPhone は年々価格もあがり、将来的には安い Android に切り替える人が増えそうなことと、現時点の Apple の仕様としても、現状は Android や Windows で使えない為 iCloud は非対応となりました。ちなみに、将来はスマホやパソコンはすべてが AIマシンになると思われるので、スマホやパソコンはハード自身が更にコモディティティ化され成り下がっていくと思われます。

クラウド保存については、暗号化しておかないとクラウドのファイルの内容の閲覧も複製もクラウドストレージの会社(Google, Microsoft, Appleなど)なら自由に出来てしまいます。当然これらの会社がハッキングされデータ漏洩する可能性があるのです。又は悪い社員、そう最近は社員による漏洩事件も多くなっており、大手メーカーだからと言って、全く安心できない世の中になってきました。

KuroNotes(有料のサーバー実装)の方針#

自分のクラウドストレージを持っていない人、及びクラウドストレージとメモは切り分けたい、暗号化を徹底しながらも利便性を落としたくない人のために、また月100円くらいなら出せる人のために専用のクラウドサービスを提供することにしています。KuroNote の画面から課金設定することができ、簡単に導入できます。もちろん、暗号化すればクラウドでも内容を見れませんが、個人的な KuroNotes(サーバー機能)のメリットはサーバーからのブラウザで利用できることです。スマホで長い文章などを入力するのに、正直黒兎のようなアラシックスには無理wです。フリック入力、練習していても全然上手くなる気がしません。さておき、そうなるとパソコンでも入力したい人には、会社や家ではパソコンの拾い画面や使い慣れたキーボードで入力し、出先ではスマホでチェックという連動も使えます。しかしメモ程度とはいえサーバー費や通信費、計算コストなどの負担がかかるため無料にはできません。そこで極力コストを落として日本なら100円(ドルなら $1.00、ユーロなら €1.00)の最低料金での提供するかたちで、使えるようにしました。この金額は将来もずっと固定で行こうと思ってます。理由は終活機能を実装しているためです。

正直今どき、Google Drive や Apple Storage でも最低 400円(2〜3000円ぐらいが平均)ぐらいはするので、100円は格安ですがそれでもサーバー契約できるメリットは大きく、長く使ってもらいたい、また終活機能も利用してもらえるように、その価格となっています。さて、終活機能とはどんなものか簡単に説明します。これはユーザーの遺族への機能で、ユーザーが亡くなりスマホの契約などが解除され、一定の期間がすぎてから最後のメールが決まった人に送られる機能と、予めユーザーが引継指定したメモを、遺族引継コードという、遺族の人向けに引き継ぎたいメモを引き渡せる機能です。

主な終活機能名
概要
最後の1通
契約が解除され、一定期間が経過すると終の期間に切り替わり、生前に登録しておいたメールアドレスに、設定しておいた内容のメールが届く機能。例:「自分の書斎にある引き出しの中に遺族引継コードの紙も入っているので、この url にアクセスして内容を見て欲しい。金庫の番号や資産の一覧なども一緒に入っている。」などの遺言機能。
もちろん、終活機能をOFFにしてから契約解除すれば送られない。
遺族引継コード
ユーザーが自分の死後に遺族に渡したいメモにファミリーマークを付けられ、遺族は最後の1通と遺族引継コードでユーザーが指定したメモを引き出せる。本人の障害時用の回復コードと違い、遺族はファミリーマークのメモだけを、バックアップファイルとして平文で保存することしかできない。

詳しくは KuroNote/KuroNotes のランディングページ(LP)を見て頂くのがよいと思います。

大体なんでこんなアプリを作りたいと思ったのか#

ともかく、記憶力への不安ですね。パスワードを保存したり。そのうえ簡単なパスワードだと google からパスワードが漏洩しています。とかメッセージが来るようになり、パスワードを難しくすると覚えられず、更には同じものを使わないようにしろとか大変すぎます。もちろんスマホに内蔵されてるパスワードマネージャーで解決する問題も多いのですが、パスワードだけでなく個人的な秘密やメモなどはきっと誰にでもあって、自分が死んだら確実に消える仕組みがあったらいいなーと思って開発を始めたわけです。やはりアラシックスになれば終活への備えなどの準備もすこしづつ行わなくてはなりません。自分自身ですら自分の財産の記憶が不明瞭になってしまったりします。整理していたら定期預金の通帳が見つかったとかならいいですが、土地の名義変更忘れや、固定資産税などの管理(後で纏めて請求されないよう)などメモしておかなければ、絶対に忘れますw

画像は自動でデータを小さくして貼ったりできるので、入力するのが面倒な時は写真だけ貼ってメモを作れるのも便利です。音声入力もosの標準機能を使って、音声入力でメモも追記できます。KuroNotes 契約があればスマホとパソコンのブラウザは連動してメモを共有するのでパソコンで入力した情報を、スマホで確認したり、スマホでとりあえず写真で入れておいたメモを覚えている間にパソコンで書き直したりできます。ようするに自分の記憶の補佐役として高速なメモが欲しかったのです。

そして、このアプリを開発していて思った事

当たり前ですが、利便性と安全性は本当にトレードの関係にあって、安全性を上げようとすればするほど、使う時に面倒になっていくという現実です。しかし、KuroNote/KuroNotes では、そのバランスで一番よさげな所に落とし込めてきたと考えています。

心配なのはこのようなツールにバグがあると、後で対応するにしてもかなりの手間がかかる可能性がああり、ちょっと便利なメモ帳を作ろうと思った割りには、大変な労力がかかるアプリとなってしまいました。以前、エンタメ系の会社で勤めていた時には、本当に理不尽なユーザークレームや、些細な説明不足に対して延々と何時間も文句を言ってくる客の対応をした経験があるので、今回はそのようなことがないように、利用規約だけでなく画面内での確認も丁寧すぎるぐらいの再確認をさせるのが正解と確信しています。

それでも、このツールを使って、皆様の生活が便利になってくれれば幸いです。リリースまではもう少し!w



【関係リンク】#

  1. 製品紹介ページ