Skip to content

A minimal, cross-platform news aggregator written in Flutter

License

Notifications You must be signed in to change notification settings

iakdis/rsspresso

Repository files navigation


rssPresso app icon

rssPresso - The RSS reader with coffee

A minimal, cross-platform news aggregator written in Flutter. Available on Android, Windows and Linux.

Table of Contents

  1. What is rssPresso?
  2. Downloads
  3. Contributing
  4. Roadmap
  5. Packages used
  6. Credits
  7. License

What is rssPresso?

rssPresso is a minimal, cross-platform news aggregator written in Flutter.

Import your favorite RSS/Atom feeds and start reading ahead. Load the full content of an article with a click of a button, or open it externally. You can star your article for later - and, when you're ready, simply filter your feed by saved or unread articles. Easily search your feeds to find what you want. Switch between different UI layouts to suit your needs.

Enjoy a modern Material design with a light & dark theme. Free and open source - for your freedom.

Screenshots

Mobile screenshots Desktop screenshot light article Desktop screenshot dark article

Downloads

  • Currently supported platforms: Android, Windows, Linux
  • Planned: macOS (Unfortunately I do not currently own a macOS device; to build and test rssPresso, a macOS device is needed)

Android

Download and install the rssPresso-Android.apk file from the GitHub releases page.

Windows

Download and execute the rssPresso-Windows.exe file from the GitHub releases page.

Linux

Supported Planned
AppImage Flatpak (Flathub)
.deb .rpm
Snap
AUR

To install rssPresso as an AppImage, download the rssPresso-Linux.AppImage file from the GitHub releases page, make it executable and run it. For better desktop integration consider using AppImageLauncher.

Download as an AppImage


To install rssPresso as a .deb package, download the rssPresso-Linux.deb file from the GitHub releases page and install it.

Features

  • Import & export your feeds via OPML files
  • Load the full content of an article
  • Star articles & mark articles as read/unread
  • Search for articles
  • Filter feeds by unread or saved articles
  • Material design with a light & dark theme
  • Switch between different UI layouts
  • Free and open source (GPLv3)
  • ...and many more features planned

Contributing

These are the ways you can contribute to rssPresso:

Bug reports & feature requests

Open an issue on GitHub: Open issue. Remember to check for duplicates and try to give important information such as the app version, your operating system, etc.

Code

Feel free to send in a pull request! To get started with Flutter, follow this link: https://docs.flutter.dev/get-started/install

  1. Clone this repository
  2. Switch to the project's directory and run flutter pub get to get all necessary packages. To test the app, run the project in debug mode by selecting a device in your preferred Flutter IDE and running the app in debug mode
  3. Build rssPresso (see steps for the different platforms below)

Windows executable: Run the following command in your terminal on a Windows machine: flutter build windows – the output file will be generated at rsspresso\build\windows\runner\Release\rsspresso.exe.

Linux executable: Run the following command in your terminal: flutter build linux – the output files, including the executable, will be generated at rsspresso/build/linux/x64/release/bundle.

Roadmap

  • Upload on F-Droid [Android]
  • Upload on Flathub [Linux]
  • Organize feeds into custom groups
  • Sync with RSS services like the Fever API, Google Reader API, Nextcloud News, Feedbin, Inoreader, etc.
  • Integrate YouTube subscriptions
  • Background article fetching
  • Desktop keyboard shortcuts
  • Push notifications for desktop & mobile
  • Multi language support
  • Your features

Packages used

The packages used for this app, also listed in the pubspec.yaml file. See their respective licenses.

Package Use case
cached_network_image Cache images from the network
content_parser Load full article content
dart_rss Parse RSS/Atom xml data
file_picker Import/export OPML files
flutter_file_dialog Export OPML files on Android
flutter_markdown Display Markdown data
flutter_riverpod State management
html Parse HTML data
html2md Convert HTML to Markdown
http Request website data
intl Parse dates
package_info_plus Display app version number
path Path transformations
path_provider Load platform specific paths
permission_handler Show Android permission dialog
shared_preferences Save/load app data
url_launcher Open URLs in Browser
window_manager Desktop window operations
xml Parse xml data

Credits

This project was greatly inspired by other RSS readers. Without these projects, rssPresso wouldn't have looked the same as now.

Extracting content: content_parser

To extract the full content of an article, content_parser is used. This is an incomplete port from the JavaScript library Postlight Parser to Dart. Postlight Parser itself is licensed under the MIT License (see here).

License

This project is licensed under the GNU General Public License Version 3. For details, see LICENSE.