note.app.video.1.mp4
Tech Stack: Java · SQLite · ROOM DB · Live Data · Android Data Binding · Model-view-viewmodel (MVVM) · Google Authentication
This assignment involves designing and developing a simple Notes Android app with the following features:
- Single Activity Design: The app uses only one activity, screens implemented using multiple fragments.
- Login Screen: Users are prompted to log in using Gmail. The app tracks logged-in users using SharedPreferences.
- Notes Display: Once logged in, users see all their notes displayed in a RecyclerView.
- Note Management: Users can add, update, and delete notes.
- Architecture: The app is designed using the MVVM (Model-View-ViewModel) architectural pattern, ensuring a clean separation between the UI and business logic.
- Database: Instead of using SQLite directly, the app uses Room DB, an abstraction layer over SQLite. Room simplifies database operations and provides compile-time verification of SQL queries.
- Data Binding: Data binding is used throughout the app to bind UI components directly to data sources, reducing boilerplate code and enhancing maintainability.
- Login: Gmail is used for authentication instead of Google+, following its discontinuation.
- Multiple Fragments: Different screens and functionalities are implemented using fragments within a single activity.
- Simplified Database Access: Room provides a higher-level abstraction over SQLite, making database operations easier and less error-prone.
- Compile-Time Verification: SQL queries in Room are checked at compile time, reducing runtime errors.
- LiveData Integration: Room supports LiveData, which helps in observing data changes and updating the UI automatically.
- Data Conversion: Room handles the conversion between database types and Java/Kotlin types, reducing the need for manual conversion.
- Ease of Use: Room simplifies complex database operations with annotations and provides a cleaner API for accessing data.
- Login Screen: User authentication via Gmail.
- Notes Management: Add, update, and delete notes.
- RecyclerView: Display all notes of the logged-in user in a RecyclerView.
- Data Binding: Utilized throughout the app to streamline UI updates and reduce boilerplate code.