Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

コードの気になるところ洗い出し #33

Open
LeoAndo opened this issue Dec 31, 2022 · 7 comments
Open

コードの気になるところ洗い出し #33

LeoAndo opened this issue Dec 31, 2022 · 7 comments
Assignees

Comments

@LeoAndo
Copy link
Owner

LeoAndo commented Dec 31, 2022

課題提出後なのでPRは出さないが、コード上の気になるところをこのイシューに洗い出しておく。

@LeoAndo
Copy link
Owner Author

LeoAndo commented Dec 31, 2022

プロガードの記述で消せそうなやつがある

以下、消せそう。

-keep class jp.co.yumemi.android.codecheck.R$* { *; }

@LeoAndo LeoAndo self-assigned this Dec 31, 2022
@LeoAndo
Copy link
Owner Author

LeoAndo commented Dec 31, 2022

検索APIのレスポンス値について

pushed_at がnullのケースがあるのでNullableにする必要がある

pushed_atの型指定をString?に変更したい

@LeoAndo
Copy link
Owner Author

LeoAndo commented Dec 31, 2022

RecyclerView周り

DiffUtilに指定する一意のキーはリポジトリ名を表すnameだと被るので、idを指定したい

検索APIのResponse値で取れるidをマッピングしたい

API Reference

@LeoAndo
Copy link
Owner Author

LeoAndo commented Jan 1, 2023

package構成 / クラス名の変更

ErrorResult

ErrorResultクラスは、通信系のエラー専用なのでクラス名をApiErrorResultに変更し、別ファイルに切り出しapi配下に移動したい。

以下のような感じで。
https://github.com/LeoAndo/AndroidGithubSearch/blob/deacbba26117839e5d1eb28fd9a810b291e4c026/app/src/main/java/com/leoleo/androidgithubsearch/data/api/ApiErrorResult.kt#L5

dataOrThrow

dataOrThrowメソッドは、Ktorに特化したエラーハンドリングのためKtorHandlerみたいなクラスを作りインスタンスメソッドで提供する形にし、別ファイルに切り出しapi配下に移動したい。

以下のような感じで。
https://github.com/LeoAndo/AndroidGithubSearch/blob/c5d76b7ff15bb6ee63af6a99618140b268ea5666/app/src/main/java/com/leoleo/androidgithubsearch/data/api/KtorHandler.kt#L14

https://github.com/LeoAndo/AndroidGithubSearch/blob/c5d76b7ff15bb6ee63af6a99618140b268ea5666/app/src/main/java/com/leoleo/androidgithubsearch/di/NetworkModule.kt#L21

@LeoAndo
Copy link
Owner Author

LeoAndo commented Jan 1, 2023

各環境用でアクセスポイントを切り替える仕組み

本課題アプリはGithubが公開している外部APIを使うのみなので必要なさそうですが、
各環境のアクセスポイントを切り替える仕組みを持つことが通常なのでその場合は、以下のようにFlavorで対応する。
参考PR

@LeoAndo
Copy link
Owner Author

LeoAndo commented Jan 1, 2023

stub環境に関して

今回の課題アプリでは、出来上がっている 外部サービスのAPIを使っていて導入していないが、
実務においてサーバー API開発前にstubでアプリ側の開発を進めたいことがある。

もしGithub APIが開発段階であれば、以下のようなStubの実装を行います。

@LeoAndo
Copy link
Owner Author

LeoAndo commented Jan 3, 2023

マルチモジュール化

今回の課題アプリでは小規模なアプリのため導入を控えたが、
仮に導入する場合は以下のPRのような方針でモジュール化したい。
LeoAndo/AndroidGithubSearch#56

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant