Skip to content

Releases: NuPlay/RichText

V3.0.2

28 Aug 13:55
50ab84f

Choose a tag to compare

⭐ What's Changed

  • fix: resolve state modification during view update warning (#72)

Full Changelog: 3.0.1...3.0.2

V3.0.1

25 Aug 15:39
95aa841

Choose a tag to compare

🔧 Documentation Fixes

This patch release focuses on correcting documentation inconsistencies found after the major v3.0.0 release.

What's Fixed

📚 Documentation Accuracy

  • Swift Version Clarification: Updated requirements from Swift 6.0+ to Swift 5.9+ to accurately reflect Package.swift configuration
    • Library requires Swift 5.9+ for production use
    • Swift 6.0+ only needed for running Swift Testing framework tests

Test Documentation

  • Removed references to non-existent XCTest file
  • Clarified that only Swift Testing framework is used for tests
  • Updated platform requirements for tests vs library usage

📋 API Documentation

  • Fixed deprecated method recommendations: Now correctly suggests .placeholder {} instead of .loadingPlaceholder()
  • Added missing default values:
    • imageRadius default: 0
    • colorScheme default: .auto
    • lineHeight default: 170

🚀 No Code Changes

This release contains documentation updates only. No functionality has been changed from v3.0.0.

📦 Installation

.package(url: "https://github.com/NuPlay/RichText.git", .upToNextMajor(from: "3.0.1"))

V3.0.0

24 Aug 12:15
3d64578

Choose a tag to compare

🚀 RichText v3.0.0 Release Notes

Important

Platform Requirements Updated

  • iOS: 15.0+ (previously 13.0+)
  • macOS: 12.0+ (previously 10.15+)
  • Swift: 6.0+
  • Xcode: 16+ for development

🎉 Major Release - Swift 6.0 & Modern Concurrency

This major release modernizes RichText with async/await support, Swift Testing, and enhanced APIs while maintaining backward compatibility.

✨ New Features

🔄 Async/Await Support

  • Complete migration to modern Swift concurrency
  • Enhanced WebView performance with async loading
  • Improved error handling with structured concurrency

🎯 Enhanced APIs

  • Type-safe background color options
  • Media click handling capabilities
  • Comprehensive error reporting system
  • Dynamic type support for better accessibility
  • Improved color management system

🧪 Swift Testing Framework

  • Migrated from XCTest to Swift Testing
  • 600+ comprehensive test cases
  • Cross-platform testing coverage

🔧 Improvements

  • Performance: Optimized WebView rendering with async operations
  • Type Safety: Enhanced type-safe APIs throughout the library
  • Error Handling: More detailed and actionable error messages
  • Accessibility: Better Dynamic Type support

🔄 Migration Guide

Existing v2.x projects can upgrade with minimal changes:

  1. Update platform targets in your project settings
  2. Replace deprecated methods (warnings provided)
  3. Leverage new type-safe APIs for better performance
  4. Use new error handling methods for better debugging

🧑‍💻 For Developers

  • All public APIs remain compatible with v2.x
  • Deprecated methods include migration warnings
  • Enhanced documentation and examples

📦 Installation

dependencies: [
    .package(url: "https://github.com/NuPlay/RichText.git", from: "3.0.0")
]

Full Changelog: v2.7.0...v3.0.0

v2.7.0

20 Jul 06:07
ec3469e

Choose a tag to compare

⭐ What's Changed

  • feat: Add option to force color scheme background by @jcovin293 in #65
RichText(html: "")
    .forceColorSchemeBackground(true) // new option

👍 Contributors

Full Changelog: 2.5.0...2.6.0

v2.6.0

03 Jul 15:50
1c106f0

Choose a tag to compare

⭐ What's Changed

public struct Configuration {
  ...
  public var supportsDynamicType: Bool
  ...
  
  public init(
  ...
    supportsDynamicType: Bool = false,
  ...
  ) {
    ...
    self.supportsDynamicType = supportsDynamicType
    ...
    
    if supportsDynamicType {
      self.customCSS = self.customCSS + """
            html { font: -apple-system-body; }
            
            body { font: -apple-system-body; }
            
            h1 { font: -apple-system-largeTitle; }
            h2 { font: -apple-system-title1; }
            h3 { font: -apple-system-title2; }
            h4 { font: -apple-system-title3; }
            
            h5 { font: -apple-system-headline; }
            h6 { font: -apple-system-callout; }
            
            p.subheadline { font: -apple-system-subheadline; }
            p.footnote    { font: -apple-system-footnote; }
            p.caption1    { font: -apple-system-caption1; }
            p.caption2    { font: -apple-system-caption2; }
            """
    }
  }
}

👍 New Contributors

Full Changelog: 2.5.0...2.6.0

v2.5.0

30 Nov 15:23
3910393

Choose a tag to compare

⭐ What's Changed

👍 New Contributors

Full Changelog: 2.4.1...2.5.0

v2.4.1

20 Apr 07:16
8abbc59

Choose a tag to compare

⭐ What's Changed

  • feat: Add PrivacyInfo.xcprivacy file for issue #50 by @NuPlay in #51

Full Changelog: 2.4.0...2.4.1

v2.4.0

01 Apr 14:29
d7eaa4f

Choose a tag to compare

⭐ What's Changed

  • #46 LinkOpenType Custom Handling for All URL Schemes by @NuPlay in #47
  • Allow setting the WebKit baseURL for requests to something other than the Bundle by @ohmantics in #48

🐛 Bug fix

👍 New Contributors

Full Changelog: 2.3.1...2.4.0

V.2.3.1

21 Jan 11:58
63cb8b2

Choose a tag to compare

⭐ What's Changed

✨ [Feature]: Add custom type to LinkOpenType by @vidalhara in #42

public enum LinkOpenType {
   #if canImport(UIKit)
   case SFSafariView(configuration: SFSafariViewController.Configuration = .init(), isReaderActivated: Bool? = nil, isAnimated: Bool = true)
   #endif
   case Safari
   case custom((URL) -> Void)
   case none
}

🐛 [Fix] Always call decisionHandler on webview navigationAction by @filip-zielinski in #43

👍 New Contributors

Full Changelog: 2.3.0...2.3.1

v2.3.0

16 Jul 14:34
ff468d1

Choose a tag to compare

✨ Support macOS

Now available for iOS 13 and macOS 10.15 and later.

let package = Package(
    name: "RichText",
    platforms: [
        .iOS("13.0"),
        .macOS("10.15")
    ],
...
)

This update resolves the issue mentioned in #34 and has been implemented through PR #36

♻️ linkOpenType Default Value is Changed

  • Default value for linkOpenType is changed to .Safari.
    • Previous: .SFSafariView()
    • Reason: SFSafariView is not possible on macOS.
//previous
linkOpenType: LinkOpenType = .SFSafariView()

//now
linkOpenType: LinkOpenType = .Safari
public enum LinkOpenType {
    #if canImport(UIKit)
    case SFSafariView(configuration: SFSafariViewController.Configuration = .init(), isReaderActivated: Bool? = nil, isAnimated: Bool = true)
    #endif
    case Safari
    case none
}

👍 Contributors

Thanks to @studiogaram