Skip to content

News aggregator with swipeable interface, offering summarized content for quick and efficient reading.

License

Notifications You must be signed in to change notification settings

siddhant-vij/NewsByte-App

Repository files navigation

NewsByte App

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.

Table of Contents

  1. Features
  2. Installation
  3. Technical Specs
  4. Contributions
  5. License

Features

  • 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.

Installation

  • 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 to api.config
  • Enter your personal API Keys in the api.config file
  • To run the app in a development environment, use: flutter run

Technical Specs

  • 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

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch:
    git checkout -b feature/AmazingFeature
  3. Commit your Changes:
    git commit -m 'Add some AmazingFeature'
  4. Push to the Branch:
    git push origin feature/AmazingFeature
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.