SVGKit v2.1.0 Release Notes

Release Date: 2018-10-30 // over 5 years ago

Previous changes from v2.0.0

  • πŸš€ First major release on the 2.x branch.

    ⚑️ This is the version most of us have been using in production for over a year, with live fixes and updates.

    KEY CHANGES

    • ⬆️ Cleaner integration of CocoaLumberjack, + upgraded to Lumberjack v2.0.0
    • πŸ“œ Many improvements to SVG shape parsers, support many more SVG files
    • βœ… Full test-suite from W3C (hundreds of SVGs you can test in the demo app)
    • πŸ“œ Many improvements to CSS parsing, support for many more CSS rules and features
    • πŸ‘Œ Support more features of Gradient rendering
    • πŸ‘ Better text-handling (still not great: someone please take the old fork that uses CoreText instead of CATextLayer and update + merge it!)
    • πŸ‘ Better support for Retina devices

    πŸ›  All features / additions / fixes compared to v1.2:

    πŸ›  Fixed two minor memory leaks
    πŸ›  Fixed issue where SVG height was getting scaled to 0
    πŸ›  Fix set didRegisterInternalRedrawObservers to false after removing observers
    πŸ›  Fix spelling errors in flag names
    βž• Add failing tests for setting image multiple times on SVGKFastImageView
    πŸ‘Œ Support iPad Pro
    βž• Add info on using the latest SVGKit with cocoapods
    βž• added bundle to convenience initializer method
    passing bundle via paramter instead of global state
    βž• added setBundle feature to SVGKSourceLocalFile
    ↔ integrated CocoaLumberjack as library dependency
    βž• Added iPhone 6s and 6s Plus support
    🌲 Custom context logging for SVGKit
    LineTo pairs can be separated by comma.
    πŸ‘Œ Support visibility:hidden and display:none
    πŸ‘Œ Support dashes and underscores in selectors
    πŸ‘Œ Support https: prefix for SVGImageElement
    πŸ›  Fixed many compiler warnings
    πŸ›  Fixed several memory leaks
    0️⃣ Replace default font on text elements.
    πŸ›  Fix the z command so that it returns the current point of path
    πŸ›  Fix for SVGs which have radius larger than w/h
    βž• ADDED: complete W3C official TestSuite for SVG
    βž• ADDED: SVGKSource and all subclasses now support NSCopying
    Radial gradients with objectBoundingBox are now scaled and translated
    πŸ›  Fix the handling of the element
    πŸ›  Fix relative positioning bug in elliptical arcs.
    βž• Add support for the elliptical arc command in paths
    ⚑️ Updating CocoaLumberjack to 2.0.0.
    πŸ‘Œ Improvements for userSpaceOnUse linear gradients
    βž• ADDED: better error-handling for bad URLs and for when there's no internet
    πŸ›  Fixed some obscure crashing bugs in parser
    πŸ‘Œ Improve linear gradient handling for objectBoundingBox units
    πŸ›  fixes some potential data loss silencing a few warnings
    βž• Add support for relative lengths to circles, ellipses and lines
    Do some preprocessing on data urls by removing whitespace
    πŸ’… More robust inline style parsing
    Convert inches to inches
    πŸ‘ Provides basic support for the SVG element
    βž• Add support for skewX and skewY transformations
    πŸ›  Fixed a bug with 'Smooth Curveto' and 'Smooth Quadratic Curveto' path
    βž• Added demo example file to test radial gradient opacity fix
    πŸ›  Fixed crash on iOS 8 if any CAShapeLayer is empty
    πŸ›  Fixed crash when changing a SVGKLayeredImageView image
    πŸ›  Fixed bug on conversion from millimeter to inches and inches to milimeters
    πŸ‘Œ Improve parsing to avoid redundant copying and stack allocation
    βœ‚ Remove synthesizers of child properties
    βœ… More robust test cases
    Only apply clipping masks to elements that have the clip-path attribute, not to their children too
    iPad Air 2 Compatibility
    pass CGPathElement instead of CGPoint
    πŸ›  fix CGPoint iterator (C array)
    πŸ›  Fix iOS 8 bug with assert fail on infinity CGFloat
    πŸš€ Implement retain-release tests for the iOS framework
    πŸ‘Œ Improve stringFromSource to use the NSData+NSInputStream category.
    βœ‚ Remove Element.h import
    ⚑️ Updating the project settings so NSAssert does not get raised on production builds
    πŸ›  Fix for external stylesheets to open the stream before reading from it.
    βž• Add support for the textArea element from TinySVG 1.2.
    πŸ‘Œ Improve SVGTextElement to have support for text-anchor and fill
    πŸ– Handle viewBoxes with no white space -- for example, viewBox="0,0,100,100"
    πŸ‘ Allow white space delimited lists in SVG css attributes
    βž• Add support for stroke-dasharray attribute
    πŸ›  FIXED: Loading images from the web via SVGKSourceURL
    πŸ›  Fixed how SVG-source images are rendered.
    πŸ”„ Changed to support retina resolution when making a bitmap mask.
    πŸ”„ Change SVGTextElement to not render blocky text on retina displays
    βž• ADDED: Can load SVG files from NSData sources, with working URL relative
    βž• Add ImageAspectRatio sample to the demo app.
    Implemented preserveAspectRatio for images.
    Finished implementation of
    βž• Added the ability to load SVG images from relative URLs.
    πŸ›  fix memory leak of NSDates
    Change CLANG_CXX_LIBRARY to libc++ in the podspec
    πŸ›  Fixed "rotate" transform type.

    0️⃣ EXPERIMENTAL (these are included in 2.0.0 but are not active by default - you can use them)

    using SVGKit.h file as framework header

    CONTRIBUTORS

    @rhcad
    @andmar1x
    @ArcRain
    @dpletter
    @sweetmandm
    @dpletter
    @newmaniese
    @samskiter
    @requilence
    @MaddTheSane
    gaunts
    Jorge Ouahbi
    @buscarini
    imac
    @Anubis88
    @tonyd256
    @BrandonZacharie
    @chuckhendo
    @BadPirate
    @freeatnet
    @alaija
    @dgileadi
    @Dschee
    @seltzered
    @amcalgates
    @sciutand
    @russellentrata
    @flemingm
    @alexandre-g
    @gumob
    @rance-attack
    @guylachish
    @edave
    BjΓΈrn Olav Ruud