---
title: "Discussion on \"Building a Modern News App with MVVM, Retrofit, Hilt, Pagging and Jetpack Compose in Kotlin\" | Hashnode"
description: "Discussion on \"Building a Modern News App with MVVM, Retrofit, Hilt, Pagging and Jetpack Compose in Kotlin\". Hello developers! Today, we're going to create a News application using the MVVM design pattern, Retrofit for network calls, Hilt for dependency injection, and the modern UI toolkit Jetpack Compose for the user interface. Let's dive in and have some ..."
url: "https://hashnode.com/posts/building-a-modern-news-app-with-mvvm-retrofit-hilt-pagging-and-jetpack-compose-in-kotlin/666fc6aefe878451586b3461"
---

[Feed](https://hashnode.com/feed) /

Discussion

# [Building a Modern News App with MVVM, Retrofit, Hilt, Pagging and Jetpack Compose in Kotlin](https://mayursinhdevblog.hashnode.dev/building-a-modern-news-app-with-mvvm-retrofit-hilt-pagging-and-jetpack-compose-in-kotlin?utm_source=hashnode&utm_medium=feed)

Hello developers! Today, we're going to create a News application using the MVVM design pattern, Retrofit for network calls, Hilt for dependency injection, and the modern UI toolkit Jetpack Compose for the user interface. Let's dive in and have some ...

Jun 17, 2024 · 12 min read · mayursinhdevblog.hashnode.dev  
Updated Nov 11, 2024  
Read the article

-   [#android](https://hashnode.com/tag/android)
-   [#kotlin](https://hashnode.com/tag/kotlin)
-   [#mvvm](https://hashnode.com/tag/mvvm)
-   [#retrofit](https://hashnode.com/tag/retrofit)
-   [#jetpack-compose](https://hashnode.com/tag/jetpack-compose)
-   [#hilt](https://hashnode.com/tag/hilt)
-   [#pagination](https://hashnode.com/tag/pagination)

## Written by

[Mayursinh Parmar](https://hashnode.com/@TheAppMakerBuddy)

@TheAppMakerBuddy · Gujarat,IN

  
[View profile](https://hashnode.com/@TheAppMakerBuddy)

I am a mobile developer and always ready to make your Ideas into Reality

📱Mobile App Developer | Android &amp; Flutter 🌟💡 Passionate about creating intuitive and engaging apps 💭✨ Let’s shape the future of mobile technology!

## Responses 1

Markdown supported · ⌘↵ to post

[Roger Colque Calcina](https://hashnode.com/@rogergcc)

[Aug 21, 2025](https://hashnode.com/posts/building-a-modern-news-app-with-mvvm-retrofit-hilt-pagging-and-jetpack-compose-in-kotlin/666fc6aefe878451586b3461/comment/68a743597f8193438fa681ce)

hello i saw other way @Module @InstallIn(SingletonComponent::class) object RepositoriesModule {

@Provides @Singleton fun provideNewsRepository( apiService: NewsApiService ): NewsRepository = NewsRepositoryImpl ( apiService) } -

class NewsRepositoryImpl ( private val apiService: NewsApiService

) : NewsRepository {....

VS

@Module @InstallIn(SingletonComponent::class) abstract class RepositoryModule {

@Binds abstract fun bindNewsRepository( impl: NewsRepositoryImpl ): NewsRepository } -

class NewsRepositoryImpl @Inject constructor( private val apiService: NewsApiService

) : NewsRepository {....

Basically use bind for repos and singleton only for retrofit room

why not this way?
