クラウドジャーナル[CloudJournal]

<アプリの簡単な紹介と目次[Outline]>

※本ブログは6月末で他サイトに移設する予定です。これまで閲覧ありがとうございました。

[note] this blog is planed to be moved to other site until end of June. See you in there

Googleカレンダをヒミツの日記として利用できるアプリです。

Googleカレンダは、大変便利でいろいろな情報をクラウド化できる可能性を秘めています。端末とのアクセス経路もhttpsで暗号化されていて安心なのですが、情報の内容によっては、いかにセキュリティのしっかりしたクラウドであっても、生データを置くのはやはり心配です。例えば、会社業務に関するもの、個人的な日記、暗証番号リスト、パスワードや個人情報など、いろいろ考えられます。

かといってPCやケータイのみに保存する方法だと壊れたり無くしたりしたときが心配。

こういった問題を解決するための提案になればと思って開発しました。

本アプリは端末で暗号化した日記データを端末内のカレンダイベントとして保存します。端末が元々備えているデータ同期機能によってGoogleカレンダと同期されます。

端末を無くしたり盗難にあった場合には、大元のデータを、バックアップをとって消すなり、
異なるアカウントへ移動するなどすれば安全です
[this app. allows you to use google calendar as secure journal. Even password, account number, private info. can be stored at google calendar on your android device. If your android device has function that synchronizing to the google calendar(as cloud DB), your data automatically go to the cloud, so you can stop worring about lost your data.]




当然のことですが、PCから普通には見れなくなります。本アプリを使って復元するか、別の方法で復号化する必要があります
[Note that data that the app. encrypted cannot be decrypted in normal way. You have to decrypt the data by this app. Backup recommended.]

<特長[features]>
<使い方[usages]>
<表示の種類[view]>
<メニュ[menu]>
<設定[settings]>
<OS版数、動作確認端末など[supprt OS, test device]>
<制限および注意[constraints and cautions]>

©2010-2011 KrasavKana

<特長>


◆特長①
 強力なクラウドの1つであるGoogleカレンダをヒミツの日記やメモとして利用できます

Googleカレンダは、大変便利でいろいろな情報をクラウド化できる可能性を秘めています。端末とのアクセス経路もhttpsで暗号化されていて安心なのですが、情報の内容によっては、いかにセキュリティのしっかりしたクラウドであっても、生データを置くのはやはり心配です。例えば、会社業務に関するもの、個人的な日記、暗証番号リスト、パスワードや個人情報など、いろいろ考えられます。
本アプリは端末で暗号化した日記データを端末内のカレンダイベントとして保存します。端末が元々備えているデータ同期機能によってGoogleカレンダと同期されます。
端末を無くしたり盗難にあった場合には、大元のデータを、バックアップをとって消すなり、異なるアカウントへ移動するなどすれば安全です。



◆特長② 復号化のためのパスコードに有効期限を設けています。


