スポンサー広告 - スポンサーサイト

--/--/-- (--) --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【Android】簡単メモ帳 - バージョン 1.1.4

2013/03/17 (日) 22:08

バージョンアップ

■変更点
1.メモデータのバックアップ、リストアの機能を追加。(カレンダー画面のメニューから)
2.メモ毎に「重要」フラグを付与できる機能を追加。(メモ入力画面のメニューから)

■詳細
●1について
takの個人的な事情により、必要となりました。
・そろそろ機種変したいなぁ。
・実は買ってしまった Nexus7 にメモデータをコピーしたい。
等々。
というわけで、DBファイルを指定のディレクトリにコピーするバックアップ機能と、
指定ファイルをアプリのDBに上書きコピーするリストア機能を実装しました。

▼バックアップ機能について
カレンダー画面のメニューからバックアップを選択すると、バックアップダイアログが表示されます。
さらに[参照]ボタンを押下すると、ディレクトリ選択ダイアログが表示されます。
root直下のディレクトリの一覧が表示され、ディレクトリを選択するとそのディレクトリの中のディレクトリ一覧が表示されます。
権限が無い場合は元の一覧に戻されます。
目的のディレクトリに到達したら[ここを選択]ボタンを押下します。
バックアップダイアログに保存されるバックアップファイルのパスが表示されます。
ファイル名はアプリ側で決めさせてもらいました。
memo_yyyy-MM-dd.db
となります。時間まで含めようかと思いましたが、とりあえずは日までで。
[バックアップ]ボタンを押下すると保存されます。
既に存在する場合には問答無用で上書きします。
他の端末で取り込む場合には、GoogleドライブやEvernote等で連携先の端末に送るのが便利そうです。

▼リストア機能について
カレンダー画面のメニューからリストアを選択すると、リストアダイアログが表示されます。
さらに[参照]ボタンを押下すると、ファイル選択ダイアログが表示されます。
root直下のディレクトリ&ファイルの一覧が表示され、ディレクトリを選択するとそのディレクトリの中のディレクトリ&ファイル一覧が表示されます。
権限が無い場合は元の一覧に戻されます。
ファイルを選択すると、リストアダイアログにリストアされるファイルのパスが表示されます。
[リストア]ボタンを押下するとリストアされます。
ファイルの正しさは、コピー前にコネクションを取得し、「sqlite_master」テーブルに使用しているテーブルを作成した記録が存在するかどうかを見ています。

▼権限の追加について
色々迷いましたが、外部ストレージへの読み書きの権限を追加しました。
やはり外部ストレージに保存してこそのバックアップでしょう。
不評が多いようであれば考え直します(汗)

▼その他
それぞれのコピー機能は簡単に実装できたのですが、問題はディレクトリ、ファイル指定の仕組みでした。
AlertDialog間の画面遷移は、システム的には考慮されていない感じですね。
おかげで、戻るキーで階層を戻る機能の実装は断念しました。
もっとゴテゴテに作らないと難しそうです。無理ではない感じが憎いですが(汗)
苦労しましたが、少々未練が残る機能となってしまいました。
いつかやる気が出たら改修するかもしれません。

●2について
▼重要設定について
メモ入力画面のメニューから重要設定を選択すると、重要設定ダイアログが表示されます。
※事前にメモが保存されている必要があります。
[通常][重要]の二択です。
[重要]を選択すると、画面上部の日付の背景が赤くなります。
[保存]ボタンを押下しないとDBには反映されません。
重要設定されたメモは
・カレンダー画面では日付の背景が赤くなります。
・検索結果画面では日付と本文が赤くなります。
・メモ入力画面では日付の背景が赤くなります。
となります。
カレンダー画面で、検索文字列に「!」(全角、半角どちらでも)を入力して検索すると、重要設定されているメモの一覧が表示されます。

▼その他
メールで要望が来ていたので実装しました。
単純に機能の追加なので、これまでの使用感を妨げることは無いと思います。
が、便利っぽいのでよく参照するメモには設定しておこうかなと思います。
takの場合はポストや宅配ボックスのパスワードですね。

実装に際して1番苦労したのは、検索結果画面です。
当初は重要なメモだけ背景を赤くしようと画策していたのですが、これが難しい。
文字の色を変えるだけだと簡単なのに、フォーカスの具合とかを考慮すると途端に難易度が上がります。
結局、こちらも妥協して文字の色を変える方向で着地しました。
少々未練が残りますです。

基本的にはメモ帳で、タスク管理をするのが目的ではないので、重要度に段階を持たせるといった拡張は今の所考えていません。
要望が多かったらその時に考えることにします。
この機能の実装に伴い、DBのテーブルに管理用カラムを追加しました。
初めてバージョンアップによるDBの変更を実装しましたが、簡単に対応できるようにシステムが仕組みを用意してくれているので対応は楽でした。

---

上記以外にも、各所でリファクタリングを行っています。
ソースの掲載は、広範囲に渡るので止めておきます。
じわじわ機能が増えてきていますね。
元々勉強用に作ったアプリですが、まだまだこのアプリで勉強できそうです。すばらしぃ。
関連記事

コメントの投稿

非公開コメント

検索フォーム
RSSリンクの表示
カレンダー
07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
月別アーカイブ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。