A news app which uses NewsAPI to fetch news

NEWSESY

Newesy is news app which uses NewsAPI to fetch news.The main aim of this app was to learn Modern Android Architecture (MVVM).


Features

  • App brings you latest news from a wide range of sources
  • Clean user interface allows user to navigate different news sections easily.
  • User can save news for further reference.
  • App allows to search on a topic from over 80000 news sources and blogs.
  • It also shows news category wise eg-movies,politics,health etc

Technology Stack Used: Kotlin,Coroutines,MVVM architecture,Room,ViewModel,Live data,Retrofit,Gson,Navigation graph,Glide


?
Screenshots

Package Structure

Newsesy    # Root Package
.
├── adapter                         # Adapter for Recycler view and pager
|   ├── AdapterStragged.kt          # Adapter for Stragged layout
|   ├── Myadapter.kt                # Adapter for Linear layout
│   ├── ViewPagerAdapter.kt         # Adapter for View pager
│
|
├── db                              # Room
│   |── ArticleDao.kt               # Data Access Object for room
|   |── ArticleDataBase.kt          # Database
|   |── Convertors.kt               # Convertors for model class
|
├── modals                          # All model classes 
|    |── Articles.kt  
|    |── NewsModal.kt
|    |── Source.kt   
| 
|── network                         # All Retrofit classes
|    |── NetworkApi.kt
|    |── Retrofitinstance.kt
|    
|── ui                              # All fragments used in app
|   |── explore  
|   |── home 
|   |── info
|   |── saved
|   |── search
|   |── viewpagerfragments
|
│── util                            # Utility Classes 
│   
|── viewmodel                       # Viewmodel and Viewmodel provider classes
|   |── NewsViewModelProviderFactory.kt  
|   |── ViewModal.kt
|
│── repository                      # Repository for both remote and local data
|    |── Repository.kt
|
|── NewsActivity.kt                 # For showing full news article
├── MainActivity.kt                 # MainActivity
├── SplashScreen.kt                 # SplashScreen

API key
?

You need to provide API key to fetch the news. Currently the news is fetched from NewsAPI

  • Generate an API key from NewsAPI
  • Add the API key in util->contants file
  • Build the app

GitHub

https://github.com/shantanu/RaTHOR-Newsesy-App