An Android application that aggregates news from various sources, provides AI-powered recommendations, and supports offline reading with text-to-speech capabilities.
- Fetches news from NewsAPI and categorizes it by topics
- Uses AI-based recommendations based on user preferences and reading history
- Offline mode to save articles for later reading
- Text-to-Speech feature for listening to news articles
- Customizable news preferences by categories
- Modern UI built with Jetpack Compose
- Kotlin - Programming language
- Jetpack Compose - Modern UI toolkit
- MVVM Architecture - Clean separation of concerns
- Room Database - Offline storage
- Retrofit - API calls
- NewsAPI - News data source
- Firebase - Analytics and Authentication
- ML Kit - Text-to-speech functionality
- Sign up at NewsAPI.org to get your API key
- In
app/build.gradle.kts, replaceYOUR_NEWS_API_KEYwith your actual API key:
buildConfigField("String", "NEWS_API_KEY", "\"YOUR_ACTUAL_API_KEY\"")- Create a Firebase project at Firebase Console
- Add an Android app with package name
com.sebastiandavis.news_app - Download the
google-services.jsonfile and place it in the app directory - This replaces the placeholder file in the project
- Open the project in Android Studio
- Sync Gradle files
- Run the app on an emulator or physical device
The app follows the MVVM (Model-View-ViewModel) architecture pattern:
- Data Layer: API services, Room database, and repositories
- Domain Layer: Business logic, recommendation engine
- Presentation Layer: ViewModels, Composables (UI)
]
- Enhanced recommendation algorithm
- User authentication with Firebase
- Article sharing functionality
- Dark mode support
- Integration with more news sources
[Include license information]


