Awesome Open Source
Awesome Open Source

Xcore logo

Main Branch Build Status CocoaPods Version Number Supported Platform License

Xcore is a collection of hundreds of Swift extensions and components designed to minimize boilerplate to accomplish common tasks with ease. It is a framework to efficiently build and scale apps without compromising quality, maintainability and developer productivity. Check out the included example project and documentation to see how.


  • iOS 13.0+
  • Xcode 12.0+
  • Swift 5.3+



Xcore is available through CocoaPods. To integrate Xcore into your Xcode project using CocoaPods, simply add the following line to your Podfile:

pod 'Xcore'

Latest version

pod 'Xcore', :git => ''

Third-Party Extensions

Xcore provides extensions for various third-party frameworks. They are behind #if canImportflag to avoid linking these frameworks as hard dependencies.

To enable these extension in your own project, simply add the following script in your podfile:

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            if == "Xcore" then
                # Exposing Carthage frameworks
                # Expose `Vendor` (Carthage) directory to Xcore so we can get conditional extensions.
                config.build_settings['FRAMEWORK_SEARCH_PATHS'] ||= ['$(inherited)', '${PODS_ROOT}/../Vendor']

                # Exposing CocoaPods frameworks
                # Or expose `SnapKit` pod to Xcore so we can get conditional extensions.
                config.build_settings['FRAMEWORK_SEARCH_PATHS'] ||= ['$(inherited)', '${PODS_CONFIGURATION_BUILD_DIR}/SnapKit']
                # Link `SnapKit` framework to Xcore so the conditional canImport flag works.
                config.build_settings['OTHER_LDFLAGS'] ||= ['$(inherited)', '-framework "SnapKit"']

Replace '${PODS_ROOT}/../Vendor' with location of your frameworks directory.

Note: This script can also make your Carthage dependencies visible to Xcore so you can use these conditional extensions.


You can find the documentation here.

Documentation is generated with jazzy and hosted on GitHub-Pages. To regenerate documentation, run ./Scripts/ from the root directory in the repo.



Xcore is released under the MIT license. See LICENSE for details.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
swift (7,620
ios (3,545
toolbox (63

Find Open Source By Browsing 7,000 Topics Across 59 Categories