sf_symbols 0.6.1
sf_symbols: ^0.6.1 copied to clipboard
Use SF Symbols on iOS and macOS, same as Image(systemName:) or UIImage(systemName:) in Swift.
0.6.1 #
Documentation only.
- Add a sponsor section to the README.
0.6.0 #
Adds macOS support.
- Support macOS 12 and newer, with the same widget and the same API: rendering modes, variable values, scale, accessibility and caching all work there.
- Symbol effects on macOS need macOS 14, and wiggle, rotate and breathe need
macOS 15 — the same split as iOS 17 and 18.
SfSymbol.effectSupport()answers for whichever platform is running. - Fix a symbol drawing black on macOS where a multicolor symbol has no color
for a layer, or no multicolor variant at all. It now uses
color, as on iOS.
0.5.0 #
Adds animated symbol effects, and shares rendered symbols between widgets.
- Add
effect, playing an SF Symbols animation on the symbol: bounce, pulse, variable color, scale (iOS 17+), plus wiggle, rotate and breathe (iOS 18+). An effect the running OS does not have leaves the symbol still, so no version check is needed;SfSymbol.effectSupport()reports what it can play. - Add
effectRepeats, for effects that can either repeat or play once. - Share one native texture between identical symbols. A list of a hundred rows showing the same icon used to cost a hundred textures and a hundred pixel buffers; it now costs one. Symbols scrolled off screen are kept for reuse.
- Draw an already-rendered symbol on its first frame, instead of leaving a blank gap for a frame while the platform channel answers.
- Add
SfSymbol.precache, to render a symbol before it is needed. - Add
SfSymbolCache, exposingmaximumUnusedEntriesandevictUnusedfor apps that want to tune or drop the off-screen pool.
0.4.0 #
Adds the SF Symbols rendering modes, variable values, scale and accessibility.
- Add the hierarchical, palette and multicolor rendering modes via the
SfSymbol.hierarchical,SfSymbol.paletteandSfSymbol.multicolorconstructors. The default constructor is unchanged and still monochrome. - Add
variableValue, for variable symbols such aswifiorspeaker.wave.3(iOS 16+). - Add
scale, mapping toUIImage.SymbolScale. The default matches what earlier versions rendered, so symbols do not resize on upgrade. - Add
semanticLabel, so symbols are no longer invisible to VoiceOver. - Add
SfSymbol.isAvailable, to check a symbol name before using it. - Fix the widget ignoring property changes: it only ever loaded its symbol in
initState, so changingname,color,weightorsizedid nothing. It now reloads on change, swapping textures without a blink, and skips the work when the new configuration is equivalent. - Fix a symbol with no variant for the requested rendering mode drawing in black instead of the requested color.
Breaking: SfSymbolsPlatform.init now takes a single SfSymbolConfig
instead of loose arguments. This only affects code implementing the platform
interface directly; the SfSymbol widget API is unchanged.
0.3.0 #
- Support the current Flutter and iOS toolchain (Flutter 3.27+, Dart 3, Xcode 16+).
- Add Swift Package Manager support, in addition to CocoaPods.
- Add a privacy manifest (
PrivacyInfo.xcprivacy). - Raise the minimum iOS deployment target to 15.0.
- Fix symbol tinting: colors are now baked into the rendered texture with
.alwaysOriginal, instead of relying on the drawing context's fill color. - Render into a
kCVPixelFormatType_32BGRAbuffer, matching what the Flutter engine expects, and mark the buffer Metal-compatible for Impeller. - Notify the engine of new frames via
textureFrameAvailable, so a symbol shows up without waiting for an unrelated repaint. - Report an
UNKNOWN_SYMBOLerror instead of registering an empty texture when the symbol name does not exist. - Replace the deprecated
Color.valueandFontWeight.indexusages. - Move the plugin's texture registry off of static state, so multiple Flutter engines no longer share it.
- Add unit tests and iOS integration tests.
0.2.0 #
- Add documentations
0.1.0 #
- Release functions of SF symbols
