「みんなのコミック」は2018年10月31日を持ちまして更新を終了いたしました。
この記事は「みんコミ Advent Calendar」の5日目の記事です。
「みんコミ」のAndroidアプリ(バージョン1.0.1)をベースに執筆しています。スクリーンショットは極力控える方針ですので、本記事を読む際には、「Google Play Store」からアプリをインストールしておくことをお勧めします。
ホーム画面からメニューの「その他」をタップすると、設定画面が表示されますが、この画面が独自の画面として実装されているのが気になりました。
この内容だとPreferenceを使った方が実装もメンテナンスも簡単で、見た目もAndroid標準に則っていてユーザーに混乱を与えないと思います。
http://developer.android.com/intl/ja/guide/topics/ui/settings.html
メニューの初期画面「pref_general.xml」は次の通りです。
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="サービスにログイン">
<Preference
android:title="ログイン"/>
<Preference
android:title="会員登録"/>
</PreferenceCategory>
<PreferenceCategory
android:title="その他">
<Preference
android:title="お知らせ"/>
<Preference
android:key="various"
android:title="設定"/>
<Preference
android:title="ヘルプ"/>
<Preference
android:title="お問い合わせ"/>
<Preference
android:title="サービスについて"/>
<Preference
android:title="利用規約"/>
<Preference
android:title="個人情報保護指針"/>
</PreferenceCategory>
</PreferenceScreen>
実際にはそれぞれのPreferenceから別の画面に遷移することになります。
本来であれば、Preferenceのandroid:fragment
属性でPreferenceをタップした際に遷移するFragmentを指定できるのですが、それが有効なのは読み込むActivityがPreferenceActivityを継承している場合です。
今回、SettingActivity
は、Design Support Libraryとの兼ね合いでAppCompatActivityを継承しているため、OnPreferenceClickListenerで処理しています。
public static class GeneralSettingFragment extends PreferenceFragment
implements Preference.OnPreferenceClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref_general);
findPreference("various").setOnPreferenceClickListener(this);
}
public static GeneralSettingFragment newInstance() {
return new GeneralSettingFragment();
}
@Override
public boolean onPreferenceClick(Preference preference) {
switch (preference.getKey()) {
case "various":
getFragmentManager()
.beginTransaction()
.addToBackStack(OtherSettingFragment.class.getSimpleName())
.replace(android.R.id.content, OtherSettingFragment.newInstance(),
OtherSettingFragment.class.getSimpleName())
.commit();
break;
}
return false;
}
}
「その他 – 設定」をタップしたときに別の画面に遷移するようにしています。
表示する「pref_other.xml」は次の通りです。
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<Preference
android:summary="一時保存のデータを削除して空き容量を増やします"
android:title="キャッシュのクリア"/>
<SwitchPreference
android:key="notification"
android:summary="お気に入りの作品が更新されたときに通知でお知らせします"
android:title="通知"/>
<Preference
android:key="version"
android:title="バージョン情報"/>
</PreferenceScreen>
さて、Preferenceで作った画面に「最終閲覧」がないことにお気づきかと思います。
「最終閲覧」は、Preferenceを頑張ってカスタマイズすれば(おそらく)表示できます。今回、僕がそれをしていない理由は、一つはPreferenceのカスタマイズは作業の負荷が高くなりがちなこと、また、個人的に「最終閲覧」の表示は「その他」ではなく、ホーム画面にあった方が良いと思うからです。
Huluなどでも視聴中の番組は、まずトップ画面に出てきます。アプリを起動してすぐに表示されるホーム画面に表示した方がユーザーの目に留まりやすいと考えます。
サンプルプロジェクトをGitHubに置いておきます。
https://github.com/keiji/adventcalendar_2015_mincomi
「有山圭二」は「みんなのコミック」及び運営の「株式会社イーブックイニシアティブジャパン」とは一切関係がありません。
また、本アドベントカレンダーの内容はあくまで参加者個人の見解です。
「みんなのコミック」の評価を目的とするものではありませんので、ご了承下さい。
みんコミといえば、僕が普段からお世話になっている根雪れい(@neyuki_rei)さんも連載していますね。
10歳になったおかあさんと僕の生活をマンガにしましたよ~。見てくださいね ! https://t.co/UfxCfaOYRZ #みんコミ #みんなのコミック pic.twitter.com/2nHBnFus4n
— 根雪れい.おかあさん(10)と僕。連載中 (@neyuki_rei)
根雪さんの「おかあさん(10)と僕。」は……まだ更新されていませんか。そうですか。
それでは代わりにもう一つ、「みんコミ」で気になっている作品を紹介します。
【次回更新予定】12月1日火曜日は爽田するめ先生の『育児しんどいマンガ-もうママって呼ばないで』2話が公開!育児の様々な面を本音で伝えます。子育て…難しい(^_^;) #みんコミ https://t.co/4FRvZFqq9G pic.twitter.com/WpcVcj3DAI
— みんなのコミック(みんコミ) (@mincomi_jp) 2015, 11月 27
「子育てもの」というジャンルは、自分がその立場になってみないと、なかなか面白さがわからないものですね……。
わかります。ええ、わかりますとも。
それでは明日、6日の担当は、今月で1才の誕生日を迎える息子さんが、最近、アニメの「ゆるゆり」にハマっていて、さっそく将来が心配になっている「有山圭二」さんです。
よろしくお願いいたします。