Android向け暗号化日記アプリ「クラウドJ2」をGoogle Playにてリリースしました

元々「クラウドジャーナル」という(暗号化)日記アプリをリリースしていますが、暗号化の問題点を改善しつつ、より簡単に始められるようにした「クラウドJ2」を8月1日にGoogle Playにてリリースしました。

store_phone_landscape_color
クラウドJ2 – Google Play の Android アプリ

インストール直後の操作ガイド

以下は、アプリ運用をスムースに始めていただくためのガイドです。インストール直後にこのガイドに従って操作いただくと後戻り少なく運用できると思います。

ざっくりした流れは、最初にパスコードを設定、そのパスコードを元にGoogleカレンダの予定(イベント)の特定フィールド(説明(description))を暗号化するための準備をします。表示された日記リストの中からひとつを選択すれば編集画面になります。暗号化モードを選択して保存すれば、端末の内部カレンダ上で暗号化されます。次に元々端末に備わっている同期機能でクラウド上で暗号化されます。

アプリの操作方法

以下、アプリ上の操作方法です。

  1. メニュ][設定][パスコード]を選択してパスコードを設定します
    store_phone_portrait_settings
  2. パスコードの確認]を選択してパスコード確認を設定します。同じものを入力するだけです。終わったら「戻る」ボタンを押してください
  3. [メニュ][その他][日記帳作成]を選択します。すべてに「了解」または「はい」を選択すればOKです
    store_phone_portrait_book
  4. [メニュ][終了]を選択して一度アプリを終了してください
  5. 再度アプリを起動します
  6. 日記リスト(左)および編集(右)の画面がでます(縦画面では日記リストのみになります)
    store_phone_landscape_color
    store_phone_portrait_color_list
  7. 日記リストの中からひとつ選択すると編集画面にその内容が反映されます
    store_phone_portrait_book日記リストに戻るには「戻る」ボタンを押す。または「横向き」にします
  8. 左下のNone(N)をドロップメニューを選択して暗号化モードを変更するなり、右下のカレンダを変更するなり、左上の日付を変更するなりして、右上の保存ボタンをタッチすると内部カレンダを更新します。端末の同期機能でクラウドの予定(イベント)は自動更新されます。
  1. Go [menu][settings][passcode] then set passcode you’d like.
  2. Go [passcode confirm] then set passcide confirm that you set just above. Touch BACK button.
  3. Go [menu][misc][auto-generate] then go further when encounter dialogs select confirm
  4. Go [menu][finished] then finish the app
  5. Invoke the app
  6. You can see a listview
  7. Select a event in Listview then you can see the contents of the event in Editview
  8. Select crypt-mode with bottom-left popdown, or select other calendar with bottom-right popdown?or select date with top-left button, and when you touch save-button the app update the contents?of the event in internal-calendar-DB. Corresponding data in Google calendar will be updated?with pre-installed sync function of the device.

クラウドデータの一括暗号化/復号化

この操作方法では、一度にひとつの予定(イベント)しか暗号化できません。カレンダの全予定(イベント)を一括暗号化するにはPC上のアプリ(cj2cj2main)を使用します。
[With this method, only one event can be encrypted at a time. ?If you want all events of calendar encrypted, you need to use other exclusive app on PC]

Gカレンダ暗号化/復号化一括処理ツール[cj2cj2main]については、こちらを参照してください。

詳細はサポートページを参照してください。
[Pls refer to the web page above for more info.]

目次

使い方 | クラウドJ2
表示 | クラウドJ2
メニュ | クラウドJ2
設定 | クラウドJ2
制限および注意 | クラウドJ2
今回の変更点と改版履歴 | クラウドJ2

関連する記事・ページ

Android向け暗号化日記アプリ「クラウドJ2」をGoogle Playにてリリースしました
無料Androidアプリ「10秒で10年日記 逆さ日記帳」をGoogle Playにてリリースしました
「10秒で10年日記 逆さ日記帳」の設定に「全てのカレンダ」項目を追加しました
“Just10SecGet10yDiary R10Diary” has another feature of “All Calendars”
自作無料WEBアプリ「10秒で10年日記 逆さ日記帳」に検索機能を追加しました
「10秒で10年日記 逆さ日記帳」というWEBアプリをリリースしました
Gカレンダ暗号化/復号化ツール「MiniCJ2」を本サイトにてリリースしました
Gカレンダ暗号化/復号化ツール「MiniCJ」を本サイトにてリリースしました
Android端末の種類でGoogleカレンダの背景色が微妙に違う!?
クラウドジャーナル(androidアプリ)から見えなくなった日記データの復元方法について

以上です。

東海道新幹線で限定アイスを試してみました

[追記しました@20131005]

昨日たまたま東海道新幹線に乗る機会があり、限定アイスを試してみました

