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

New York Times Books Application #6

Open
wants to merge 13 commits into
base: master
Choose a base branch
from

Conversation

jordanrsas
Copy link

This PR introduces the New York Times Books application, an Android app that displays a list of books from the New York Times Best Sellers list. The app is developed using clean architecture with the MVP design pattern and incorporates some other Android development technologies.

Features
[x] Clean Architecture: Separation of concerns into Presentation, Domain, and Data layers.
[x] MVP Design Pattern: Implementation of Model-View-Presenter pattern for managing UI logic.
[x] Networking: Integration with Retrofit for making network requests to the New York Times Books API.
[x] Dependency Injection: Use of Dagger for managing dependencies.
[x] Local Storage: Room database for persisting book data locally.
[x] Asynchronous Operations: RxJava for handling asynchronous tasks.
[x] Image Loading: Glide for efficient image loading and caching.
[x] Navigation: Navigation Architecture Component for managing fragment transitions.

Known Issues
There is an unresolved bug where the loadBookDetails method in BookDetailPresenter, never reach the subscribe block. This might be related to threading issues or improper disposal of RxJava subscriptions. Further debugging is required to pinpoint the exact cause and resolve the issue. The basic required functionality is covered, this bug only prevents painting the element details on another screen.

Contributor: César Jordán Rosas Ávila

Create Clean Architecture directory structure.
BugFix, app crashes.

[x] Add MyApplication class to XML Manifest file.
[x] Add Room DataBase dependencies to build.gradle
[x] Add Navigation Architecture dependencies to build.gradle
[x] Api, consume NYT Books Service,
[x] Data Base Module
[x] Repository
[x] Create NYT Books Service Data Response Model

Domain Layer
[x] GetBooks Use Case

Di
[x] Application Component
[x] App Module

Also create NetworkHelper to check connectivity
Add Network State permission to AndroidManifest.xml
[x] SplashFragment
[x] BookDetailFragment
[x] BookListFragment
[x] NavGraph
[x] Fade animation for transition
[ ] Book list
[ ] Book detail
[ ] Presentation classes
[ ] View abstraction
[ ] Di
Refactor BookRepository to receive Response to get the request response.
Missing Detail Fragment

[x] SplashFragment
[x] BookDetailFragment
[x] BookListFragment
[x] NavGraph
[x] Fade animation for transition
[x] Book list
[x] Book detail
[x] Presentation classes
[x] View abstraction
[x] UseCase abstraction
[x] Di
[ ] Detail Fragment
[x] BookRepository
[x] GetBooksUseCase
[x] BookMapper
[ ] BookPresenter
A refactor of the application was carried out to implement an abstraction of the use cases.

The logic of the repositories was separated from the use cases.
…reen-size

Feature/add support multiple screen size
Add Project overview
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

Successfully merging this pull request may close these issues.

1 participant