This is a simple news application built with Kotlin for Android. It is an Android news app that provides users with the latest news. Firebase Authentication allows user login, and users can save their favorite news articles. Additionally, news can be searched using the search functionality, and saved favorite news articles can be listed. The app is developed using Android's modern architecture and aims to deliver the best user experience.
- User Login: User login is performed using Firebase Authentication. Users can log in with email and password.
- Favorite News: Users can add news to their favorites and view their favorite news. Favorite news can be deleted, and an "undo" operation can be performed.
- News Search: Users can search for news and find the stories they want. Search results are updated in real-time.
- News List: Current news is displayed in a list format. New news can be added to the list, and more news is loaded as the user scrolls the page.
- Error Management: Error messages are shown during search or news loading operations.
-
Kotlin: The primary language used for Android app development.
-
Firebase: Used for user authentication processes, enabling users to log in securely to access features such as saving news articles.
-
ViewBinding: A method to bind UI components, providing safer and more efficient code by reducing the need for
findViewById
calls. -
Fragment: Used to create reusable UI components, making the app's interface modular and efficient across different screens.
-
LiveData: Used to observe and update UI data changes in a lifecycle-aware manner, ensuring the UI is updated with the most current information.
-
Lifecycle: Used to manage the lifecycle of the app and ensure a sustainable connection between the UI and data, preventing memory leaks.
-
Navigation Component: Used to manage screen transitions and navigation within the app, simplifying back-stack management.
-
ViewModel: Used for managing and sharing UI data, providing lifecycle-compatible data to keep the UI updated even through configuration changes.
-
RecyclerView: Used to display news articles in a list format, with support for efficient data handling and UI updates.
-
Room Database: Ensures that favorite news are stored locally on the device, allowing for offline access to saved news.
-
Retrofit: Used to make network requests and fetch news data from an API, handling the process in a clean, efficient, and type-safe manner.
-
Glide: Ensures that news images (such as thumbnails) are loaded quickly and efficiently into ImageViews, providing smooth UI interactions.
-
Coroutines: Used to manage asynchronous tasks, allowing data fetching in the background without blocking the UI and providing a responsive experience for users.
Splash Screen | Login Screen | News Headlines |
---|---|---|
![]() |
![]() |
![]() |
Favorite News | Search News | News Detail |
---|---|---|
![]() |
![]() |
![]() |