Stay updated with the latest news from around the world with an intuitive and elegant user interface.
- 📱 Modern UI/UX Design - Clean, intuitive interface following Material Design principles
- 🌍 Global News Coverage - Access to worldwide news from reliable sources
- 📂 Category-Based Navigation - Organized news sections (Business, Entertainment, Science, Sports, Technology)
- 🔄 Real-time Updates - Latest news fetched from NewsAPI
- 📖 Full Article View - Integrated WebView for complete article reading
- 🎨 Responsive Design - Optimized for various screen sizes and orientations
- 🔐 Secure API Key Management - Environment variables for sensitive data
- ⚡ Optimized Performance - Efficient API calls and image loading
- 🌐 Network Error Handling - Graceful handling of connectivity issues
- 📱 Cross-Platform - Runs seamlessly on both Android and iOS
- 🎭 Loading States - Beautiful loading indicators and error states
| Technology | Purpose | Version |
|---|---|---|
| Flutter | Cross-platform UI framework | Latest |
| Dart | Programming language | Latest |
| NewsAPI | News data source | v2 |
| HTTP | API communication | ^1.5.0 |
| WebView Flutter | In-app browser | ^3.0.1 |
| Flutter DotEnv | Environment variables | ^5.2.1 |
Before you begin, ensure you have the following installed:
- Flutter SDK (Latest stable version)
- Dart SDK (Included with Flutter)
- Android Studio or VS Code with Flutter extensions
- Git for version control
-
Clone the repository
git clone https://github.com/yourusername/trendo.git cd trendo -
Install dependencies
flutter pub get
-
Set up environment variables
# Copy the environment template cp .env.example .env # Edit .env and add your NewsAPI key # Get your free API key from: https://newsapi.org/
-
Configure your API Key
Edit the
.envfile:NEWS_API_KEY=your_actual_api_key_here
-
Run the application
flutter run
- Visit NewsAPI.org
- Create a free account
- Generate your API key
- Add the key to your
.envfile as shown above
The application uses environment variables for secure configuration:
# .env file
NEWS_API_KEY=your_newsapi_key_here.env file to version control. It's already included in .gitignore.
lib/
├── config/
│ ├── api_config.dart # API configuration management
│ └── api_keys_template.dart # Template for API keys
├── models/
│ ├── article_model.dart # Article data model
│ └── show_category.dart # Category model
├── pages/
│ ├── home.dart # Main home screen
│ ├── category_news.dart # Category-specific news
│ ├── article_view.dart # Full article view
│ └── onboarding.dart # App onboarding
├── services/
│ ├── news.dart # General news API service
│ └── show_category_news.dart # Category news service
└── main.dart # Application entry point
assets/
├── images/ # Static images and icons
└── screenshots/ # App screenshots for README
- Hottest News - Horizontal scrollable trending articles
- Explore Categories - Circular category navigation
- Trending News - Vertical scrollable news feed
- Dynamic news filtering by category
- Responsive grid layout
- Pull-to-refresh functionality
- Full-screen WebView integration
- Loading indicators
- Navigation controls
- Flutter: 3.0.0+
- Dart: 3.0.0+
- Android: API level 21 (Android 5.0)
- iOS: 11.0+
- RAM: 4GB minimum, 8GB recommended
- Storage: 2GB free space
- Internet: Stable connection for news fetching
-
API Key Not Working
- Ensure your NewsAPI key is valid and active
- Check
.envfile configuration - Verify internet connectivity
-
Build Errors
- Run
flutter clean && flutter pub get - Check Flutter version compatibility
- Ensure all dependencies are up to date
- Run
-
WebView Issues
- Enable internet permissions in
android/app/src/main/AndroidManifest.xml - For iOS, configure
Info.plistfor web content
- Enable internet permissions in
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2024 Trendo News App
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.




