Skip to content

[PR] 1.4.2#35

Merged
doyoonkim3312 merged 61 commits intoreleasefrom
temp-branch
Jun 18, 2025
Merged

[PR] 1.4.2#35
doyoonkim3312 merged 61 commits intoreleasefrom
temp-branch

Conversation

@doyoonkim3312
Copy link
Member

  • Structural Changes
    • Multi-Module, Clean Architecture, Dagger 2 (DI)
    • Jetpack Compose Navigation with Deeplink Feature
  • Additional Code Improvement and Bug Fix

  - Add new modules
    :core:network
    :core:model
  - Add new modules
    :core:data
  - Add new modules
    :feature:main
  - Add new modules
    :feature:bookmark
  - Add missing files to VCS
    domain module
  - Add new module
    :feature:common
  - Move resources to Feature module.
  - Move resources to Feature module.
  - Configure build gradles on each module based on its responsibilities and role.
  - Move existing files to corresponding module.
  - ViewModelKey annotation class for handling dependency injection for viewmodels.
  - Move existing file to corresponding module.
  - Move resources to feature module.
  - Add missing file to version control
  - Apply new API base from Build Config.
# Conflicts:
#	app/src/main/java/com/doyoonkim/knutice/data/KnuticeRemoteSource.kt
#	app/src/main/java/com/doyoonkim/knutice/viewModel/DetailedNoticeContentViewModel.kt
#	gradle/libs.versions.toml
  - Temporary Branch for Multi-Module Migration
    * Rearrange modules under project (:feature:common -> :common)
    * Add new module (:core:notification)
    * Apply necessary dependencies.
  - Migration in progress
  - Version updates of dependencies have been made.
  - Code enhancements have been made.
  - Version Information Update.
    Version Code: 16
    Version Name: 1.4.1
# Conflicts:
#	app/src/main/java/com/doyoonkim/knutice/presentation/DetailedNoticeContent.kt
  - Convert :core:domain and :core:model modules from Android Library to Kotlin Library.
  - Convert :core:domain and :core:model modules from Android Library to Kotlin Library.
  - Separate Request Bodies from :core:network module. (Make it not a module specific.)
  - Place them under :core:model to make them accessible universally.
  - Separate Request Bodies from :core:network module. (Make it not a module specific.)
  - Place them under :core:model to make them accessible universally.
  - Remove unnecessary files from :app module.
  - Move local notification-related files to :core:notification/local
  - Enable Deeplink feature.
  - Apply appropriate attributes
    * Intent-filter for Deeplink feature.
  - Remove files from :app module
    * Files are no longer needed. (Files are move to the appropriate location accordingly, followed by clean-architecture principle.)
  - Migrate DI solution (Hilt -> Dagger 2)
    * Construct appropriate Dagger components.
      i) AppComponent (SingletonComponent)
      ii) @modules for each layer
  - Migrate DI solution (Hilt -> Dagger 2)
    * Custom-defined annotation classes for Dagger implementation
      a) ViewModelKey for dynamic ViewModelFactory injection
      b) ApplicationContext for injecting ApplicationContext specifically.
  - :feature:bookmark module
    * Handle Bookmark related feature
    * Contains UI components and ViewModels
  - :feature:main module
    * Handle Main Feature of this application (Notice/Search/Preference)
    * Contains UI components/ViewModel
  - :core:notification module
    * Handle Notification-related tasks (local notification/FCM notification)
    * requestCurrentToken() function has been separated to its own class 'TokenHandler.kt'
  - :core:network module
    * Handle tasks related to data over network
    * Contains Retrofit call, RemoteSource and necessary DTOs
  - :core:model module
    * Contains globally used data declaration (VOs)
  - ModifyBookmark usecase (include query/createOrUpdate/deletion)
  - Repository interfaces for Dependency Inversion
  - :core:data module
    * Handles all CRUD of the data from corresponding data source (local/remote) (Operations are declared in Domain module as an interface)
    * Includes module-specific data type declaration
  - :common module
    * Handle globally accessible components.
    * Contains commonly used UI composable
    * Contains Resources (String/Theme/Color/etc)
  - :app Module (Top-Level)
    * Main entry point of the application.
    * Can access all the submodules.
    * DI initialization is being made.
  - Update version catalogs
  - Module specific navigation graph
    * For more cleaner and feasible Navigation feature, each module now has its own navigation graph, which is stick to the centralized NavHost at :app module.
  - Remove duplicated resources from :app module
  - Add Theme style for handling dark theme splash screen
  - Code clean-up (Remove unnecessary import statement)
  - Extract modifier settings to outside of composable.
  - Extract modifier settings outside of composable.
  - Fix UI issue (unexpected padding)
    In-progress
  - Image Processing for Push Notification (In-progress)
  - Add necessary declaration for DI.
    (ImageRepository, etc.)
  - Repository for handling Image Retrieving and processing over network.
  - Attach bitmap image to the Notification when the Bitmap image is available.
  - Apply RoundedCorner to BottomNavBar
  - Resolve duplicated padding issues on few composables (NotificaitonPreferences, CustomerService)
  - Color theme has been applied.
  - Navigation logic applied to the bottom navigation bar has been modified.
# Conflicts:
#	app/build.gradle.kts
#	common/src/main/res/values/strings.xml
  - Clear out unnecessary code/imports/references from the UnitTest code.
  - Remove unnecessary UnitTest file from the project. (No longer needed)
@doyoonkim3312
Copy link
Member Author

Ignore Github Action result:
Project has been verified on local side of the machine. (Successfully built).

@doyoonkim3312 doyoonkim3312 merged commit f10dd97 into release Jun 18, 2025
1 check failed
@doyoonkim3312 doyoonkim3312 deleted the temp-branch branch June 19, 2025 09:33
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