Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shade-sdev/secvault
A Password Manager built with Jetpack Compose
https://github.com/shade-sdev/secvault
desktop-app jetpack-compose jvm koin-kotlin kotlin material-ui modern-ui mvvm-architecture password-manager voyager-navigation
Last synced: about 2 months ago
JSON representation
A Password Manager built with Jetpack Compose
- Host: GitHub
- URL: https://github.com/shade-sdev/secvault
- Owner: shade-sdev
- Created: 2024-08-02T05:19:13.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2024-10-24T12:09:22.000Z (3 months ago)
- Last Synced: 2024-10-24T23:07:30.667Z (3 months ago)
- Topics: desktop-app, jetpack-compose, jvm, koin-kotlin, kotlin, material-ui, modern-ui, mvvm-architecture, password-manager, voyager-navigation
- Language: Kotlin
- Homepage:
- Size: 1.78 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### Architecture
- **di/**: Contains dependency injection setup using Koin.
- `AppModule.kt`: Defines Koin modules for dependency injection.
- **repository/**: Contains data models and repository classes.
- `Person.kt`: Data class representing a person.
- `PersonRepository.kt`: Repository class for data operations.
- **ui/**: Contains UI-related code.
- **theme/**: Contains theme-related files for Jetpack Compose.
- `Color.kt`, `Shape.kt`, `Theme.kt`, `Type.kt`: Define colors, shapes, themes, and typography.
- **components/**: Contains reusable UI components.
- `PersonItem.kt`: Composable function for displaying a person item.
- **screens/**: Contains screen composables.
- `PersonScreen.kt`: Composable function for the person screen.
- `App.kt`: Main composable function for the application.
- **viewmodel/**: Contains ViewModel classes.
- `PersonViewModel.kt`: ViewModel for managing person data.
- `Main.kt`: Entry point of the application.### Architecture Pattern
The architecture pattern to follow is MVVM (Model-View-ViewModel), which is well-suited for Jetpack Compose
applications.### MVVM Components
- **Model**: Represents the data layer, including data classes and repository.
- `Person.kt`: Data class.
- `PersonRepository.kt`: Repository for data operations.
- **View**: Represents the UI layer, including composable functions.
- `PersonScreen.kt`: Screen composable.
- `PersonItem.kt`: UI component.
- **ViewModel**: Manages UI-related data and business logic.
- `PersonViewModel.kt`: ViewModel for person data.src/
├── main/
│ ├── kotlin/
│ │ ├── com/
│ │ │ ├── yourapp/
│ │ │ │ ├── di/
│ │ │ │ │ └── AppModule.kt
│ │ │ │ ├── repository/
│ │ │ │ │ ├── Person.kt
│ │ │ │ │ └── PersonRepository.kt
│ │ │ │ ├── ui/
│ │ │ │ │ ├── theme/
│ │ │ │ │ │ ├── Color.kt
│ │ │ │ │ │ ├── Shape.kt
│ │ │ │ │ │ ├── Theme.kt
│ │ │ │ │ │ └── Type.kt
│ │ │ │ │ ├── components/
│ │ │ │ │ │ └── PersonItem.kt
│ │ │ │ │ ├── screens/
│ │ │ │ │ │ └── PersonScreen.kt
│ │ │ │ │ └── App.kt
│ │ │ │ ├── viewmodel/
│ │ │ │ │ └── PersonViewModel.kt
│ │ │ │ └── Main.kt
│ ├── resources/
│ │ └── …