A clean, modern Android news app for browsing and bookmarking local news articles with customizable categories and offline reading support.
Primary Keywords: Android Development • Mobile App • News Reader • Local News • Java Programming • Material Design
Technical Stack: Android SDK • Java • Material Design Components • RecyclerView • SharedPreferences • HTTP Client • Gradle
App Features: News Aggregation • Article Bookmarking • Offline Reading • Category Filtering • Pull-to-Refresh • Social Sharing
Industry Focus: News & Media • Mobile Applications • Content Management • User Experience • Information Technology • Digital Publishing
- Multiple News Categories: Browse articles from Business, Education, Environment, Science, Sports, Technology, Tourism, and World news
- Bookmark Articles: Save your favorite articles for offline reading
- Customizable Settings: Choose your preferred news categories and number of articles to display
- Clean Material Design: Modern, intuitive user interface following Material Design guidelines
- Pull-to-Refresh: Easy content updates with swipe gesture
- Share Articles: Share interesting news with friends and family
- Offline Support: Read bookmarked articles without internet connection
Screenshots showcase: No internet connection handling, empty bookmarks state, and settings configuration.
- Language: Java
- Platform: Android (API 28+)
- Architecture: MVC Pattern
- UI Framework: Material Design Components
- Networking: HTTP URL Connection
- Data Storage: SharedPreferences for settings, local storage for bookmarks
- Build System: Gradle
- AndroidX AppCompat
- Material Design Components
- SwipeRefreshLayout
- Preference Library
- Loader Library
- ConstraintLayout
- Android Studio Arctic Fox or later
- Android SDK API 28 or higher
- Java 17 and higher
-
Clone the repository:
git clone https://github.com/sandesha21/newstoday-android.git
-
Open the project in Android Studio
-
Create a
gradle.propertiesfile in the root directory and add your API keys:guard_a=your_api_key_part_1 guard_b=your_api_key_part_2 guard_c=your_api_key_part_3 guard_d=your_api_key_part_4 guard_e=your_api_key_part_5
-
Sync the project with Gradle files
-
Run the app on an emulator or physical device
- Browse News: Launch the app to see the latest news articles
- Change Categories: Go to Settings to select your preferred news categories
- Bookmark Articles: Tap the bookmark icon on any article to save it
- View Bookmarks: Access your saved articles from the bookmarks menu
- Share Articles: Use the share button to send articles to others
- Refresh Content: Pull down on the main screen to refresh articles
NewsToday-Android-App/
├── app/src/main/java/com/sandesh/android/newstoday/
│ ├── Article.java # Article data model
│ ├── ArticleAdapter.java # RecyclerView adapter for articles
│ ├── ArticleLoader.java # AsyncTaskLoader for fetching articles
│ ├── Bookmarks.java # Bookmark data model
│ ├── BookmarksActivity.java # Activity for displaying bookmarked articles
│ ├── NewsActivity.java # Main activity
│ ├── QueryUtils.java # HTTP request utilities
│ ├── SettingsActivity.java # Settings configuration activity
│ └── Utils.java # General utility functions
├── app/src/main/res/ # App resources (layouts, drawables, strings)
├── screenshots/ # App screenshots for documentation
├── README.md # Project documentation
├── PROJECT_DESCRIPTION.md # Detailed project description
└── LICENSE # MIT License
The app fetches news data from a REST API. Make sure to:
- Configure your API endpoints in the appropriate utility classes
- Handle network errors gracefully
- Implement proper JSON parsing for article data
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Material Design Icons
- AndroidX Libraries
- News API providers
Sandesh S. Badwaik
⭐ Star this repository if you found it helpful!


