Skip to content

QiitaAPIから記事を取得して表示するアプリ

Notifications You must be signed in to change notification settings

Kazuki-0731/GetQiitaList

Repository files navigation

Qiita記事一覧アプリ

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でよいと考えました。

Common(共通モジュール)

Common

  • constants
    • 定数
  • util
    • ビルド時に生成させる定数取得やLogなどの汎用的なもの

Model

Model

  • entities
    • キャッシュ(一時保存)
  • service
    • 通信で取得するデータの型の取り決め(プロトコル)

Presenter(通信周り)

Presenter

  • callAdapter
    • RxJava1系の通信受信時のコールバック
  • client
    • 通信における正常系、異常系のキャッチをする
  • exception
    • 例外区分、エラーメッセージなど
  • repositories
    • 定期受信するためのクラス

View構成

view

  • activity
    • activity関係
  • adapter
    • ListViewのアダプター関係
  • dialog
    • ダイアログ関係
  • fragment
    • fragment関係

[実際の画面]

ロディングアイコン表示

Qiita記事一覧表示

詳細画面へ遷移(ListViewの1セルを押下)

サーバーから200番台以外の、ステータスコードを受け取った場合のエラー

サーバー通信中に発生したエラー

不明なエラー

詳細画面にて、通信エラー

About

QiitaAPIから記事を取得して表示するアプリ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages