| name | Create Compose UI Component |
| description | Instructions for scaffolding a new Jetpack Compose screen or component and using Koin for ViewModel injection in MemosM. |
Create Compose UI Component
MemosM uses Jetpack Compose for its UI.
1. File Location
Place new screen-level components inside app/src/main/java/org/example/memosm/ui/component/ or a relevant sub-package.
2. ViewModels and Koin
The project uses Koin for Dependency Injection. If your screen requires a ViewModel (e.g., MemosViewModel), inject it using koinViewModel().
import androidx.compose.runtime.Composable
import org.koin.androidx.compose.koinViewModel
import org.example.memosm.viewmodel.MemosViewModel
@Composable
fun MyNewScreen(
viewModel: MemosViewModel = koinViewModel()
) {
}
3. Previews
When creating a Component, always try to add a @Preview to ensure it renders correctly in Android Studio without building the entire app.
@Preview(showBackground = true)
@Composable
fun MyNewScreenPreview() {
MaterialTheme {
MyNewScreen(viewModel = )
}
}
4. Navigation
If adding a completely new screen, add it to the navigation graph in app/src/main/java/org/example/memosm/ui/MainScreen.kt and define its route in NavigationModels.kt.