近況報告-2020年10月22日

この記事は約5分で読めます。

夜分遅くに失礼します。九条です。

お久しぶりです。

諸事情により作業を中断しブログの方も放置してしまいました。すみません。司法書士試験は延期はあったものの無事に開催されたようですね。受験された方、本当にお疲れ様でした。

試験については後程考察するとして、取り急ぎ教材の開発状況を報告させていただきます。

既に別の記事でも述べておりますが、教材開発には3つのタスクが存在します。

  • 教材アプリ本体(Android アプリ)の開発
  • 自分専用作問ツールの開発
  • 作問

このうち、「教材アプリ本体の開発」を今進めている段階なのですが、技術面で言えばかなり順調です。

はじめてのAndroidプログラミング第4版の内容を参考に開発を進めておりますが、技術的にはこの書籍とインターネットの情報で何とかなっております。具体的には次の機能を実装しました。

  • 科目選択メニュー画面
    ⇒コンテンツはデータベースを元に構築します。
  • 問題の遷移機能
    • 最初の問題へ移動
    • 前の問題へ移動
    • 次の問題へ移動
  • 単純正誤問題
    ⇒〇×を判定する問題です。
  • 単一選択問題
    ⇒ラジオボタンで複数の選択肢からひとつを選ぶ問題です。
  • 多肢選択問題
    ⇒チェックボックスで複数の選択肢から選択する問題です。
  • 列挙問題
    穴埋め問題や、会社の解散原因をすべて挙げよといった問題です。いわゆる y軸問題であり、本教材の最大の特色となる問題です。
  • 列挙問題(ヒント付き)
    ⇒列挙問題と多肢選択問題を組み合わせたもので、すべて挙げることができない初心者がヒントとしてチェックボックスを利用することができます。
    (ちょっとこれはイメージが持ちにくいかもしれませんので、後日画像を投稿させていただきます。医師国家試験に挑戦している知人がいるのですが、その方にアイディアをいただいて実装しました。)
  • ヒント機能
    ⇒問題ごとに、ヒントがあれば「ヒント」ボタンをクリックすることによりそれを閲覧できます。
  • 使用許諾契約
  • サポートページへのショートカットや不具合の通報機能

この段階で、コードステップ数(記述したプログラムの行数)をカウントしたところ、*.kt ファイルだけで約 1500 ありました。リファクタリングは限界近くまで行っているので、これ以上の圧縮はできません。

※空行を含めてカウントしています。

*.xml のように Android Studio が自動生成するファイルはカウントに含めておりません。

*.sql のようにテーブル定義を生成するものも、それなりの行数がありますが、こちらもカウントに含めておりません。

余談ですが、カウントのためにコードステップカウンタを自作しました。フリーソフトがありそうで探してみると意外と存在しなかったので、もう少し作り込んだ上で本 Web サイトでフリーソフトとして公開しようと思います。

肝心の現状の進捗ですが、「教材アプリ本体の開発」のタスクの進捗が 40% と言ったところだと思います。これから開発のペースを上げますので、今までかかった時間の倍の時間が合計してかかると言うことは有りません。教材の完成を心待ちにしていらっしゃる方はどうかご安心ください。

なお、進捗 40% ということは、最終的なコードステップ数の見積もりは 4000 行近くになるかと思います。

ここで、この他に実装しなければならない機能を忘備録も含めてまとめておきます。

  • 【優先度・高】問題一覧機能
    ⇒現状、最初の問題へ、前の問題へ、次の問題へ、としか遷移できません。一覧を表示してジャンプする機能が必要です。
  • 【優先度・高】体験版の制約
    ⇒未課金状態では、例えば問題を10問解くごとに10秒の広告を提示する等する予定です。
  • 【優先度・中】お気に入り機能
    ⇒お気に入りの問題に絞り込む等の機能が考えられます。
  • 【優先度・中】正解履歴保存機能
    ⇒3回連続して正解した問題は飛ばす等の機能が考えられます。
  • 【優先度・中】問題検索機能
    ⇒「問題一覧機能」のオプションになるものですが、「お気に入り」「正解履歴」「ランク」「キーワード」等で絞り込みをかける機能が必要です。
  • 【優先度・中】制限時間機能
    ⇒問題ごとに制限時間(秒単位)を作問の段階で設定し、解答の最中にカウントダウンして表示します。
  • 【優先度・低】条文リンク機能
    ⇒問題に関係する条文(Wikibooks や e-Gov)へのリンクを、問題と併せて提示する機能です。
  • 【優先度・低】付箋機能
    ⇒問題ごとにユーザ様が付箋を貼ることができます。

ここで技術的に最大の課題となるのが、「問題一覧機能」ではないかと思います。これを実装するのに RecyclerView というクラスを使う必要があるのですが、使い方を把握できておらず、資料を探している段階です。

「問題検索機能」もボリュームがありそうですが、こちらは SQL が書ければ技術的にはどうと言うことは有りませんし、SQL を書くのは得意です。

なお、課金機能については作問も終えた上で最後に実装します(外注も検討中)ので、上記のタスクには含めておりません。

教材アプリ本体が完成したら、ひとまず掲載問題数を10問程度として公開したいと思いますのでご期待ください。

Android 端末をお持ちでない方につきましては、大変お手数をおかけしますが、エミュレータの使用をお願いします。PCで強引に動作させる方法がありますのでご安心ください。具体的な方法は記事にして投稿します。

最後に、重ねてになりますが、受験された方はお疲れ様でした。

この通り、考察しておりますが、もう少し詳しく突っ込んだ考察を近日中に公開したいと思います。

以上です。教材の開発については遅れが生じており大変申し訳ございません。

<追記>

徹夜してコードステップカウンタを改良しました。空行を含めない仕様になりました。

もう少し改良を加えてドキュメントを付けたら公開します。

⇐管理人の Twitter を Follow したい方はこちら。

コメント

タイトルとURLをコピーしました