From 446be3424e7fb1e26e2f717a3cd40ea6f66e0aeb Mon Sep 17 00:00:00 2001 From: Ilyas Hallak Date: Tue, 14 Oct 2025 14:20:39 +0200 Subject: [PATCH] docs: Improve release notes with user-friendly language and better formatting Release notes improvements: - Rewrote technical descriptions for better user understanding - Replaced technical jargon with clear benefits - Added blank lines after section headers for better readability - Focused on what users gain instead of implementation details View improvements: - Use AttributedString with proper markdown parsing - Enable text selection for copying content - Better markdown rendering with .interpretedSyntax option Content updates: - AppStore link and introduction added - User-focused feature descriptions - Clear benefit-oriented language - Acknowledgment for community contributions --- readeck/Resources/RELEASE_NOTES.md | 83 +++++++++++++--------- readeck/UI/Settings/ReleaseNotesView.swift | 16 +++-- 2 files changed, 61 insertions(+), 38 deletions(-) diff --git a/readeck/Resources/RELEASE_NOTES.md b/readeck/Resources/RELEASE_NOTES.md index 6021b18..f4dfada 100644 --- a/readeck/Resources/RELEASE_NOTES.md +++ b/readeck/Resources/RELEASE_NOTES.md @@ -1,66 +1,85 @@ # Release Notes -## Version 1.1 (Build 1) +Thanks for using the Readeck iOS app! Below are the release notes for each version. -### iOS 26+ Native WebView -- **New native SwiftUI WebView implementation** for iOS 26 and later -- Improved performance with native WebKit integration -- Better memory management and rendering +**AppStore:** The App is now in the App Store! [Get it here](https://apps.apple.com/de/app/readeck/id6748764703) for all TestFlight users. If you wish a more stable Version, please download it from there. Or you can continue using TestFlight for the latest features. -### Floating Action Buttons -- **Contextual action buttons** appear when reaching 90% of article -- Beautiful glass effect design with liquid interactions -- Smooth slide-up animation -- Quick access to favorite and archive actions +## Version 1.1 -### Reading Progress Improvements -- **Accurate progress tracking** using optimized PreferenceKey approach -- Progress bar reflects entire article length (header, content, metadata) -- Automatic progress sync every 3% to reduce API calls -- Progress locked at 100% to prevent fluctuations +There is a lot of feature reqeusts and improvements in this release which are based on your feedback. Thank you so much for that! If you like the new features, please consider leaving a review on the App Store to support further development. -### Image Header Enhancement -- **Better image display** with aspect fit and blurred background -- No more random cropping - full image visibility -- Maintains header space while showing complete images +### Modern Reading Experience (iOS 26+) -### Performance Optimizations -- Replaced onScrollGeometryChange with PreferenceKey for smoother scrolling -- Reduced state updates during scroll -- Optimized WebView height detection -- Improved CSS rendering for web content +- **Completely rebuilt article view** for the latest iOS version +- Smoother scrolling and faster page loading +- Better battery life and memory usage +- Native iOS integration for the best experience -### Bug Fixes -- Fixed content width overflow in native WebView -- Fixed excessive spacing between header and content -- Fixed read progress calculation to include all content sections -- Fixed JavaScript height detection with simplified approach +### Quick Actions + +- **Smart action buttons** appear automatically when you're almost done reading +- Beautiful, modern design that blends with your content +- Quickly favorite or archive articles without scrolling back up +- Buttons fade away elegantly when you scroll back +- Your progress bar now reflects the entire article length + +### Beautiful Article Images + +- **Article header images now display properly** without awkward cropping +- Full images with a subtle blurred background +- Tap to view images in full screen + +### Smoother Performance + +- **Dramatically improved scrolling** - no more stuttering or lag +- Faster article loading times +- Better handling of long articles with many images +- Overall snappier app experience + +### Open Links Your Way + +- **Choose your preferred browser** for opening links +- Open in Safari or in-app browser +- Thanks to christian-putzke for this contribution! + +### Fixes & Improvements + +- Articles no longer overflow the screen width +- Fixed spacing issues in article view +- Improved progress calculation accuracy +- Better handling of article content +- Fixed issues with label names containing spaces --- ## Version 1.0 (Initial Release) ### Core Features + - Browse and read saved articles - Bookmark management with labels - Full article view with custom fonts - Text-to-speech support (Beta) - Archive and favorite functionality +- Choose different Layouts (Compact, Magazine, Natural) ### Reading Experience + - Clean, distraction-free reading interface - Customizable font settings -- Image viewer with zoom support +- Header Image viewer with zoom support - Progress tracking per article - Dark mode support ### Organization -- Label system for categorization -- Search and filter bookmarks + +- Label system for categorization (multi-select) +- Search - Archive completed articles - Jump to last read position ### Share Extension + - Save articles from other apps - Quick access to save and label bookmarks - Save Bookmarks offline if your server is not reachable and sync later diff --git a/readeck/UI/Settings/ReleaseNotesView.swift b/readeck/UI/Settings/ReleaseNotesView.swift index 3d7240a..a717155 100644 --- a/readeck/UI/Settings/ReleaseNotesView.swift +++ b/readeck/UI/Settings/ReleaseNotesView.swift @@ -7,9 +7,9 @@ struct ReleaseNotesView: View { NavigationView { ScrollView { VStack(alignment: .leading, spacing: 16) { - if let markdownContent = loadReleaseNotes() { - Text(.init(markdownContent)) - .font(.body) + if let attributedString = loadReleaseNotes() { + Text(attributedString) + .textSelection(.enabled) .padding() } else { Text("Unable to load release notes") @@ -30,12 +30,16 @@ struct ReleaseNotesView: View { } } - private func loadReleaseNotes() -> String? { + private func loadReleaseNotes() -> AttributedString? { guard let url = Bundle.main.url(forResource: "RELEASE_NOTES", withExtension: "md"), - let content = try? String(contentsOf: url) else { + let markdownContent = try? String(contentsOf: url), + let attributedString = try? AttributedString( + markdown: markdownContent, + options: .init(interpretedSyntax: .full) + ) else { return nil } - return content + return attributedString } }