A modern, intuitive news aggregator app developed in Flutter, catering to both Android & iOS platforms. It features a swipeable interface that allows users to seamlessly browse through news articles, summarizing content for quick and efficient reading.
- Swipeable News Feed: Engage with news articles through an intuitive swipe interface.
- Real-Time News Updates: Stay updated with the latest news fetched in real-time.
- News Summarization: Brief summaries of news articles using an integrated summary API.
- Image Optimization: Consistent and efficient image display with an image service.
- Responsive Design: Adaptability across various device sizes - mobiles.
- Clone the repository:
git clone https://github.com/siddhant-vij/NewsByte-App.git
- Navigate to the project directory:
cd NewsByte-App
- Install dependencies:
flutter pub get
- Make a copy of the
config/api.example.config
file & rename it toapi.config
- Enter your personal API Keys in the
api.config
file - To run the app in a development environment, use:
flutter run
- Flutter and Dart: The app is to be developed using Flutter, compatible with both Android and iOS.
- State Management: Manage state changes efficiently using Flutter’s native capabilities.
- Efficient Data Structures: Use a double-ended queue (deque) approach for storing news articles, facilitating efficient addition and removal from both ends of the list. Limit memory usage by managing the number of articles in the deque.
- UI - Swipe Action: Implement swipe up for next articles and swipe down for previous articles, with a refresh feature at the beginning of the list.
- Asynchronous Programming & Concurrency: Use Futures for API calls, & implement Streams for real-time news feed updates. Use Isolates for CPU-intensive tasks to ensure UI smoothness.
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch:
git checkout -b feature/AmazingFeature
- Commit your Changes:
git commit -m 'Add some AmazingFeature'
- Push to the Branch:
git push origin feature/AmazingFeature
- Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.