夕張メロンのアイスも絶品でしたが、このアイスもうまかったです。320円と安くはないですが、自分へのご褒美に最適のような。旅の充実感を後押ししてくれる食感でした。

premium_melon_ice_240x225

試したのは昨日ですが、調べてみると18日からの限定販売ということで、夏休みシーズン狙いでしょうね。

めいらくグループ、東海道新幹線車内で「スジャータ メロンアイス」10万個限定発売

めいらくグループは、18日から東京・新大阪間の東海道新幹線車内販売で「スジャータ メロンアイス」(写真)を10万個の数量限定で販売する。「スジャータ メロンアイス」は、開発段階から東海道新幹線(ジェイアール東海パッセンジャーズ)と打ち合わせを進め、沿線の静岡県が温室マスクメロンの生産量日本一であることからメロンアイスを開発した。原料のマスクメロン果汁は、愛知県産・静岡県産に限定して使用している...

[追記:2013-08-14]

抹茶とバニラとメロン(限定)があり、メロン(限定)だけ50円高いとのこと。実際バニラは270円でした。

[追記:2013-10-05]

限定なので「ダメ元」で探してみたら、通販で買えるようです。業務用で量はちょっと多いですが、あの美味が自宅で。新幹線に乗らなくてもよいので超安い?便利な世の中です。

新幹線の車内販売にも採用されている
スジャータのめいらくの高級業務用アイスです。

と書かれていました。

以上です。

韓国ビールは喉越しが来る!?「芳醇麦」を試した

たまたまドンキホーテ町田店(ドンキ)に立ち寄ったとき、見慣れないビール?が並んでいたので、「芳醇麦(リキュール(発泡性))」を呑んでみました。

ちょっと冷えが足らなかったけれども、「喉越しが来る」という感じですかね。冷えているとまた違うかも知れないですね。

hojunmugi_240x320

ドンキには、こうしたビール類での発見が結構ありまして、「薫り華やぐエビス」やら「白濁(しろにごり)」やら強烈にうまくても店頭から消えるのもまた強烈というものがあり、なかなか侮れません。

「麦とホップ」に対抗できるとは思えないけれども、これで87円という価格は凄いですね。

以上です。

日本通信のWEBサポートに仕様バグを発見した

[追記しました@20130804]

海外で購入してきたSIMフリーiPhoneで縛りのない廉価な通信環境が構築できているので、日本通信のサービスには大変感謝しているのですが、WEBサポートに結構深刻?な「仕様上のバグ」を発見しましたのでここに掲載します。

ただ、結論から書きますと、電話で問い合わせたところ、これは「仕様」であって「バグ」ではないそうです。つまり間違えて契約したのが悪いということ。今回の場合100MBの契約で525円が全く使えずに徴収されてしまうのですが、自分で間違えたのだから仕方がありませんし、購入画面にも「いかなる理由があっても一切返金しない」と書いてありますので、泣き寝入りとなりました。

こんなつまらないミスをしてしまうのは当方だけなのでしょうが、みなさん気をつけましょう。

旅行先で使うため常用しているSIMにTurboチャージしようとした

近く帰省予定で年老いた両親のいる実家では通信環境がこころもとないこともあり、Turboチャージしておこうとしたのが、そもそもの始まりでした。

日本通信(B-mobile)との契約では、現時点で

  • 常用SIMカード(通話と通信)
  • 今月7月にMNPして他キャリアに移動したばかりのSIMカード

があります。

他にもありますが、契約終了しています。そもそも契約終了している番号がプルダウン画面に現れるのも間違いの元のような気がします。

Turboチャージの容量を100MBと500MBをどちらにするか悩んだ挙句、「ちょっとずつ使うとするか!」と100MBを選択しました。

 TurboチャージがなぜかONできない

そして契約画面に進んで難なく完了。

ところが、早速Turboチャージを使ってみようとしたところ「ON」できないのです。

bmobile_turbocharge_002_360x396

このときは、「そうか、スマホをWifiにしているからかも。3Gにしてみるか」と、3Gに切り替えてみましたが、状況は変わりません。

Turboチャージした番号が違っている!

そこで、bmobileのLOGINページから再度入り直して、プルダウンメニュから常用カードの電話番号の契約状況をみてみると、Turboチャージしたはずなのに0MBになっています

そうなんです。TurboチャージしたSIMカード(電話番号)を間違えていたのです。

「そんなはずはない。MNPが完了していて電話番号も通信も使えないはずで、それをキャリアが認識できないはずはないだろう」

と想定していたら、どうもシステムの認識できない空白期間?があるそうな。

MNP完了時に解約しておけばよかったのかも知れません。だた、ウエブページには「MNPしたSIMカードについては陽に解約する必要はない」と書かれていたりもします。

