13pods
Both Buildasaur and XcodeServerSDK need similar utilities. This is where I keep them.
License: MIT
Helps determine when views are being re-used and also to get an easy and quick way of knowing how views are laying out when doing UI via code. Below a code sample:
UIView *tmpVw = [[UIView alloc] initWithFrame:CGRectZero];
tmpVw.backgroundColor = [tmpVw colorFromMemory];
This was "inspired" by [this blog post]("http://blog.bignerdranch.com/879-peek-a-view/") from [Mark Dalrymple]("http://blog.bignerdranch.com/author/markd/").
License: MIT
Custom assertion Thanks to the article by Mike Ash (see legal at the bottom) I came to the realization that the assertions provided by default although good in principle lack a lot of potential and decided that a better one could be done with some simple tweakings from the code in the article. For this I created a "custom" assertion that also supports the use of CocoaLumberjack and has a "hack" to throw exceptions when the assertion fails (instead of just aborting). The assertion has a couple of possible "configurations" explained below.
Features supported Assertion supports the use of CocoaLumberjack [GitHub Repo] for more detailed logging. In order to use it you need to set the PREPROCESSOR macro USELUMBERJACK=1 and configure the loggers for CocoaLumberjack (demo app does this) Assertion also supports a "hack" to make the assertion reach the CrashReport via a flag that will output the assert as an exception. Note: The "extra" data will just appear in the CrashReport pointing to the line where the assertion was called. To do this specify the PREPROCESSOR macro kSHOULDTHROW_EXCEPTION=1 and this will make the assertion to build a "custom" exception with the following data: Message: Assertion Failure - #expression Reason: #expression User Info: File: File name where the assertion failed Line: Line number on the file where the assertion failed Function: The name of the function where the assertion failed Message: The custom message provided to the assertion (if any)
To-Do Add support for FlurrySDK (Logging the custom exception to Flurry as a way to reach all the possible data) Add support for Crittercism (Same as FlurrySDK) Add an automatic way of sending the CocoaLumberjack logs compressed to a desired location
Legal Based on an article by Mike Ash - Friday Q&A 2013-05-03: Proper Use of Asserts
Icon was taken from IconFinder.com And used under this license
License: Custom
KZAsserts
provides a great amount of helper assertions that provide testing capabilities even during production code.
Unfortunately it provides a preset of specific cases but no "run block" scenario.
ETAssert
will execute the provided ^(NSError *){ /*code here*/ }
block in case you need to return something other than NO
or nil
.
License: MIT
ETFormatter formats with custom colors and headers with detailed information of the class, function and line for CocoaLumberjack logger.
License: MIT
#ETFramework
Helper basic framework for iOS projects.
Some categories and helper classes for easy and quicker development.
License: MIT
UIImage
category with some convenience methods.
For now only generates a UIImage
from UIColor
.
License: MIT
This category was primarily created due to FBSnapshotTestCase and ReactiveCocoa.
Due to the RACSignal
s (rac_textSignal
) bindings to UIButton
RACCommand
s responding to changes in UITextField
my FBSnapshotTestCase
were failing.
Even though we were "injecting" the correct data to the model the bindings were not firing the signal to enable the button.
In here you'll find an easy method that will set the text and will also fire the rac_textSignal
.
License: MIT
Moya abstracts network commands using Swift Generics to provide developers with more compile-time confidence.
ReactiveSwift and RxSwift extensions exist as well. Instructions for installation are in the README.
License: MIT
Nimble matchers for FBSnapshotTestCase. Highly derivative of Expecta Matchers for FBSnapshotTestCase.
License: MIT
Rec is a NSURLProtocol
that intercepts each NSURL
request made from NSURLSession
s (with defaultSessionConfiguration
& ephemeralSessionConfiguration
) and adds itself as the delegate for the connection; once the request succeeds the framework will save it to the application's Documents
folder (under «Fixtures» folder).
License: MIT
RxViewModel
is the marriage between MVVM
and Rx
extensions
Since ReactiveViewModel
project felt on stagnation and there's not Swift
or Swift 2.0
implementation we found the need to implement something like this on Swift
.
Given the fact that there's no Swift
branch and the lack of interest in the project we felt it was better to give RxSwift
/RxCocoa
a chance and instead use it as the base for this reactive view model approach.
Long story short: a blatant «imitation» of ReactiveViewModel
using RxCocoa
.
License: MIT