Ilyas Hallak 305b8f733e Implement offline hero image caching with custom cache keys
Major improvements to offline reading functionality:

**Hero Image Offline Support:**
- Add heroImageURL field to BookmarkEntity for persistent storage
- Implement ImageCache-based caching with custom keys (bookmark-{id}-hero)
- Update CachedAsyncImage to support offline loading via cache keys
- Hero images now work offline without URL dependency

**Offline Bookmark Loading:**
- Add proactive offline detection before API calls
- Implement automatic fallback to cached bookmarks when offline
- Fix network status initialization race condition
- Network monitor now checks status synchronously on init

**Core Data Enhancements:**
- Persist hero image URLs in BookmarkEntity.heroImageURL
- Reconstruct ImageResource from cached URLs on offline load
- Add extensive logging for debugging persistence issues

**UI Updates:**
- Update BookmarkDetailView2 to use cache keys for hero images
- Update BookmarkCardView (all 3 layouts) with cache key support
- Improve BookmarksView offline state handling with task-based loading
- Add 50ms delay for network status propagation

**Technical Details:**
- NetworkMonitorRepository: Fix initial status from hardcoded true to actual network check
- BookmarksViewModel: Inject AppSettings for offline detection
- OfflineCacheRepository: Add verification logging for save/load operations
- BookmarkEntityMapper: Sync heroImageURL on save, restore on load

This enables full offline reading with hero images visible in bookmark lists
and detail views, even after app restart.
2025-11-28 23:01:20 +01:00
2025-07-09 22:31:17 +02:00
2025-11-21 22:12:54 +01: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

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 Release Notes.

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 Release Notes

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%