「西條の知恵袋」は、LINEとLIFF上で動くクイズアプリです。LINEのbotを活用し、ユーザーは手軽に空き時間を使ってクイズを楽しめます。このアプリは特に「西條のことを知っている人」をターゲットにしており、いつか役に立つかもしれない知識を学べるクイズを提供しています。
アプリ概要
アプリ名 | 西條の知恵袋 |
ターゲット | 西條のことを知っている人 |
目的 | 空き時間にいつか役立つかもしれない知識を身につける |
強み | LINE上で簡単に問題を解くことができる |
使用した技術 | Angular, LINE API(LIFF, Messaging API), TypeScript, HTML, SCSS, Strapi, Docker |
アプリの特徴
「西條の知恵袋」の大きな特徴は、LINEアカウントと連携し、簡単にクイズを始められる点です。特別な設定やアプリのインストールは不要で、LINEさえあれば、どこでもすぐにクイズを楽しむことができます。忙しい人や、ちょっとした時間で学びたい人にとって、とても便利です。
LIFFとは?
LIFF(LINE Front-end Framework)は、LINEのアプリ内で動作するウェブアプリケーションを作成するためのプラットフォームです。LIFFを使うことで、LINEのトーク画面やタイムライン上で、特別なアプリのインストールなしにWebベースのサービスを利用できます。
LIFFアプリは、LINEのユーザー情報を活用した機能を簡単に組み込むことができるため、ログイン機能やプロフィール情報の取得などが容易に実装可能です。
今回の制作では、LIFFを利用したメイン画面の表示とLINEアカウントでのデータ管理にチャレンジしました。
詳しくはこちらをご覧ください(LINE Developerへ移動します)
https://developers.line.biz/ja/services/liff
LINE Messaging APIとは?
LINE Messaging APIは、LINEのメッセージ機能を活用してアプリケーションやサービスをLINEユーザーと連携させるためのAPIです。このAPIを使うことで、LINE上でチャットボットを作成したり、自動返信メッセージを送信したり、ユーザーからのメッセージを取得したりすることができます。
今回の制作では、デイリー問題通知に利用しています。
実装した機能
- デイリー問題通知
- 毎日、自動で問題が通知され、ユーザーは日々の学習を続けられます。
- 問題回答・解答率表示
- 問題に回答すると、正解か不正解かが表示され、全体の正答率も確認できます。
- 出題範囲設定
- ユーザーは出題される問題の範囲をカテゴリごとに設定することができ、特定のカテゴリに絞って出題することも可能です。
メニューと画面構成
- トーク画面とリッチメニュー
- トーク画面には、毎日問題を解くように通知が送られてきます。
- 画面下部のリッチメニューから、問題回答、解答率表示、出題範囲の設定メニューに簡単に移動できます。
- 問題出題画面
- クイズが出題され、解答後に正解・不正解が表示されます。続けて次の問題に移動することが可能です。
- 問題形式は単一選択、複数選択、並び替えに対応しています。
- 解答率確認画面
- ユーザーはこれまでに解答した問題数と全体の問題数を確認することができ、学習の進捗を確認できます。
- ユーザーはこれまでに解答した問題数と全体の問題数を確認することができ、学習の進捗を確認できます。
- 出題範囲設定画面
- 問題に設定されているカテゴリから、出題するカテゴリと出題しないカテゴリを選択できます。
- 問題に設定されているカテゴリから、出題するカテゴリと出題しないカテゴリを選択できます。
アプリ開発の背景と苦労した点
このアプリを開発する際、Angularに加えてStrapiやLINE APIなど初めて触るものに複数挑戦しました。特にクイズ問題の解答データの保存と解答率計算の設計には苦労しましたが、試行錯誤を繰り返しながら完成させることができました。
企画とターゲット設定
「西條の知恵袋」はターゲット層を「西條のことを知っている人」という、非常に狭い層に絞り込みました。また、LINEという誰もが日常的に使うプラットフォームを利用することで、手軽さを重視した設計にしました。この手軽さが、ユーザーにとって使いやすく、手軽に学べるポイントだと考えています。
学んだこと
この制作を通じて、特にコーディング力と質問力が大きく向上したと感じています。
コーディング力の面では、わかりやすく読みやすいコードを書くことや、効率的な処理を実装することが求められました。自分のコードをレビューしていただく中で、変数やクラスの命名、処理方法に多くの改善点が見つかり、そのたびに命名のルールや新しい関数の使い方を教えていただきました。その結果、徐々に効率的で適切なコードを書けるようになりました。
質問力の面では、開発に取り組む中で何度も課題に直面しましたが、そのたびに質問を通じて解決していく経験が、個人制作完成後の開発にも役立っています。特に、「何が起こったのか」「どう考え、何を試したのか」「その結果どうなったのか」を明確に伝えることを意識するようになり、その結果、情報共有と課題解決がよりスムーズに行えるようになったと感じています。