今から考えると500MBを選択していなくよかったです。2000円近く捨てることになりますから。

昔ならこうした状況に遭遇したときには消費生活センターに調査依頼したものでした。動機は費用というより同じ思いをするひとを増やさないように消費生活センター経由でサービス提供者に働きかけることでしたが、今ではこうしてブログやツイッター等で情報展開できますので、消費者にとって便利な時代になりました。 資料を揃え消費生活センターに出向き説明する手間は相当なものでしたから(消費生活センター?消費者センター?どっちが正しいのかな、今は。それともそんな機能はもうないのか)。

[追記:2013-08-04]

7月にMNPした件の契約番号の請求明細がでました。幸運なことに現時点、上記の525円は請求されていませんもしも実際に請求されないのでしたら、これはWEBサポートの仕様(バグ)と電話問い合わせの仕様(バグ)の2重の仕様(バグ)になるかと思います。費用請求を見るまでユーザをハラハラさせるのはやめた方がよいのではないでしょうか?

以上です。

 

 

iOSのメモ帳のように表示画面と編集画面をシームレスに切り替える

iOSデバイスのメモ帳は見た目もUIも洗練されていてとてもいいと思います(Android系のメモ帳はあまり使いませんでしたのでよく分かりません。今はかなり洗練されているんでしょうね)。

  • メモの一行目に書いた内容がそのままタイトルとして見えること
  • 起動時は単なるViewerのように見えるのにタッチすると編集モードになってくれ、表示画面と編集画面がシームレス(つぎはぎがない)に切り替えられること

が特長と思います。特に2つ目がいいです。

ios_device_memoapp

ある開発案件に関連して、これをAndroidアプリで実現したいと思いいろいろ調べてみました。

やりたいことは

  • 起動時EditText部品からFocusを外してTextView部品のように見せる
  • タッチ(またはクリック)するとFocusが現れて編集できるようにする
  • 編集を完了する(確認ボタンを押す等)とEditText部品から再度Focusが外れる

です。

調べた結果そのものズバリの質問はありませんでした(もしくは質問はあっても回答がなかった)。

それじゃ自分で解決するしかないと思い海外サイトを含め下記内容のあわせ技で実現させました。

  1. edittext – How to replicate android:editable=”false” in code? – Stack Overflow
  2. たかがフォーカス,されどフォーカス – 愚鈍人
  3. ユーザがTextViewに文字を手入力できるようにしたい。 – Google グループ

解決方法はひとことでいうと、TextView部品ではなくEditText部品を使い、他部品にFocusを退避しておき、必要時にrequestFocusメソッドでFocusを戻す、です。

レイアウトに各部品とその属性(オプション)を設定する

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:id=”@+id/entire”
android:focusable=”true”
android:focusableInTouchMode=”true”>

<Button android:id=”@+id/confirm”
android:text=”@string/view”/>

<EditText
android:id=”@+id/edit”
android:hint=”@string/hint”
android:inputType=”textMultiLine”
android:scrollbars=”vertical”
android:focusable=”true”
android:focusableInTouchMode=”true”/>

</LinearLayout>

ここでは部品が3つ定義されています。上から背景部品、ボタン部品、EditText部品です。ボタン部品やEditText部品の属性はほぼ省略値そのものですが、背景部品の属性だけ通常と異なります。

ポイントは、背景部品(LinearLayout)に

android:focusable=”true”

を設定します。

背景部品は編集機能を持たずFocusする意味は、通常は、ありません。ここではFocusを退避させられるように故意に設定しています。Focusを退避させられる別部品があればそこに設定しても構いません。ただし編集機能のありそうな(?)部品の場合には困ることがあります。例えばTextView部品があってそこにFocusさせるとEditText部品のような動作になってしまったりします。

JavaプログラムにFocusに関する制御コードを書く

public class AppMain extends Activity {
    private static LinearLayout mBgView;// 背景のLinearLayout部品
    private static EditText mBodyText;// EditText部品

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mBgView = (LinearLayout) findViewById(R.id.entire);
        mBgView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (hasFocus == false) {
                // Focusが来たときに何かさせるならここにコードを
                }else{
                // Focusが外れたときに何かさせるならここにコードを
                }
            }
        });

        mConfirmButton = (Button) findViewById(R.id.confirm);
        mConfirmButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                mBgView.requestFocus();// これでEditTextにあったFocusが外れ、背景部品に移る
            }
        });

        mBgView.requestFocus();// 起動時、背景部品にFocusを退避しておく

    }
}

これで、起動時あたかもTextView部品のように見えていたものが、タッチもしくはクリックするとEditText部品のように編集でき、確認ボタンで再びTextView部品のように見せることができるようになりました。

以上です。