Xcore logo

Master Branch Build Status CocoaPods Version Number Supported Platform License

Xcore is a collection of pure Swift and Cocoa Touch classes, extensions and components for rapid and safe iOS development. It provides a vast library of customizations and extensions to get tasks done with ease and bugs free. Check out the included example project and documentation to see how.

Requirements

  • iOS 11.0+
  • Xcode 11.0+
  • Swift 5.1+

Installation

CocoaPods

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 => 'https://github.com/zmian/xcore.swift'

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 target.name == "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"']
            end
        end
    end
end

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.

Documentation

You can find the documentation here.

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

Author

License

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