https://github.com/mohitgupta121/newsdo
NewsDo - An app Easy to use like reel in instagram, News App with awesome user interface, save news, search news, different category, all countries news in one app. NewsDo is built using Kotlin and follows all modern android Development practices.
https://github.com/mohitgupta121/newsdo
android kotlin kotlin-android kotlin-coroutines mvvm-architecture navigation-component news-api newsapi newsapp retrofit2 room-database
Last synced: 2 months ago
JSON representation
NewsDo - An app Easy to use like reel in instagram, News App with awesome user interface, save news, search news, different category, all countries news in one app. NewsDo is built using Kotlin and follows all modern android Development practices.
- Host: GitHub
- URL: https://github.com/mohitgupta121/newsdo
- Owner: MohitGupta121
- License: apache-2.0
- Created: 2022-04-16T17:43:13.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-10-12T20:59:30.000Z (over 1 year ago)
- Last Synced: 2025-02-28T05:27:31.691Z (3 months ago)
- Topics: android, kotlin, kotlin-android, kotlin-coroutines, mvvm-architecture, navigation-component, news-api, newsapi, newsapp, retrofit2, room-database
- Language: Kotlin
- Homepage:
- Size: 3.36 MB
- Stars: 5
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# **NewsDo**
**NewsDo** is an app easy to use like reel in instagram, News App with awesome user interface. You can save news, search news with different category and all countries news in one app.
# Application Install
***You can Install and test latest NewsDo app from below π***
[](https://github.com/MohitGupta121/NewsDo/releases/download/V1/NewsDo.apk)
## Setup
Clone the repository on your machine. Open the project on your IDE and add your api key from [newsapi](https://newsapi.org) and everything will be setup## About
It users newsapi to fetch all the news with the help of retrofit2, mvvm, livedata and much more...
- Fully functionable.
- Clean and Simple Material UI.
- It supports dark theme too π.### Insights into the app π
https://github.com/MohitGupta121/NewsDo/assets/76530270/faeac6a4-9a11-4714-bf45-4913ec575f62
**NewsDo** offers light as well as dark theme π. So now you can use NewsDo in whatever theme you like the most. π₯
| | |
| --- | --- |
||
|
**NewsDo** support saved your favourite news and you can read it whenever you need.
| | |
| --- | --- |
||
|
This app also give to access to get the news according to your interset of field/categories and do advance search in that category.
It's allow you to read news of any part of the country that you want.
NewsDo lets you read news π° daily like instagram reels or youtube shots. It allow you to get news of your interseted category. You will read all over the world or any country π news in one app. Instead of this you also save you favourite π news for future.
## πΈ Screenshots
||||
|:----------------------------------------:|:-----------------------------------------:|:-----------------------------------------: |
||
|
|
||
|
|
||
|
|
## Built With π
- [Kotlin](https://kotlinlang.org/) - First class and official programming language for Android development.
- [Coroutines](https://kotlinlang.org/docs/reference/coroutines-overview.html) - For asynchronous and more..
- [Flow](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/) - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
- [Android Architecture Components](https://developer.android.com/topic/libraries/architecture) - Collection of libraries that help you design robust, testable, and maintainable apps.
- [ViewModel](https://developer.android.com/topic/libraries/architecture/viewmodel) - Stores UI-related data that isn't destroyed on UI changes.
- [ViewBinding](https://developer.android.com/topic/libraries/view-binding) - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
- [DataBinding](https://developer.android.com/topic/libraries/data-binding) - Binds data directly into XML layouts
- [Room](https://developer.android.com/training/data-storage/room) - Room is an android library which is an ORM which wraps android's native SQLite database
- [DataStore](https://developer.android.com/topic/libraries/architecture/datastore) - Jetpack DataStore is a data storage solution that allows you to store key-value pairs or typed objects with protocol buffers.
- [Dependency Injection](https://developer.android.com/training/dependency-injection) -
- [Hilt-Dagger](https://dagger.dev/hilt/) - Standard library to incorporate Dagger dependency injection into an Android application.
- [Hilt-ViewModel](https://developer.android.com/training/dependency-injection/hilt-jetpack) - DI for injecting `ViewModel`.
- [Retrofit](https://square.github.io/retrofit/) - A type-safe HTTP client for Android and Java.
- [GSON](https://github.com/google/gson) - A modern JSON library for Kotlin and Java.
- [Timber](https://github.com/JakeWharton/timber) - A simple logging library for android.
- [GSON Converter](https://github.com/square/retrofit/tree/master/retrofit-converters/gson) - A Converter which uses Moshi for serialization to and from JSON.
- [Glide](https://github.com/bumptech/glide) - An image loading and caching library for Android focused on smooth scrolling
- [Coil](https://github.com/coil-kt/coil) - An image loading library for Android backed by Kotlin Coroutines.
- [Material Components for Android](https://github.com/material-components/material-components-android) - Modular and customizable Material Design UI components for Android.# Package Structure
com.mohit.newsDo # Root Package
.
βββ data # For data handling.
| βββ local # Room DB and its related classes
β βββ model # Model data classes, both remote and local entities
β βββ repo # Single source of data.
|
βββ ui # UI/View layer
| βββ adapters # All Adapters, viewholder and diffUtils for recyclerViews
β βββ mainScreen # Home Activity and its fragments
| βββ ViewModel # All News Views Model
β βββ splashScreen # SplashScreen
|
βββ utils # Utility Classes / Kotlin extensions## Architecture
This app uses [***MVVM (Model View View-Model)***](https://developer.android.com/jetpack/docs/guide#recommended-app-arch) architecture.