端末を無くしたり盗難にあった場合、大元のデータはgoogleカレンダに残っていますので安心ですが、同時に端末内にも残っており、パスコードが有効なままになっていると重要情報が参照されてしまう危険があります。本アプリではパスコードに有効期限を設け一定時間がたつとパスコードを一旦リセットしないと次に進めないようにしています。パスコードは本人または関係者しか知りませんので再設定はほぼ不可能です。
[passcode expire mechanism. When expire time come, unless correct
passcode for confirm is set, the app. won't work.]


©2010-2011 KrasavKana
<使い方[usage]>

<準備[ready]>



PC:
PCにてあらかじめ本アプリ専用のカレンダ(ここでは「secret」とします)をgoogleカレンダアカウントに1つ追加しておきます。本アプリは「secret」に日記データを暗号化して保存します。
[you should reserve a calendar for this app. on google account.]



★注意[caution]
 本アプリの日記データはタイトルと本文から成っています。タイトル・本文それぞれを暗号化する/しないが設定できます
[journal data on the app. consists of title and content. you can
control to encrypt each.]


★注意[caution]
 暗号化されたイベントがどんなものか確かめたい場合は、
①(端末の内部カレンダやネット上のカレンダで)専用指定したカレンダを表示モードにする
②日記データを作成した日付の午前0時から午前0時までの時間幅0のイベントを調べる
で可能です。


★注意[caution]
 クラウドDB(内部カレンダDBのこと)を使わないで端末内部に専用DBを作成することもできます。その場合、(未リリースですが近日公開しますツールを使って)専用DBをSDカード等にこまめにバックアップしてください。クラウドDBと専用DBの切り替えは可能ですが、相互乗り入れは現在できません。切り替えは設定画面で行えます


<日記帳の新規作成[create a journal book]>



端末:
(android端末で)本アプリを起動すると、起動日の「日付」の「日記リスト画面」が現れます。「メニュ」「日記帳」を選択すると「日記帳リスト画面」になります。
[Launching the app., jounal list view will be appeared on the present
day. On menu-book list, you can go to journal book list view]


「メニュ」「追加」で「日記帳編集画面」にしてから、日記帳の名前や概要、暗号化復号化のためのパスコード等を編集・設定して保存ボタンをタッチします。「日記帳リスト画面」に戻ると日記帳データが新規作成できています。
[On menu-add, go to journal book edit view, you can edit the title of
book, content, passcode for encrypt and decrpt, font color, and
font size, touch(or push) save button.]


★注意[caution] 日記帳の名前は、Googleカレンダの名前と照合して、日記データの読み書きの際に(暗号化複合化パスコード等を)利用しますので、注意してください。
★注意[caution] 日記帳のパスコードはあとからでも変更できますが、既に暗号化してしまった日記データ等は自動で切り替わりませんので注意してください。
★注意[caution] 日記帳のパスコードの初期データは「追加時」のメインパスコード(設定画面で設定したパスコード)にしています。日記帳データの編集画面では、パスコード欄の右にトグルボタンが用意してあります。ドット文字で隠す/隠さない、が切り替わりますので、正しいパスコードが設定されているか確認してください。


<日記の新規作成[create a journal]>



端末:
(android端末で)本アプリを起動すると、起動日の「日付」の「日記リスト画面」が現れます。
[Launching the app., jounal list view will be appeared on the present
day.]


下段のボタン(左から、前方向スキップボタン・前日移動ボタン・日付指定ボタン・翌日移動ボタン・後方向スキップボタン)を使って、日記データを作成したい日付に移動します。
[Using navigation buttons on view bottom, go to date that you want to
create or edit journals.]


「メニュ」「追加」で「日記編集画面」にしてから、タイトルや本文を編集して保存ボタンをタッチします。「日記リスト画面」に戻ると日記データが新規作成できています。このとき端末の内部カレンダDBには、暗号化された内容が保存されています。同期機能によりgoogleにあるカレンダデータと同期されます。
[On menu-add for create or touching one of the journal list to edit,
go to journal view, you can edit title, content, encrypt mode, book.]


★注意[caution] (専用DBではなく)クラウドDBを利用するモードのとき、日記データはカレンダイベントとして作成・参照・更新しています。新規作成の場合、その日付の午前0時から午前0時までの長さ0時間のイベントして作成します。
また、アプリ起動日から3年以前より前、および3年以降より後の日付の日記データは作成・参照できない仕様にしていますので注意願います。
★注意[caution] 本アプリを使って他のアカウントで作成した日記データ(イベント)であっても、(アカウント指定方式の共有)カレンダのイベントであれば、異なるアカウントの端末でも参照可能のようです。
例えば企業の業務に関する情報のような、クラウド化したいが生データのまま置くのはちょっとという情報を共有することが可能となります。
ちなみに、そのような日記データ(イベント)は権限チェックを従い原則作成更新しないようにしています。
「オーナー」権限および「予定の変更」権限のあるカレンダのイベントのみ作成および変更できるようにしています。

★注意[caution] 本アプリで一旦作成したイベント(日記)を削除する機能は、本アプリ自体にはありません(削除したように見せかけるやり方はインプリする予定です)。こうしたイベント削除はPCや端末搭載の標準アプリ等で行ってください。またバグにより既存イベントが誤って変更されてしまうかも知れませんので、
こまめにバックアップをとるようにしてください。


<既存の日記の編集・更新[edit a jounal]>


端末:(android端末で)本アプリを起動して、下段のボタンを使って「日付」(タイトルバーに出ます)を変更しながら既存の「日記リスト画面」に移動します。更新したいタイトルをタッチして「日記編集画面」にしてからタイトルや本文等(日記帳、暗号化モード、日付も変えられます)を編集し保存ボタンをタッチして日記データを更新します。正常に更新されると(指定した日付の)「日記リスト画面」に戻ります
[Launching the app., jounal list view will be appeared on the present
day. Touching one of the journal list to edit, go to journal view,
you can edit title, content, encrypt mode, book.]

★注意[caution] 暗号化したパスコードと復号化するパスワードが違っていると暗号化したままの文字列が出てきます。その場合には、パスコードを見直してみてください。

<PCと連携した日記の新規作成[create a journal using PC]>


PC:(PCで)専用カレンダにイベント(日記)を作成します。開始時刻や終了時刻に制限はありません(「終日」でないこと、24時間未満の時間幅であること、の制限はあります)。
[On PC, create a calendar event. No limitation of start time,
end time, but AllDay event not permitted.]

このとき、他のイベントと区別するために、場所欄に、

[encrypted_N_0]

の文字列を入れておきます。
[Note that you have to put the following chars in the eventLocation,
so that the app. can think this should be my data on traversing
google calendar DB on your device.

[encrypted_N_0]

]

端末:(android端末で)本アプリを起動して、上記イベントの「日付」に移動します。場所欄の文字列が正しく設定されていれば、上記イベントのタイトルが「日記リスト画面」内に出ているはずです。タイトルをタッチして「日記編集画面」にして所望の暗号化オプションになっていることを確認して保存ボタンをタッチします。するとイベント(日記)が暗号化されます。
[Launch the app., go to date that you created a calendar event
above, you can find the title on the journal list view if the
above work set correctly. You select encrpt mode and touch
save button]

★注意[caution] このとき、(PCで設定した)場所欄の文字列は、
[encrypted_B_0] ← タイトルおよび本文の暗号化
[encrypted_T_0] ← タイトルのみ暗号化
[encrypted_C_0] ← 本文のみ暗号化
[encrypted_N_0] ← 暗号化なし
[deleted_?_0] ← 削除された目印(未インプリ)
のいずれかに(暗号化オプションにしたがって)変更されます。
[After encrypt the event, the chars on the eventLocation on PC shoule
be changed according to encryt mode.]
この仕組みがあるので、本アプリで暗号化したデータを保存するGoogleカレンダが専用カレンダでなければならない理由はなく、通常のカレンダのイベントとして(場所欄だけ特別な細工をして)作成してやれば過不足なく暗号化できることがわかると思います。


★注意[caution] PCのデータが端末の内部カレンダに同期するまで時間がかかることがあります。同期が完了しないとうまく処理できませんので注意してください

©2010-2011 KrasavKana
<表示の種類[view]>

画面はヘルプ画面、設定画面のほかに3種類あります 。

[日記リスト画面[journal list view]]



起動した日の日記データリストを表示する画面です。画面内のボタンにて、起動時の日付の日記データリストを参照することが可能です。
[this view is showing journal article list of a day. Using buttons of the view, the date can be changed.]

 ★注意[caution] タイトルバーに表示される記号等の意味
 yyyy/mm/dd:日記データリストの日付を示します[the date of the list]
 NNmin:「パスコードの確認」なしに操作できる残り有効時間(分)を示します。有効期限はパスコード設定後から60分後です(つまり有効期間は60分間)。有効期限が来ると「メニュ」「パスコードの確認」をリセットしない限り次に進めませんので注意してください。有効期限前に「メニュ」「パスコードの確認」を再設定すると、そこから60分間有効になります。有効期間は「メニュ」で変更できます
[expire interval(in minutes) that the next passcode confirm message comes. the interval is 60 min in default. Within the interval, the passcode can be changed]

 [G]:クラウドDB(googleカレンダ)を使用するモードを示します。専用DBを使用する場合は出ません
[this shows that you are using the cloud DB(google calendar).]


 ★注意[caution] 日記データは画面に表示されるときには復号化されています。日記データを端末内カレンダに保存する直前に暗号化します。設定オプションによっては暗号化しないまま保存しますので必ず注意してください

 ★注意 パスコードが設定されて
いない場合、「パスコードが確認できません」のメッセージが出て、イベントの作成・参照・更新ができません。最初の起動時には、特に気をつけてください。

 ★注意 パスコードが設定されていても、既存イベントが復号化できない場合があります(パスコードを変更した場合やPCで内容を変更した場合など)。その場合「パスコードが違います」のメッセージを出力するか、タイトルや本文に意味不明の文字列が表示されます。パスコードを適切なものに設定し直すか、PC等でイベントそのものを削除するなりしてください

[日記編集画面[journal edit view]]



日記データの編集画面です。日記データ(タイトルおよび本文)のほかに、日記帳名、日付指定、暗号化モードの指定ができます。
[this view is edit view of a journal article. As well as title and description, journal book, date, encrypt mode can be set here.]

[日記帳リスト画面[journal book list view]]


日記帳の名前のリストを表示します。名前の左にチェックボックスがあります。チェックのついていない日記帳に紐付け(日記データ作成時に指定する日記帳名を指定すること)した日記データは表示しないので注意してください。
[Journal book list. Checkboxes of each book control whether its articles in journal article list view.]

[日記帳編集画面[journal book edit view]]


日記帳に関する各種情報を表示します。
[showing the info. about journal book]

 ★注意[caution] パスコードの初期値は、アプリの「設定」「パスコード」で入力したものが設定されていますので適当に変更してください。4文字に満たない場合はエラーとなります。名前や概要の他、文字の大きさや文字サイズ、パスコードが設定できます
[passcode in default derived from the passcode that you typed in settings(menu). passcode needs no less than 4 chars]

©2010-2011 KrasavKana
<メニュ[Menu]>

<日記リスト画面[journal list view]>


メニュ[menu]

[追加[add]]:日記データを新規作成します[create a journal]
[日記帳[book]]:「日記帳リスト画面」に移動します[go to journal book view]
[終了[finish]]:アプリを終了します
[設定[settings]]:「設定画面」に移動します
[ヘルプ[help]]:「ヘルプ画面」に移動します
[アプリについて[about]]:アプリの更新履歴情報を表示します
[はじめに[get started]]:アプリの更新直後に注意していただきたい項目を表示します

ロングタッチ[context menu]

[削除[delete]]:日記データを削除します(クラウドDB使用時は未インプリ)[delete selected journal(not in cloud DB mode)]

<日記帳リスト画面[journal book view]>


メニュ[menu]

[追加[add]]:日記帳データを新規作成します[create a journal book]
[設定[settings]]:「設定画面」に移動します
[ヘルプ[help]]:「ヘルプ画面」に移動します

ロングタッチ[context menu]

[編集[edit]]:日記帳データを編集します[edit selected journal book]
[消去[clear]]:日記帳およびその日記帳に登録した日記データを削除します(クラウドDB使用時は未インプリ)[delete selected journal book and journal data(not in cloud DB mode)]

©2010-2011 KrasavKana
<メニュ[Menu]>

<日記リスト画面[journal list view]>


メニュ[menu]

[追加[add]]:日記データを新規作成します[create a journal]
[日記帳[book]]:「日記帳リスト画面」に移動します[go to journal book view]
[終了[finish]]:アプリを終了します
[設定[settings]]:「設定画面」に移動します
[ヘルプ[help]]:「ヘルプ画面」に移動します
[アプリについて[about]]:アプリの更新履歴情報を表示します
[はじめに[get started]]:アプリの更新直後に注意していただきたい項目を表示します

ロングタッチ[context menu]

[削除[delete]]:日記データを削除します(クラウドDB使用時は未インプリ)[delete selected journal(not in cloud DB mode)]

<日記帳リスト画面[journal book view]>


メニュ[menu]

[追加[add]]:日記帳データを新規作成します[create a journal book]
[設定[settings]]:「設定画面」に移動します
[ヘルプ[help]]:「ヘルプ画面」に移動します

ロングタッチ[context menu]

[編集[edit]]:日記帳データを編集します[edit selected journal book]
[消去[clear]]:日記帳およびその日記帳に登録した日記データを削除します(クラウドDB使用時は未インプリ)[delete selected journal book and journal data(not in cloud DB mode)]

©2010-2011 KrasavKana

<設定[settings]>

設定画面からアプリの挙動をいろいろ変更することができます。
[you can change how the app. works with the settings as follows]


<パスコードに関する設定[passcode settings]>

[パスコード[passcode]]:パスコードを設定します。
(本アプリ内だけの話ですが)アプリ操作に関するパスコードを設定します。設定がない場合や設定があっても4文字未満の場合やパスコードの確認ができていない場合には、イベントの作成・参照・更新できない旨メッセージをだします(省略値:設定なし)
[passcode needs no less than 4 chars, and passcode confirm input]

★注意[caution] 安全のため設定した文字がみえないようにしていますので、忘れないようにしてください。

★注意[caution] 有効期限が過ぎると「パスコードの確認」で適切なパスコードを設定しないとほとんどの操作が制限されますので、忘れないようにしてください。またパスコードの変更やリセット自体もできなくなっていますので注意してください(パスコードの確認ができれば変更・リセットができるようになります)。

android:key="passcode_key"
android:defaultValue=""



[パスコードの確認[passcode confirm]]:
確認用パスコードを設定します。
パスコードと一致するか照合し、パスコードが(誤入力されたものでなく)所望のものであるかチェックします(省略値:設定なし)

★注意[caution] 安全のため設定した文字がみえないようにしています。

android:key="passcode_confirm_key"
android:defaultValue=""


[有効期限[expire interval]]:パスコードの有効期限を設定します。
ここで設定した有効期限を過ぎると本アプリのほとんどの操作ができなくなります。
「パスコードの確認」で適切なパスコードが確認できれば解除されます(省略値:60分)
android:key="passcode_expire_key"
android:defaultValue="60"

<表示の設定[view settings]>

①文字色
②フォントサイズ
③背景柄
を変更するときに使います。それぞれ選択リストから選択します
[font color, font size, background texture can be set here]

android:key="color_key"
android:defaultValue="000080"
android:key="fontsize_key"
android:defaultValue="24"
android:key="texture_key"
android:defaultValue="marble"

<共通の設定[common settings]>

[警告メッセージ[warning messages]]:「日記がありません」等の警告メッセージを出すかどうか設定します。
本オプションで
   On:警告メッセージを出す。
   Off:警告メッセージを出さない。
を指定します。チェックボックスでOn/Offします(省略値:On)
[set whether issue warning messages or not.]

android:key="verbose_key"
android:defaultValue="true"


[日付形式[date format]]:
タイトルバーの日付の表示形式を選択します
[set date format in title bar.]

android:key="dateformat_key"
android:defaultValue="yyyy/MM/dd"

<クラウドに関する設定[cloud settings]>



[クラウドDB[cloud DB]]:
クラウドDB(googleカレンダと同期する端末内部DB)を使用するか、専用DBを使用するか設定します。
本オプションで
   On:クラウドDBを使用する
   Off:クラウドDBを使用しない(専用DBを使用する)
を指定します。チェックボックスでOn/Offします(省略値:On)
[set whether use cloud DB(google calendar) or dedicated internal DB]

★注意[caution] クラウドDBと専用DBの相互乗り入れは行いません。
[data cannot be transfered each DBs in the app.]

android:key="external_db_key"
android:defaultValue="true"


[文字数制限[limit of chars]]:文字数制限を設定します。
googleカレンダの現在の仕様?では8273バイトを越えるとカレンダに保存されない(途中で切れます。切れた状態では復号化できません)ようですので、暗号化の結果これを越える場合にはデータが長すぎる旨メッセージを出します。
本制限は本文を想定したものですが、タイトルでも文字数チェックを行っています。(省略値:8273)
[set limitation of chars on cloud DB mode. Currently more than
8273 chars(bytes?) cannot be stored as a google calendar event.
When encrypted contents has more than 8273 bytes, the app. dont
encrypt or save to DB.]

android:key="limit_key"
android:defaultValue="8273"


 ★注意[caution] フォントサイズは8sp,10sp,12sp,14sp,16sp,18sp,20sp,24sp,36sp,48sp,64sp,96sp,192sp,288sp, 384sp
から選択できます
[font size can be selected among above.]

 ★注意[caution] 文字色は基本16色から選択できるようにしています。
   ■●white◆▲
   ■●yellow◆▲
   ■●olive◆▲
   ■●red◆▲
   ■●maroon◆▲
   ■●aqua◆▲
   ■●blue◆▲
   ■●navy◆▲
   ■●lime◆▲
   ■●teal◆▲
   ■●green◆▲
   ■●fuchsia◆▲
   ■●purple◆▲
   ■●silver◆▲
   ■●gray◆▲
   ■●black◆▲
[font color can be selected among above.]

©2010-2011 KrasavKana

<制限および注意[constraints and cautions]>

 ★注意[caution] メインパスコードを忘れるとパスコード確認できるまで、
・「メニュ」「設定」画面のパスコード以外の設定
・「メニュ」「終了」「ヘルプ」「アプリについて」
以外の操作は(日付変更ボタン等を含め)行えなくなりますので注意してください。
[When passcode expired, and if you couldnt remember what you typed as passcode, you cannot handle most function of the app. except to invoke MENU, invoke FINISH, to view HELP doc., to view ABOUT doc.]

 ★注意[caution] タイムゾーンを端末設定値からとっています。クラウドDB(googleカレンダ)のタイムゾーンと端末設定のそれにずれがあるとうまく動作しない可能性があります。その場合日記データが前日や翌日に現れると思いますので注意してください
[the app. getting timezone from device settings, so if there is difference between google calendar' timezone and device's one, journal list view may not work well. In case of that, check the day after or before the journal view date.]

 ★注意[caution] 本アプリはイベント作成および更新はできますが、削除する機能がありません(専用DBの場合は可能)。PCや端末の標準カレンダで削除してください。
[the app. doesnt have delete function about journal articles. If want to, delete them using PC or other standard calendar app.]

 ★注意[caution] 本アプリはイベント更新の際バグ等により既存のイベントを壊してしまう可能性もゼロではありませんので、PC等でバックアップをとるようにしてください。
[there is possibilities where the app. destroy events on your calendar DB, so backup them.]

 ★注意[caution] googleカレンダと同期する機能の標準搭載されていない機種では同期できません。おそらくそういった機種の場合同期のためのバッファの役割をする内部カレンダデータベースもないのかも知れません。

 ★注意[caution] 本アプリは、android端末内のgoogleカレンダに関する仕様変更やAPIに関する仕様変更により突然動作しなくなる
可能性があります(仕様が非公開なため仕様変更のアナウンスもない)。
[there is possibilities where the app. does not work normally because of spec. update of google calendar and API.]

 ★注意[caution] 本アプリの利用により生じたいかなる損害についても、アプリ作成者およびアプリ提供者は一切責任を負いません
[the developper and deliver of the app. has no responsibilities for any damage cause of use.]

<OS版数、動作確認端末など[OS, tested devices]>

対象端末[support OS and versions] Android1.6 and up
テストADS[virtual device for test] Android1.6 Level4 with sdcard
実機動作確認端末[real device for test] Xperia SO01B (OS 2.1)

©2010-2011 KrasavKana