All Projects → leavez → Cocoapods Binary

leavez / Cocoapods Binary

Licence: mit
integrate pods in form of prebuilt frameworks conveniently, reducing compile time

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Cocoapods Binary

Bfkit Swift
BFKit-Swift is a collection of useful classes, structs and extensions to develop Apps faster.
Stars: ✭ 963 (-4.08%)
Mutual labels:  cocoapods
Mbprogresshud Bwmextension
Nihility-Ming to MBProgressHUD extension, easy to use.
Stars: ✭ 35 (-96.51%)
Mutual labels:  cocoapods
Aerogear Ios Http
Lightweight lib around NSURLSession to ease HTTP calls
Stars: ✭ 39 (-96.12%)
Mutual labels:  cocoapods
Jiramobilekit
JIRA Mobile Kit a framework for raising bugs within your app including screenshots easily. JIRA Bug Raising written in Swift. iOS JIRA SDK Swift 3-4
Stars: ✭ 33 (-96.71%)
Mutual labels:  cocoapods
Mcplayerkit
MCPlayerKit is iOS Player, PlayerCoreType: AVPlayer can use play some video, IJKPlayer type can play video, Live ...
Stars: ✭ 34 (-96.61%)
Mutual labels:  cocoapods
Tangramkit
TangramKit is a powerful iOS UI framework implemented by Swift. It integrates the functions with Android layout,iOS AutoLayout,SizeClass, HTML CSS float and flexbox and bootstrap. So you can use LinearLayout,RelativeLayout,FrameLayout,TableLayout,FlowLayout,FloatLayout,LayoutSizeClass to build your App 自动布局 UIView UITableView UICollectionView
Stars: ✭ 984 (-1.99%)
Mutual labels:  cocoapods
Swiftlyext
SwiftlyExt is a collection of useful extensions for Swift 3 standard classes and types 🚀
Stars: ✭ 31 (-96.91%)
Mutual labels:  cocoapods
Sketchkit
A lightweight auto-layout DSL library for iOS & tvOS.
Stars: ✭ 40 (-96.02%)
Mutual labels:  cocoapods
Scenekit Bezier Animations
Create animations over Bezier curves of any number of points
Stars: ✭ 35 (-96.51%)
Mutual labels:  cocoapods
Grview
UIView and other UIKit elements with a gradient and other attributes for IOS
Stars: ✭ 39 (-96.12%)
Mutual labels:  cocoapods
Motion Animator Objc
A Motion Animator creates performant, interruptible iOS animations from motion specs.
Stars: ✭ 33 (-96.71%)
Mutual labels:  cocoapods
Rainbowbar
Progress bar with wild animation for notched status bar
Stars: ✭ 34 (-96.61%)
Mutual labels:  cocoapods
Ftpopovermenu
FTPopOverMenu is a pop over menu for iOS which is maybe the easiest one to use. Supports both portrait and landscape. It can show from any UIView, any UIBarButtonItem and any CGRect.
Stars: ✭ 988 (-1.59%)
Mutual labels:  cocoapods
Centeredcollectionview
A lightweight UICollectionViewLayout that 'pages' and centers its cells 🎡 written in Swift
Stars: ✭ 965 (-3.88%)
Mutual labels:  cocoapods
Gaugekit
Kit for building custom gauges + easy reproducible Apple's style ring gauges.
Stars: ✭ 997 (-0.7%)
Mutual labels:  cocoapods
Eminim
JSON serialization framework for Nim, works from a Stream directly to any type and back. Depends only on stdlib.
Stars: ✭ 32 (-96.81%)
Mutual labels:  compile-time
Sica
🦌 Simple Interface Core Animation. Run type-safe animation sequencially or parallelly
Stars: ✭ 980 (-2.39%)
Mutual labels:  cocoapods
Istimeline
Simple timeline view written in Swift 3
Stars: ✭ 1,005 (+0.1%)
Mutual labels:  cocoapods
Fontblaster
Programmatically load custom fonts into your iOS and tvOS app.
Stars: ✭ 1,000 (-0.4%)
Mutual labels:  cocoapods
Swiftysound
SwiftySound is a simple library that lets you play sounds with a single line of code.
Stars: ✭ 995 (-0.9%)
Mutual labels:  cocoapods

Build Status

A CocoaPods plugin to integrate pods in form of prebuilt frameworks, not source code, by adding just one flag in podfile. Speed up compiling dramatically.

Good news: Introduction on cocoapods offical site: Pre-compiling dependencies ( NOTE: This plugin is a community work, not official.)

Why

You may wonder why CocoaPods doesn't have a function to integrate libs in form of binaries, if there are dozens or hundreds of pods in your podfile and compile them for a great many times meaninglessly. Too many source code of libs slow down your compile and the response of IDE (e.g. code completion), and then reduce work efficiency, leaving us time to think about the meaning of life.

This plugin implements this simple wish. Replace the source code in pod target with prebuilt frameworks.

Why don't use Carthage? While Carthage also integrates libs in form of frameworks, there several reasons to use CocoaPods with this plugin:

  • Pod is a good simple form to organize files, manage dependencies. (private or local pods)
  • Fast switch between source code and binary, or partial source code, partial binaries.
  • Some libs don't support Carthage.

How it works

It will compile the source code of pods during the pod install process, and make CocoaPods use them. Which pod should be compiled is controlled by the flag in Podfile.

Under the hood

( You could leave this paragraph for further reading, and try it now. )

The plugin will do a separated completed 'Pod install' in the standard pre-install hook. But we filter the pods by the flag in Podfile here. Then build frameworks with this generated project by using xcodebuild. Store the frameworks in Pods/_Prebuild and save the manifest.lock file for the next pod install.

Then in the flowing normal install process, we hook the integration functions to modify pod specification to using our frameworks.

Installation

$ gem install cocoapods-binary

Usage

plugin 'cocoapods-binary'

use_frameworks!
# all_binary!

target "HP" do
    pod "ExpectoPatronum", :binary => true
end
  • Add plugin 'cocoapods-binary' in the head of Podfile
  • Add :binary => true as a option of one specific pod, or add all_binary! before all targets, which makes all pods binaries.
  • pod install, and that's all

Note: cocoapods-binary require use_frameworks!. If your worry about the boot time and other problems introduced by dynamic framework, static framework is a good choice. Another plugin made by me to make all pods static frameworks is recommended.

Options

If you want to disable binary for a specific pod when using all_binary!, place a :binary => false to it.

If your Pods folder is excluded from git, you may add keep_source_code_for_prebuilt_frameworks! in the head of Podfile to speed up pod install, as it won't download all the sources every time prebuilt pods have changes.

If bitcode is needed, add a enable_bitcode_for_prebuilt_frameworks! before all targets in Podfile

Known Issues

  • doesn't support watchos now
  • dSYM files is missing for dynamic frameworks using this plugin. Workaround: Don't use this plugin for a release build. Add a if condition with ENV around plugin 'cocoapods-binary'. (detail) (fix in 0.4.2)

License

MIT

Appreciate a 🌟 if you like it.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].