Skip to content

15 UI migration compose - #23

Merged
alexistercero-rho-dev merged 3 commits into
devfrom
15-ui-migration-compose
Jul 30, 2026
Merged

15 UI migration compose#23
alexistercero-rho-dev merged 3 commits into
devfrom
15-ui-migration-compose

Conversation

@AlexisTercero55

Copy link
Copy Markdown
Collaborator

Implementation of UI migration plan from Android View System to Jetpack compose

MIGRATION | #18 #20 login feature from Fragments to Jetpack Compose

  • Remove BaseFragment, LoginFragment, and sub-component fragments (LoginEmailFragment, LoginPasswordFragment, LoginButtonFragment) along with their associated XML DataBinding layouts.
  • Implement LoginScreen and modular UI components (LoginEmailField, LoginPasswordField, LoginButton) using Jetpack Compose and Material3.
  • Refactor LoginViewModel to use Compose mutableStateOf for email and password tracking.
  • Centralize input validation debouncing logic (300ms) within the LoginViewModel using viewModelScope to replace fragment-level handling.
  • Update LoginViewModel to handle pure state-driven UI updates, ensuring unidirectional data flow between the ViewModel and Composables.

MIGRATION | #21 Home feature to Jetpack Compose

  • Replace Fragment-based architecture and XML layouts with the HomeScreen composable.
  • Remove legacy HomeFragment, HomeServicesFragment, PageHeaderFragment, and PageFooterFragment along with their associated layout files.
  • Implement modular UI components using Jetpack Compose: PageHeader, PageFooter, ServiceList, and ServiceItem.
  • Replace RecyclerView and ServiceAdapter with LazyVerticalGrid for displaying services.
  • Integrate HomeViewModel and HeaderViewModel state using observeAsState within the new composable hierarchy.

MIGRATION | #22 MainActivity to Jetpack Compose and Compose Navigation

  • Convert MainActivity from AppCompatActivity to ComponentActivity and replace XML layouts with setContent.
  • Remove activity_main.xml and nav_graph.xml, migrating navigation logic to a Compose-based NavHost.
  • Implement routing using LaunchedEffect to reactively navigate between LoginScreen and HomeScreen based on authentication state.
  • Replace fragment-based UI with LoginScreen and HomeScreen composables.
  • Introduce LoadingScreen and LoadingOverlay composables to manage UI state during session initialization and background processing.
  • Clean up View-based dependencies including Data Binding and NavHostFragment.

This PR would
fix #18
fix #20
fix #21
fix #22

- Remove `BaseFragment`, `LoginFragment`, and sub-component fragments (`LoginEmailFragment`, `LoginPasswordFragment`, `LoginButtonFragment`) along with their associated XML DataBinding layouts.
- Implement `LoginScreen` and modular UI components (`LoginEmailField`, `LoginPasswordField`, `LoginButton`) using Jetpack Compose and Material3.
- Refactor `LoginViewModel` to use Compose `mutableStateOf` for `email` and `password` tracking.
- Centralize input validation debouncing logic (300ms) within the `LoginViewModel` using `viewModelScope` to replace fragment-level handling.
- Update `LoginViewModel` to handle pure state-driven UI updates, ensuring unidirectional data flow between the ViewModel and Composables.

Signed-off-by: Alexis Tercero <alexistercero55@gmail.com>
- Replace Fragment-based architecture and XML layouts with the `HomeScreen` composable.
- Remove legacy `HomeFragment`, `HomeServicesFragment`, `PageHeaderFragment`, and `PageFooterFragment` along with their associated layout files.
- Implement modular UI components using Jetpack Compose: `PageHeader`, `PageFooter`, `ServiceList`, and `ServiceItem`.
- Replace `RecyclerView` and `ServiceAdapter` with `LazyVerticalGrid` for displaying services.
- Integrate `HomeViewModel` and `HeaderViewModel` state using `observeAsState` within the new composable hierarchy.

Signed-off-by: Alexis Tercero <alexistercero55@gmail.com>
- Convert `MainActivity` from `AppCompatActivity` to `ComponentActivity` and replace XML layouts with `setContent`.
- Remove `activity_main.xml` and `nav_graph.xml`, migrating navigation logic to a Compose-based `NavHost`.
- Implement routing using `LaunchedEffect` to reactively navigate between `LoginScreen` and `HomeScreen` based on authentication state.
- Replace fragment-based UI with `LoginScreen` and `HomeScreen` composables.
- Introduce `LoadingScreen` and `LoadingOverlay` composables to manage UI state during session initialization and background processing.
- Clean up View-based dependencies including Data Binding and `NavHostFragment`.

Signed-off-by: Alexis Tercero <alexistercero55@gmail.com>
@AlexisTercero55 AlexisTercero55 self-assigned this Jul 30, 2026
@AlexisTercero55 AlexisTercero55 added Auth-feature UI compose feature - LoginViewModel Home-feature Compose Home screen. Core Rho Studio UI app codebase UI UI Compose reusable element. labels Jul 30, 2026
@AlexisTercero55 AlexisTercero55 added Navigation Jetpack Navigation Compose UI UI Jetpack compose development first migration_1 UI using Jetpack compose labels Jul 30, 2026
@AlexisTercero55 AlexisTercero55 moved this from Backlog to In progress in UI-Rho-Studio-Components Jul 30, 2026

@alexistercero-rho-dev alexistercero-rho-dev left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Build and application test on emulator

2026-07-30.11-01-23.mp4

@alexistercero-rho-dev
alexistercero-rho-dev merged commit 2409293 into dev Jul 30, 2026
2 checks passed
@github-project-automation github-project-automation Bot moved this from In progress to Done in UI-Rho-Studio-Components Jul 30, 2026
@AlexisTercero55
AlexisTercero55 deleted the 15-ui-migration-compose branch July 30, 2026 17:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Auth-feature UI compose feature - LoginViewModel Compose UI UI Jetpack compose development first Core Rho Studio UI app codebase Home-feature Compose Home screen. migration_1 UI using Jetpack compose Navigation Jetpack Navigation UI UI Compose reusable element.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Migrate MainActivity layout to a full Compose NavHost Migrate Home Flow Migrate Auth Flow Create Login input fields

2 participants