You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jun 18, 2025. It is now read-only.
To try out these sample apps, you need to use the latest Canary version of Android Studio 4.2.
This project showcases:-
Creating simple UI with Compose
State Management
Text Input and focus management
Integration with architecture components - ViewModel, Room, LiveData
Basic animations and transitions
Using MVVM pattern with Room database
Unit tests and integration tests
Dependency injection using Hilt
Status: 🚧 Work in progress
The master branch has basic features completed. Other features are still being worked on.
Features
✔️ Simple UI with compose
The project contains 2 simple 'screens'. The NotesList Composable is responsible for displaying the main notes list. The NoteEditor composable displays a simple BaseTextField with certain modifications. It even provides a special visual transformation for the 1st line of Text.
✔️ State Management
State management is done using architecture components such as ViewModel and LiveData. Compose specific State is used at certain places. Flow is used for reactive streams of data.
✔️ Text input and focus management
The NoteEditor composable has heavy focus on text input 📝 and focus management.
✔️ Integration with architecture components
The app is integrated with architecture components. ViewModel is used for the logic layer of the application. Room is used for data persistence.
✔️ Basic animations
Basic animations 💃 are included - Crossfade between screens, swipe to delete colour change and size change animation.
✔️ Using MVVM pattern with Room
The app is following the recommended MVVM pattern along with using Room. A repository layer is used for linking room to the ViewModel.
🚧 Unit tests and integration tests
Some basic unit and integration tests are already written. Others will be written soon.
🆕 Dependency injection using Hilt
Room database, Dao, Repository and ViewModel are all injected using Hilt. This will allow simpler testing.
This readme is a 🚧 work in progress and will be updated 🔜.
License
Copyright 2020 Yashovardhan Dhanania
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
About
Trying out JetPack Compose by building a basic Notes app. And a lot more