From 4b12e0853867fb11ee97a83a71d20854d4129a94 Mon Sep 17 00:00:00 2001
From: Raj Manjrekar <79650580+Raj-m01@users.noreply.github.com>
Date: Fri, 7 Jan 2022 18:30:34 +0530
Subject: [PATCH] Create README.md
---
README.md | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 83 insertions(+)
create mode 100644 README.md
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..ff1f124
--- /dev/null
+++ b/README.md
@@ -0,0 +1,83 @@
+# News-App
+Android news app built in kotlin that fetches news data from news api with **Retrofit** and displays news to users.
+This App follow MVVM architecture carrying Room operations in Data Access Objects(DAO) and API calls in Repository, and fragments navigations implemented with Android Navigation Component.
+
+### Problem Statement :
+In Today's corporate life, people don't have enough time to watch news from different sources, thus they can miss out important opportunities, information, etc. Besides opportunites, it's a good habit to be educated about the environment we live in.
+
+### Proposed Solution :
+A News app built in kotlin with implementation of MVVM architecture and android navigation components.This news app clusters news from various sources of journalism, So that users can get aware in a glimpse. They can also share relevant news with their belongings and save important news.
+
+
+ ### App Screenshots :
+
+
+
+ News |
+ Saved News |
+ News Sharing |
+
+
+ |
+ |
+ |
+
+
+
+
+
+
+ ### App features :
+ * Views News
+ * Share News
+ * Save News
+
+
+
+### MVVM Architecture :
+
+MVVM is one of the architectural patterns which enhances separation of concerns, it allows separating the user interface logic from the business (or the back-end) logic. Its target (with other MVC patterns goal) is to achieve the following principle "Keeping UI code simple and free of app logic in order to make it easier to manage".
+
+
+
+
+ |
+
+
+
+#### MVVM components :
+
+* **Entity:** Annotated class that describes a database table when working with Room.
+
+ * **SQLite database:** On device storage. The Room persistence library creates and maintains this database for you.
+
+ * **DAO:** Data access object. A mapping of SQL queries to functions. When you use a DAO, you call the methods, and Room takes care of the rest.
+
+ * **Room database:** Simplifies database work and serves as an access point to the underlying SQLite database (hides SQLiteOpenHelper). The Room database uses the DAO to issue queries to the SQLite database.
+
+ * **Repository:** Used to manage multiple data sources.
+
+ * **ViewModel:** Acts as a communication center between the Repository (data) and the UI. The UI no longer needs to worry about the origin of the data. ViewModel instances survive Activity/Fragment recreation.
+
+ * **LiveData:** A data holder class that can be observed. Always holds/caches the latest version of data, and notifies its observers when data has changed.
+
+
+ ### Navigation Component :
+
+ #### The Navigation component consists of three key parts that are described below:
+
+* **Navigation graph :** An XML resource that contains all navigation-related information in one centralized location. This includes all of the individual content areas within your app, called destinations, as well as the possible paths that a user can take through your app.
+
+* **NavHost :** An empty container that displays destinations from your navigation graph. The Navigation component contains a default NavHost implementation, NavHostFragment, that displays fragment destinations.
+
+* **NavController :** An object that manages app navigation within a NavHost. The NavController orchestrates the swapping of destination content in the NavHost as users move throughout your app.
+
+### Retrofit :
+Retrofit is a type-safe REST client for Android, Java and Kotlin developed by Square. The library provides a powerful framework for authenticating and interacting with APIs and sending network requests with OkHttp.
+
+### Application link : https://drive.google.com/file/d/18owVaiT5WGPQ4SidLY9niOn8_XGsIgjE/view?usp=sharing
+
+### Future Scope :
+
+* Add Quiz such as sudoku, words, etc. section in app
+* Display various data, surveys, events( such as earthquake magnitude) in analytical visuals to get better idea.