-
Notifications
You must be signed in to change notification settings - Fork 6
Feature/modernization #95
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
Merged
Merged
Conversation
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
This commit includes several updates and changes: - Updated Kotlin to 2.1.20 - Updated Ktor to 3.1.2 - Updated Compose to 1.7.3 - Updated Voyager to 1.0.1 - Updated Koin to 4.0.4 - Removed Moko Resources references - Updated other dependencies such as kotlinx-coroutines, kotlinx-serialization, kotlinx-datetime, Android Gradle Plugin, desugar_jdk_libs, AndroidX libraries, Seiko Image Loader, KVault, Maps Compose, and Play Services Location. - Replaced `ImageResult.Image.toImage()` extension function with direct access to the image property. - Updated Gradle wrapper to version 8.12.1. - Added `nsexception-kt` for handling unhandled exceptions on iOS. - Changed the shell script for building Kotlin code in Xcode to use zsh and load environment variables. - Updated various configurations and settings in the iOS project (iosApp/iosApp.xcodeproj/project.pbxproj). - Removed the Podfile and related configurations as the project now uses Kotlin Multiplatform's native dependency management. - Updated the permission checking logic on Android to use `LifecycleEventEffect` for improved efficiency.
- Replaced `androidx.compose.material` components with `androidx.compose.material3` equivalents across the project. - Updated some build configurations.
- This addition requires adding a desktop target to application. Because of that, settings and webview implementation need to be updated. - The old back handling system is changed with official multiplatform library - Some dependencies are updated.
- Implemented predictive back gesture functionality using `PredictiveBackHandler` and custom screen transitions for a smoother user experience. - Removed the custom swipe gesture handling in iOS and the associated `Store` utility class. - Updated various library dependencies to their latest versions, including Compose, Voyager, Koin, and others. - Enabled `enableOnBackInvokedCallback` in the AndroidManifest for API 33 and above. - Removed explicit `BackHandler` composables from individual screens as back navigation is now handled by the navigator and predictive back gesture.
This commit introduces several improvements to the sharing feature: - Updated the `share` function to accept `title`, `description`, and `imageUrl` parameters for richer sharing content. - Implemented platform-specific sharing for Android and iOS, including image sharing. - Updated Kotlin version to 2.2.0. - Removed unused `Holder` object from iOS main. The share functionality in movie and TV detail screens now utilizes the enhanced `share` function, allowing users to share titles, overviews, and posters.
This commit introduces Compose previews to all screens within the application. This enhancement improves the development workflow by allowing developers to visualize UI components in isolation, facilitating faster iteration and easier debugging. Key changes: - Added `@Preview` annotations to composable functions in various screen files. - Made some internal composable functions private to encapsulate preview logic. - Utilized `LocalInspectionMode` in `rememberPermissionState` to provide a fake permission state for previews. - Added a placeholder painter to `PosterImageItem` for better preview rendering.
The Gradle version used in the GitHub Actions workflow has been updated from 8.4 to 8.14.2. Additionally, the steps for setting up Cocoapods and building the xcworkspace using `gradle podInstall` have been removed from the iOS build process.
The Gradle version used in the GitHub Actions workflow has been updated from 8.4 to 8.14.2. Additionally, the steps for setting up Cocoapods and building the xcworkspace using `gradle podInstall` have been removed from the iOS build process.
0adf4dc
to
67e69d8
Compare
67e69d8
to
e4c942a
Compare
mutkuensert
approved these changes
Jul 8, 2025
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.
Modernization and Feature Enhancements
This branch introduces a series of significant updates and refactorings aimed at modernizing the application's dependencies, improving user experience, and streamlining the development workflow.
Key Highlights:
Dependency Overhaul: We've extensively updated core libraries including Kotlin (2.2.0), Ktor (3.1.2), Compose (1.7.3), Voyager (1.0.1), and Koin (4.0.4), along with numerous other dependencies like kotlinx-coroutines, kotlinx-serialization, and AndroidX libraries. This ensures we're leveraging the latest features, performance improvements, and security fixes. The Gradle wrapper has also been updated to 8.12.1.
Material 3 Adoption: The UI has been fully refactored to utilize Material 3 components, bringing a fresh, modern look and feel to the application while aligning with the latest Android design guidelines.
Enhanced Sharing Functionality: The sharing feature has been significantly improved. It now supports rich content sharing (title, description, and image URL) and implements platform-specific sharing for both Android and iOS, including image sharing.
Predictive Back Gesture: We've integrated predictive back gesture functionality using
PredictiveBackHandler
and custom screen transitions. This provides a smoother and more intuitive navigation experience, particularly on Android devices supporting this feature. Custom iOS swipe gesture handling has been removed in favor of this new approach.Compose Previews: To accelerate UI development and debugging, Compose previews have been added to all screens. This allows developers to visualize UI components in isolation, leading to faster iterations.
Development Workflow Improvements:
LifecycleEventEffect
.These changes collectively represent a substantial step forward in the application's architecture, maintainability, and user experience.