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

Initial Draft Version of Application #3

Merged
merged 38 commits into from
Sep 30, 2024
Merged

Initial Draft Version of Application #3

merged 38 commits into from
Sep 30, 2024

Conversation

doyoonkim3312
Copy link
Member

Initial Draft Version of Application that contains key functionality.

  • Displaying a top three notices on main page. (categorized.)
  • Fetch more notices & list them

  - Load API information from local location for security.
  - Add workflows for utilizing Github Action for CI
  - Add sensitive data through Repository Secrets. Allow project to be built over GitHub Action with no error cause by missing file.
  - Add sensitive data through Repository Secrets. Allow project to be built over GitHub Action with no error cause by missing file.
  - Add missing permission (Permission.INTERNET)
  - Implement Retrofit2 with Gson converter for receiving data over network in RESTful manner.
  - Complete initial draft of Main Service Page.
    1. It serves top three news (notifications) by each four categories.
    2. Real-time data would be provided.
    3. TODO: Add function to 'More' button.
  - Pipeline supported by Coroutine Flow has been applied for receiving real-time data.
  - ViewModel updates UI right after it collects data from the constructed flow.
  - UseCase 'FetchTopThreeNoticeByCategory' manipulate raw data for deploying it to UI component.

  * DI using Dagger Hilt has been applied.
  - Add missing tag ("AndroidEntryPoint").
  - Automatic configuration update.
  - Add local-level layer for data processing (LocalRepository) in order to reduce unnecessary network request.
  - Make RemoteSource only focuses on its designated job: "receiving raw data from the server"
  - Apply improved pipeline for received data backed by local repository implemented.
  - Break down one general function into several 'smaller' function based on its assigned job.
  - Add interface for UseCase 'FetchTopThreeNoticeByCategory'
  - Include four relatively 'smaller' functions that have to be utilized.
  - Replace outdated function with a new functions that utilize improved data processing strategy
  - Break down one general function to several 'smaller' functions based on its assigned job
  - Create class that generate Dummy data while simulating behavior of collecting data over network.
  - Apply Dummy Data Generator at domain layer in order to utilize dummy data while developing sub-functionalities
  - Add Simmer effect on Text composable under NotificationPreviewContainer.
  - Provides visual indication while application still waiting for data over network.
  - Implement necessary libraries
    1. Android Material library (for PullToRefresh)
    2. Coroutines Test (for testing asynchronous task under JUnit environment)
  - Add required vector asset for Image Button
  - Apply Compose Navigator for moving between composables.
  - Separating reusable composable into independent file.
  - Remove unnecessary composable component
  - Change scope of functions used inside of the class. (public -> private)
  - Add additional values for UI State.
    1. isMoreOptionSelected (to be removed later.)
    2. CategoryForMoreNotice (to be removed later.)
  - Merge all data classes throughout the project into a single file.
  - DataWrappers, used to receive data over network, and to be deployed into UI components would be included.
  - New behavior (network request to receive notices per page.) has been defined as a form of interface.
  - New usecase, fetching notices per page in the given category, has been implemented and fully defined.
  - Revert functions under FetchTopThreeNoticeByCategory usecase from receiving dummy data to receiving live data.
  - Automatic configuration updated followed by Gradle update.
  - Apply Compose Navigator for navigate between composables.
  - TopBar components would be changed based on the destination as well.
  - Appropriate action for each button on TopBar has been declared.
  - Create new ViewModel for holding necessary state for updating UI component & allowing Navigator works as expected.
  - Navigator related variables and actions have been declared.
  - NavController, NavHostController, NavGraph are defined based on the app structure & user scenario.
  - New Composable for displaying notices from selected category.
  - Infinite scrolling, PullToRefresh functions have been applied.
  - Composable is reusable & shows appropriate notices depends on the given NoticeCategory.
  - Add new ViewModel for holding necessary state for updating UI under MoreCategorizedNotification Composable.
  - Utility function for supporting infinite scrolling is defined.
  - Class for creating dummy data while simulating behavior of network communication.
…network

  - Add new function 'getNoticesByCategoryPerPage' to initiate data receiving for newly added usecase
  - Add new behavior under Retrofit service to request and receive necessary data for newly added usecase.
  - Corresponding function to initiate new behaviors has been declared.

  - Relocate file from directory model to data.
  - Separate potentially reusable composable into its own file.
  - Enhance its reusability and make it easy to refactoring.
  - Separate Custom Types (enum classes) into a single file.
@doyoonkim3312
Copy link
Member Author

Approve PR.

@doyoonkim3312 doyoonkim3312 merged commit f410948 into main Sep 30, 2024
2 checks passed
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