A React-inspired view framework for iOS.
Objective-C++ Objective-C Other
Clone or download
kfirapps and facebook-github-bot Implement faster props update optimization in CKRenderComponent
Summary:
- Added new method to `CKRenderComponentProtocol`: `isEqualToComponent:`
- Added new config `enableFasterPropsUpdate`
- When there is a `PropsUpdate`, or a `StateUpdate` on a parent component. If the `enableFasterPropsUpdate` is on, the infra will call `isEqualToComponent:` with the new generated component. If the it returns `YES`, the infra will reuse the previous component and its component tree (`CKTreeNode`).

Reviewed By: alickbass

Differential Revision: D9216877

fbshipit-source-id: 276719d7577f991afefecb014dd746c71f1e99f0
Latest commit 6dbf56a Aug 14, 2018
Permalink
Failed to load latest commit information.
Carthage/Checkouts Updating to Carthage tagged commits Aug 2, 2017
ComponentKit.xcodeproj Implement faster state update optimization in CKRenderComponent Aug 14, 2018
ComponentKit Implement faster props update optimization in CKRenderComponent Aug 14, 2018
ComponentKitApplicationTests Add snapshot test for the shrinking behaviour with full flex grow Jul 17, 2018
ComponentKitApplicationTestsHost Xcode recommended project updates Oct 4, 2015
ComponentKitTestHelpers Immediate changeset validation Aug 10, 2018
ComponentKitTests Implement faster props update optimization in CKRenderComponent Aug 14, 2018
ComponentSnapshotTestCase Adding separate set of CK snapshot tests for iOS 11.3 Apr 27, 2018
ComponentTextKit Leak the global static mutex in CKTextKitContext to avoid static dest… May 1, 2018
ComponentTextKitApplicationTests Adding separate set of CK snapshot tests for iOS 11.3 Apr 27, 2018
Examples Add sample app for CKNoYogaDependencies Jul 16, 2018
.gitignore Add Carthage Checkouts to hgignore Sep 27, 2017
.gitmodules Synchronizing internal repository with external repo. Aug 2, 2017
.travis.yml Update travis.yml to build on newer Xcode Feb 21, 2018
CONTRIBUTING.md Switch from CocoaPods to Carthage for development Apr 19, 2016
Cartfile.private Update OSS version of Yoga Jul 17, 2018
Cartfile.resolved Update OSS version of Yoga Jul 17, 2018
ComponentKit.podspec Fixing podspec by removing dependency on patch version (#914) Jun 26, 2018
LICENSE Initial commit Mar 25, 2015
PATENTS Update Patent Grant Apr 10, 2015
README.md Fixing podspec by removing dependency on patch version (#914) Jun 26, 2018
build.sh Update ComponentKit build files Feb 22, 2018

README.md

ComponentKit

Build Status

ComponentKit is a view framework for iOS that is heavily inspired by React. It takes a functional, declarative approach to building UI. It was built to power Facebook's News Feed and is now used throughout the Facebook iOS app.

Quick start

ComponentKit is available to install via Carthage. To get started add the following to your Cartfile:

github "facebook/ComponentKit" ~> 0.23

Opening the Xcode projects

ComponentKit has a few dependencies that need to be installed via Carthage. Before you open any of the Xcode projects in this repo, make sure you run:

carthage checkout

If Carthage isn't installed, you easily install it via Homebrew:

brew install carthage

If you can't use Homebrew, Carthage provides other installation methods.

To get started with the example app:

open Examples/WildeGuess/WildeGuess.xcodeproj

Build and run the WildeGuess target to try it out!

If you're interested in viewing only the ComponentKit source code in Xcode:

open ComponentKit.xcodeproj

Learn more

Contributing

See the CONTRIBUTING file for how to help out.

License

ComponentKit is BSD-licensed. We also provide an additional patent grant.

The files in the /Examples directory are licensed under a separate license as specified in each file; documentation is licensed CC-BY-4.0.