Kotlinで制作したQiita記事一覧をListで表示し、記事詳細をWebViewで表示するアプリです。
APKファイルだけ欲しい方は、以下のURLをクリックしてください。
- アプリ起動後、Qiita APIを利用して対象アカウント「susu_susu__」の記事を一覧取得して、ListViewで表示します。
- 画面を上からスワイプすると、再読み込みが発生します。
- ListViewをタップすると詳細画面へ遷移します。
- 通信エラー時は、エラー種別によってダイアログを表示します。
- Qiita記事一覧リストに表示可能な最大件数
- 100件
- Qiita記事一覧の表示順序
- 表示する順序は、記事作成日時の降順です。
- 初期データ
- 初期のListViewのデータは空です。
- ヘッダ
- ステータスバーを非表示にして、画面全体を表示させている。
- カラーコード:#55C500
- 読み込み中(アプリ起動後、詳細画面から復帰時)
- ローディングアイコンが画面中央に表示されます。
- 読み込みが完了すると非表示になります。
- タイムアウト、HTTPエラーが発生した場合は、非表示になります。
- カラーコード:#55C500
- リストスワイプ
- スワイプ中は、リストを押下できません
- スワイプアイコン
- 上から画面をスワイプするとAndroid標準のスワイプローディングアイコンが表示されます。
- 読み込みが完了すると非表示になります。
- タイムアウト、HTTPエラーが発生した場合は、非表示になります。
- カラーコード:#55C500
- アラート
- ステータスコードに関するエラー場合、「通信エラーが発生しました」と表示
- サーバー通信に関するエラー場合、「通信環境に不具合が生じています。時間をおいて、再度お試しください」と表示
- 上記以外の場合、「不明なエラーが発生しました」と表示
Androidプロジェクトのフォルダ構成は、MVPアーキテクチャになっております。
ModelにおけるDBは存在しなく、通信により取得したデータはキャッシュとして溜めておきます。
Presenterの部分は基本的にhttp通信に関することです。
Viewは、ActivityやFragment、Dialog周りになります。
※なぜ、MVCではなく、MVPなのかと言うと、画面遷移、ユーザーからの入力(テキストボックスなど)も存在せず、DBとのやり取りも存在しないためです。通信した結果を表示するだけであれば、MVPでよいと考えました。
- constants
- 定数
- util
- ビルド時に生成させる定数取得やLogなどの汎用的なもの
- entities
- キャッシュ(一時保存)
- service
- 通信で取得するデータの型の取り決め(プロトコル)
- callAdapter
- RxJava1系の通信受信時のコールバック
- client
- 通信における正常系、異常系のキャッチをする
- exception
- 例外区分、エラーメッセージなど
- repositories
- 定期受信するためのクラス
- activity
- activity関係
- adapter
- ListViewのアダプター関係
- dialog
- ダイアログ関係
- fragment
- fragment関係