Ilyas Hallak f3719fa9d4 Refactor tag management to use Core Data with configurable sorting
This commit introduces a comprehensive refactoring of the tag management
system, replacing the previous API-based approach with a Core Data-first
strategy for improved performance and offline support.

Major Changes:

Tag Management Architecture:
- Add CoreDataTagManagementView using @FetchRequest for reactive updates
- Implement cache-first sync strategy in LabelsRepository
- Create SyncTagsUseCase following Clean Architecture principles
- Add TagSortOrder enum for configurable tag sorting (by count/alphabetically)
- Mark LegacyTagManagementView as deprecated

Share Extension Improvements:
- Replace API-based tag loading with Core Data queries
- Display top 150 tags sorted by usage count
- Remove unnecessary label fetching logic
- Add "Most used tags" localized title
- Improve offline bookmark tag management

Main App Enhancements:
- Add tag sync triggers in AddBookmarkView and BookmarkLabelsView
- Implement user-configurable tag sorting in settings
- Add sort order indicator labels with localization
- Automatic UI updates via SwiftUI @FetchRequest reactivity

Settings & Configuration:
- Add TagSortOrder setting with persistence
- Refactor Settings model structure
- Add FontFamily and FontSize domain models
- Improve settings repository with tag sort order support

Use Case Layer:
- Add SyncTagsUseCase for background tag synchronization
- Update UseCaseFactory with tag sync support
- Add mock implementations for testing

Localization:
- Add German and English translations for:
  - "Most used tags"
  - "Sorted by usage count"
  - "Sorted alphabetically"

Technical Improvements:
- Batch tag updates with conflict detection
- Background sync with silent failure handling
- Reduced server load through local caching
- Better separation of concerns following Clean Architecture
2025-11-08 13:46:40 +01:00
2025-07-09 22:31:17 +02:00
2025-09-17 22:39:42 +02:00
2025-10-29 22:08:52 +01:00
2025-09-18 22:16:42 +02:00
2025-06-26 23:04:41 +02:00
2025-09-27 22:49:35 +02:00

Readeck iOS App

License: MIT

A native iOS client for readeck bookmark management.

The official repository is on Codeberg: https://codeberg.org/readeck/readeck

Download

App Store (Stable Releases)

Download on the App Store

TestFlight Beta Access (Early Releases)

Join the Readeck Beta on TestFlight

For early access to new features and beta versions (use with caution). To participate, simply install TestFlight from the App Store and open the link above on your iPhone, iPad, or Mac. This early version lets you explore all core features before the official release. Your feedback is incredibly valuable and will help shape the final app.

What to test:

  • See the feature list below for an overview of what you can try out.
  • For details and recent changes, please refer to the release notes in TestFlight or the Changelog.

Please report any bugs, crashes, or suggestions directly through TestFlight, or email me at ilhallak@gmail.com. Thank you for helping make Readeck better!

If you are interested in joining the internal beta, please contact me directly at mooonki:matrix.org.

Screenshots

iPhone

iPhone Screenshot 1 iPhone Screenshot 2 iPhone Screenshot 3 iPhone Screenshot 4 iPhone Screenshot 5

iPad

iPad Screenshot 1 iPad Screenshot 2 iPad Screenshot 3 iPad Screenshot 4 iPad Screenshot 5

Core Features

  • Browse and manage bookmarks (All, Unread, Favorites, Archive, Article, Videos, Pictures)
  • Share Extension for adding URLs from Safari and other apps
  • Swipe actions for quick bookmark management
  • Native iOS design with Dark Mode support
  • Full iPad Support with Multi-Column Split View
  • Font Customization
  • Article View with Reading Time and Word Count
  • Search functionality
  • Support for reading progress
  • Save bookmarks when server is unavailable and sync when reconnected

Configuration

After installing the app:

  1. Open the readeck app
  2. Enter your readeck server URL and credentials
  3. The app will automatically load your bookmarks

Notice: Local Network Addresses are supported. If you use external Domains, you need to add a HTTPS Certificate to your readeck server. Apple does not allow to use HTTP on iOS for external domains in release versions. If you want to use HTTP, you are free to use the beta version of the app, where the HTTP is supported.

Share Extension

The app includes a Share Extension that allows adding bookmarks directly from Safari:

  1. Share any webpage in Safari
  2. Select "readeck" from the share sheet
  3. Enter a title if you want and hit save
  4. The bookmark is automatically added to your collection

Versions

see Changelog

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request
Description
ReadKeep
Readme MIT 174 MiB
Languages
Cython 99.7%
Swift 0.3%