A news app with MVVM architecture pattern
- Swipe down through a feed of breaking news along with pagination functionality.
- Click on your desired news article and read the whole article -> implemented through WebView.
- Save the article for later (using RoomDB).
- Under save news tab, you can read saved news and also delete them by swiping left/right. UNDO option pops up, to prevent accidental swipes.
- Under search news tab, search for any news using keywords/sentences.
- Kotlin - First class and official programming language for Android development. Our app is totally written in kotlin.
- Different Layouts - In this app we have used difrenet layouts to make the app UI responsive. The used layouts are LinearLayout, ConstraintLayout and FrameLayout .
- Coroutines - For asynchronous and more. Speacially used at the time of networking calls and using database .
- Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
- ViewModel - Stores UI-related data that isn't destroyed on UI changes. Highly used shared viewmodel in the app.
- Data Binding - The Data Binding Library is a support library that allows you to bind UI components in your layouts to data sources in your app using a declarative format rather than programmatically. Used two data binding in each fragments.
- Navigation - Navigation refers to the interactions that allow users to navigate across, into, and back out from the different pieces of content within your app. In our app we followed single app architecture using navigation and also implemented an unique nav nav drawer.
- Room - The Room persistence library provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite. To store notes.
- LiveData - LiveData is an observable data holder class. Unlike a regular observable, LiveData is lifecycle-aware, meaning it respects the lifecycle of other app components, such as activities, fragments, or services.
- Retrofit - A type-safe HTTP client for Android and Java.
- RecyclerView - RecyclerView makes it easy to efficiently display large sets of data. To show large lists.
- MVVM - MVVM architecture is a Model-View-ViewModel architecture that removes the tight coupling between each component. In the note taking section we used MVVM.
- WebView -The WebView class is an extension of Android's View class that allows you to display web pages as a part of your activity layout.

