YYKit
A collection of iOS components.
YYKit is a collection of reusable iOS building blocks for iPhone and iPad apps, covering image loading, rich text, data caching, and background processing, all written in Objective-C.
YYKit is a collection of reusable building blocks for making iPhone and iPad apps. It is written in Objective-C, the language Apple's tools used before Swift, and the README describes it simply as a collection of iOS components. The author explains that the project grew so large that it was split into several smaller pieces, each of which also lives as its own separate project.
The README lists those pieces and what each one does. YYModel turns data into app objects, YYCache stores data for quick reuse, YYImage handles picture formats including animated ones like WebP, APNG, and GIF, and YYWebImage loads images from the internet in the background. YYText provides rich text, meaning styled and formatted writing. YYKeyboardManager helps an app track the on-screen keyboard, YYDispatchQueuePool and YYAsyncLayer are helpers for doing work in the background and drawing without slowing the app, and YYCategories is a set of small additions to Apple's standard frameworks. A demo project is included so you can see the components in action.
There are three ways to add YYKit to a project. Two use popular package managers for Apple development, named CocoaPods and Carthage, each just a step or two. The README notes that the Carthage build leaves out the WebP picture support, so you need CocoaPods or a manual install if you want that. The manual route involves downloading the files, adding them to your Xcode project, setting a compiler flag on two specific files, and linking a list of Apple system frameworks.
The library requires iOS 6.0 or later and Xcode 8.0 or later, and it is released under the MIT license. The author adds a clear word of caution: because these additions deliberately avoid name prefixes so they feel like part of the system, he does not recommend using the whole YYKit bundle directly and suggests trying the separated components first.
Where it fits
- Add animated WebP and GIF image support to an iOS app without building the feature from scratch.
- Cache network responses or computed data in an iPhone app to reduce loading times on repeat visits.
- Display rich, styled text with custom formatting inside an iOS interface.
- Load images from the internet in the background so the app never freezes while fetching photos.