Texture

3.1.0

Smooth asynchronous user interfaces for iOS apps.
TextureGroup/Texture

What's New

3.1.0 Release!

2021-09-16T21:47:18Z

This release contains breaking changes!

Migration Guide

Changelog

3.1.0 (2021-09-09)

Full Changelog

Fixed bugs:

  • Fix hit point when ASCollectionNode inverted set to true #1781 (bdolman)

Merged pull requests:

  • [Minor Breaking API] Rename ASNavigationController to ASDKNavigationController to fix name collision #2020 (rcancro)
  • [RTL] Guard access of flipsHorizontallyInOppositeLayoutDirection for iOS >= 11 #2003 (rcancro)
  • [RTL/Batching] Make ASDisplayShouldFetchBatchForScrollView aware of flipped CV layouts #1985 (rcancro)
  • [Layout] Add RTL support to LayoutSpecs #1983 (rcancro)
  • Expand ASExperimentalRangeUpdateOnChangesetUpdate to ASTableView #1979 (rqueue)
  • Docs: Remove Facebook and shift everything around, add Remix by Buffer #1978 (ay8s)
  • Add experiment to ensure ASCollectionView's range controller updates … #1976 (rqueue)
  • Remove trailing semicolons between method parameters and body #1973 (sdefresne)
  • Fix order-dependent ASTextNodeTests #1963 (tjaneczko)
  • Update asdkGram swift sample to swift version 5.3 #1962 (MussaCharles)
  • Fix mutation of variable that is never read #1961 (ZevEisenberg)
  • Remove redundant assignment #1960 (ZevEisenberg)
  • Podfile improvements #1957 (ZevEisenberg)
  • Fix WKWebView Accessibility #1955 (ZevEisenberg)
  • fix missing hidden class #1952 (joprice)
  • use https for slack link #1950 (joprice)
  • Exposes a new option in ASImageDownloaderProtocol to retry image downloads #1948 (chggr)
  • All ASCellNode nodes to be non accessible if needed #1941 (decim92)
  • [ASTextNode2] Make some ASTextNode2 layout files public #1939 (rcancro)
  • Ship ASExperimentalDispatchApply #1924 (nguyenhuy)
  • Fix failing ASConfigurationTests #1923 (nguyenhuy)
  • More on ASDataController's main-thread-only mode #1915 (nguyenhuy)
  • Add an experiment that makes ASDataController to do everything on main thread #1911 (nguyenhuy)
  • Disable text kit lock #1910 (garrettmoon)
  • Do not expose tgmath.h to all clients of Texture #1900 (bolsinga)
  • Call will / did display node for ASTextNode. Fixes #1680 #1893 (garrettmoon)
  • Remove background deallocation helper code #1890 (bolsinga)
  • [Accessibility] Ship ASExperimentalDoNotCacheAccessibilityElements #1888 (rcancro)

Coming from AsyncDisplayKit? Learn more here

Texture

Apps Using Downloads

Platform Languages

Version Carthage compatible License

Installation

Texture is available via CocoaPods or Carthage. See our Installation guide for instructions.

Performance Gains

Texture's basic unit is the node. An ASDisplayNode is an abstraction over UIView, which in turn is an abstraction over CALayer. Unlike views, which can only be used on the main thread, nodes are thread-safe: you can instantiate and configure entire hierarchies of them in parallel on background threads.

To keep its user interface smooth and responsive, your app should render at 60 frames per second — the gold standard on iOS. This means the main thread has one-sixtieth of a second to push each frame. That's 16 milliseconds to execute all layout and drawing code! And because of system overhead, your code usually has less than ten milliseconds to run before it causes a frame drop.

Texture lets you move image decoding, text sizing and rendering, layout, and other expensive UI operations off the main thread, to keep the main thread available to respond to user interaction.

Advanced Developer Features

As the framework has grown, many features have been added that can save developers tons of time by eliminating common boilerplate style structures common in modern iOS apps. If you've ever dealt with cell reuse bugs, tried to performantly preload data for a page or scroll style interface or even just tried to keep your app from dropping too many frames you can benefit from integrating Texture.

Learn More

Getting Help

We use Slack for real-time debugging, community updates, and general talk about Texture. Signup yourself or email textureframework@gmail.com to get an invite.

Release process

For the release process see the RELEASE file.

Contributing

We welcome any contributions. See the CONTRIBUTING file for how to get involved.

License

The Texture project is available for free use, as described by the LICENSE (Apache 2.0).

Description

  • Swift Tools
View More Packages from this Author

Dependencies

  • None
Last updated: Fri Mar 29 2024 03:13:12 GMT-0900 (Hawaii-Aleutian Daylight Time)