Skip to content

Release v1.0.5: UI Refactoring, Stability Enhancements, and Dependency Updates#23

Merged
dev-ali-mansour merged 9 commits intomainfrom
release/1.0.5
Feb 15, 2026
Merged

Release v1.0.5: UI Refactoring, Stability Enhancements, and Dependency Updates#23
dev-ali-mansour merged 9 commits intomainfrom
release/1.0.5

Conversation

@dev-ali-mansour
Copy link
Owner

Overview

This PR prepares version 1.0.5 by introducing significant improvements to the app's architecture, UI management, and build system. The primary focus was on decentralizing UI components for better maintainability and enhancing Compose stability.

Key Changes

🎨 UI & UX Refactoring

  • Decentralized TopBar & FAB: Moved TopBar and Floating Action Button management from the global scaffold into individual screens (HomeScreen, NewTaskScreen, TaskDetailsScreen, and UpdateTaskSreen). This provides better control over UI state per screen.
  • Common UI Components: Introduced CommonTopAppBar to standardize the look and feel across the application.
  • Navigation Enhancements: Refined AppNavHost logic and implemented application exit logic.

🏗️ Architecture & Stability

  • ViewModel Stability: Improved ViewModel integration and dependency injection within Compose to prevent unnecessary recompositions and lifecycle issues.
  • Code Cleanup: Removed unnecessary navigation callbacks and refactored screen implementations for better readability.

⚙️ Build System & Dependencies

  • AGP Upgrade: Upgraded Android Gradle Plugin to 9.0.1.
  • Gradle Tooling: Configured Gradle Daemon JVM toolchain and updated the Gradle wrapper for improved build reliability.
  • Dependency Cleanup: Removed the obsolete multidex dependency (since minSdk is 24).
  • Library Updates: Updated various libraries and Kotlin versions in libs.versions.toml.

Files Impacted

  • app/build.gradle.kts & gradle/libs.versions.toml: Build configuration and dependency updates.
  • HomeScreen.kt, NewTaskScreen.kt, TaskDetailsSreen.kt, UpdateTaskSreen.kt: UI refactoring.
  • CommonTopAppBar.kt: New shared UI component.
  • HomeViewModel.kt, NewTaskViewModel.kt, SelectedTaskViewModel.kt: Architectural improvements.

@dev-ali-mansour dev-ali-mansour self-assigned this Feb 15, 2026
@dev-ali-mansour dev-ali-mansour added the enhancement New feature or request label Feb 15, 2026
…pose

- Add `@Stable` annotation to `HomeViewModel`, `NewTaskViewModel`, `UpdateTaskViewModel`, `TaskDetailsViewModel`, and `SelectedTaskViewModel` for better Compose performance.
- Move `koinViewModel()` calls from function bodies to default parameter values in `AppNavHost`, `HomeScreen`, `NewTaskScreen`, `UpdateTaskScreen`, and `TaskDetailsScreen` to improve testability and follow best practices.
- Format `when` blocks across various ViewModels and Screens to use consistent bracing.
- Reorganize imports in multiple UI files.
Introduces a reusable `CommonTopAppBar` Composable using Material 3 `CenterAlignedTopAppBar`. Features include support for a title, an optional back/close navigation icon, and custom actions.
Refactors the UI architecture to use `Scaffold` within individual feature screens (`HomeScreen`, `NewTaskScreen`, `UpdateTaskScreen`, and `TaskDetailsScreen`) instead of passing composable setters through `AppNavHost`.

Specific changes:
*   Removed `onSetTopBar` and `onSetFab` callbacks from `AppNavHost` and related screen composables.
*   Introduced `CommonTopAppBar` to standardize the top bar across different screens.
*   Updated `MainApp` to remove state tracking for dynamic top bar and FAB content.
*   Added `consumeWindowInsets` in `MainApp` to correctly handle padding in the navigation host.
*   Added `add_task` string resource for better localization and accessibility.
…pose

- Add `@Stable` annotation to `HomeViewModel`, `NewTaskViewModel`, `UpdateTaskViewModel`, `TaskDetailsViewModel`, and `SelectedTaskViewModel` for better Compose performance.
- Move `koinViewModel()` calls from function bodies to default parameter values in `AppNavHost`, `HomeScreen`, `NewTaskScreen`, `UpdateTaskScreen`, and `TaskDetailsScreen` to improve testability and follow best practices.
- Format `when` blocks across various ViewModels and Screens to use consistent bracing.
- Reorganize imports in multiple UI files.
…app logic

- Removes `onSetTopBar` and `onSetFab` parameters from `AppNavHost` and its internal screen destinations.
- Implements `OnBackPress`, `OnExitDialogConfirmed`, and `OnExitDialogCancelled` event handling in `HomeViewModel`.
- Adds `ExitApp` effect handling in `HomeScreen` to close the activity and terminate the process.
- Update Gradle to 9.2.1 and AGP to 9.0.1.
- Upgrade Kotlin to 2.3.10 and KSP to 2.3.5.
- Update various library versions, including Lifecycle (2.10.0), Activity Compose (1.12.4), Compose BOM (2026.02.00), Navigation (2.9.7), Room (2.8.4), and MockK (1.14.9).
- Remove the `kotlin-android` plugin alias from build scripts.
- Refactor `jvmTarget` configuration and test resource directory declaration in `app/build.gradle.kts`.
- Removes `multidex` version and library definition from `gradle/libs.versions.toml`.
- Removes `multidex` dependency from `app/build.gradle.kts`.
- Refactors `MyApplication` to inherit from `Application` instead of `MultiDexApplication` and removes related imports.
- Adds `gradle-daemon-jvm.properties` to specify Java 21 (Adoptium) as the daemon toolchain for various platforms.
- Applies the `org.gradle.toolchains.foojay-resolver-convention` plugin in `settings.gradle.kts` to resolve these toolchains via Foojay.
Updates `HomeScreen.kt` to include `LocalContext` and `kotlin.system.exitProcess` for upcoming logic changes.
@dev-ali-mansour dev-ali-mansour merged commit 99a8cc6 into main Feb 15, 2026
2 checks passed
@dev-ali-mansour dev-ali-mansour deleted the release/1.0.5 branch February 15, 2026 10:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant