Conversation
… to `compose`
This commit performs a major restructuring of the project modules and updates dependencies to reflect a multi-module architecture.
Key changes:
- **Module Renaming**: Renamed the `composeApp` module to `compose` and updated its package name to `io.lackstudio.omnihub.compose`.
- **Android Separation**: Extracted Android-specific application logic and resources into a new standalone `:androidApp` module.
- **Gradle & Versions**:
- Updated Gradle wrapper to 9.1.0 and Android Gradle Plugin (AGP) to 9.0.0.
- Switched the `compose` module to use the `com.android.kotlin.multiplatform.library` plugin.
- Added new dependencies for Lifecycle, Compose BOM, and Koin Android in `libs.versions.toml`.
- **Package Refactoring**: Updated all internal imports and file paths to match the new `io.lackstudio.omnihub.compose` package structure across common, android, ios, jvm, and web source sets.
- **iOS Integration**: Updated `Podfile`, `Podfile.lock`, and `iOSApp.swift` to reference the renamed `Compose` framework.
- **Build Configuration**:
- Updated `settings.gradle.kts` to include `:compose` and `:androidApp`.
- Refactored `buildkonfig` to use the new module package name.
- Updated the `setup_ios.sh` script to point to the new module directory.
- **Web**: Updated `index.html` to reference `compose.js`.
This commit reorganizes the Gradle dependency management for the `compose` module and updates UI component imports to use standard AndroidX preview annotations.
Key changes:
- **Dependency Management**:
- Migrated `compose/build.gradle.kts` to use version catalog aliases (e.g., `libs.compose.*`) instead of the `compose` helper object for core libraries like runtime, foundation, and material3.
- Added `androidx.compose.bom` and `ui-tooling` to `androidMain` dependencies.
- Updated `libs.versions.toml` with explicit versions for `composeMaterial3`, `composeMaterial`, and `composeMaterial3Adaptive`.
- **UI & Tooling**:
- Switched from `org.jetbrains.compose.ui.tooling.preview.Preview` to `androidx.compose.ui.tooling.preview.Preview` across all UI screens (Gallery, Home, Settings, etc.).
- Standardized the inclusion of `material3-adaptive` and `adaptive-navigation-suite` within the common source set.
- **Cleanup**: Reordered and grouped entries in `libs.versions.toml` for better maintainability.
This commit clean up the libs.versions.toml
Key changes:
- **Dependency Management**:
- Migrated `compose/build.gradle.kts` to use version catalog aliases (e.g., `libs.lifecycle.*`) instead of the `androidx` helper object for core libraries like runtime and viewmodel.
- **Cleanup**: Reordered and grouped entries in `libs.versions.toml` for better maintainability.
This commit refactors the iOS project configuration to reflect module renaming and improves project file organization. Key changes: - **Build Script**: Updated the Gradle invocation in the "Embed Kotin Framework" build phase to use the `:compose` module path instead of `:composeApp`. - **Project Structure**: Renamed file system synchronization exception sets and cleaned up empty configurations in `project.pbxproj`. - **CocoaPods Integration**: Explicitly initialized `inputPaths` and `outputPaths` for the "[CP] Copy Pods Resources" build phase.
|
🎉 This PR is included in version 0.14.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related Issues
Closes #37
Type of Change
Please check the main type of change this PR introduces. If there are multiple, please select the most significant one.
Description
This PR introduces a major refactor of the project structure, including module renaming, separation of Android-specific logic, and build tool upgrades.
1. Project Structure Refactor
composeAppmodule tocomposeand updated the package name toio.lackstudio.omnihub.compose.:androidAppmodule and updatedsettings.gradle.ktsto include both modules.2. Dependencies & Build Tooling
libs.versions.tomlby reordering entries and migratingcomposemodule dependencies to use Version Catalog aliases.org.jetbrains.compose...to the standardandroidx.compose.ui.tooling.preview.Preview.3. iOS Configuration
:composeAppto:compose.inputPathsandoutputPathsfor the "[CP] Copy Pods Resources" build phase and updated the Podfile to reference the renamed framework.How to test it?
Due to the module renaming, it is recommended to Clean Project before testing.
Tested Platforms:
Test Details:
:androidAppon an emulator.pod installin theiosAppdirectory and ensure Xcode builds and runs the app successfully.libs.versions.tomlis correctly formatted and contains no duplicate entries.Review Checklist
Before submitting this PR, please confirm the following: