![Issues on Waffle](https://img.shields.io/badge/issues on-Waffle-blue.svg)
![Built by Dominus](https://img.shields.io/badge/built by-Dominus-brightgreen.svg)
![Obj-C Code](https://img.shields.io/badge/code in-Objective--C-yellow.svg)
Haystack SDK contains multiple extensions and enhancements for iOS development, including a collection of simple Objective-C classes and categories that fit in almost every project. Most of these classes are not large or structured enough to fit in a special library or framework, but are regurarely needed throughout the most projects you are working on. Basically it is meant to fill the void of classes without entire libraries.
Project is actively developed and as the Apple SDK's changes, project is updated. Note that the project is not finished and might contain bugs. Feel free to open an issue. To avoid clashing with any future framework improvements, all Haystack classes are prefixed with HAY
and category methods are also prefixed with lowercase hay
.
Haystack supports Swift, but as it is written in Objective-C, it currently needs to be added to the bridging header. Framework and Carthage support on the way. If you are only supporting iOS 8.x and greater, you can use Haystack as a framework. For Swift projects an alternate version of Haystack will be developed.
Haystack is not limited only to code resources, but contains multiple other resources used in development, such as scripts. Resources are divided into sections, each of which is represented by a folder of the same name:
-
Pods
Example podfiles that are used in many of the commercial projects, including more advanced configurations and even podspec files to create new specifications.
-
Scripts
Handful of Bash and Ruby scripts that speed up iOS development. Scripts include management of Xcode SDK's, copying them around, which is useful for Beta development.
-
SDK
Contains Objective-C classes and categories that are installed part of a CocoaPods install. The classes are general and extend base Apple SDK's. Haystack SDK supports iOS 7 and up.
- Categories
- Foundation
- NSArray+Class
- NSData+Base64
- NSDate+Additional
- NSDate+Timestamp
- NSDictionary+Class
- NSInvocation+Argument
- NSObject+Property
- NSObject+PropertyList
- NSObject+Runtime
- NSObject+Swizzle
- NSString+Additional
- NSString+Random
- NSString+Validation
- NSURL+Parameters
- UIKit
- UIAlertView+Short
- UIApplication+Information
- UIApplication+Screenshot
- UIApplication+Version
- UIButton+Position
- UIColor+Create
- UIColor+Flat
- UIDevice+Capabilities
- UIDevice+DeviceInfo
- UIDevice+Hardware
- UIDevice+Network
- UIDevice+Software
- UIFont+SmallCaps
- UIStoryboard+Initialization
- UIView+Cell
- UIView+Debug
- UIView+Hierarchy
- UIView+Snapshot
- UIViewController+BackgroundImage
- Foundation
- Classes
- HAYMath
- HAYUnitFormatter
- HAYWeakPointer
- Categories
-
Templates
Contains Liftoff templates to generate different types of iOS or Mac OS X projects.
-
Wiki
Development guidelines, project initialization and deployment workflows, App Store suggestions, Wikis for development tools, instructions, tutorials, most useful libraries and more.
All header files and fully documented for ease of use. Only method stubs are displayed in readme, to keep it short. The documentation is in DoxyGen format, allowing Xcode to parse documentation headers or generate HTML docs.
You can install the SDK via CocoaPods:
pod 'Haystack'
Or manually drag & drop Haystack
folder into Xcode project, then follow the Using in project section.
It is recommended for you to add Haystack.h file into precompiled header (.pch). That way all classes and categories are added to all files and you can use them everywhere throughout the project.
Haystack SDK includes documents that can be used to improve development workflow.
- Deployment workflow
- Automated testing
- Continuous Integration
- Coding guidelines
- Development tools
Dal Rupnik
- legoless on GitHub
- @thelegoless on Twitter
- [email protected]
Haystack is available under the MIT license. See LICENSE file for more information.