# Awesome-Apple

A list of awesome 3rd party libraries and tools for Apple platform development, iOS and Mac. This is not an exhaustive list, just an opinionated set of resources. I highly recommend you check Github’s Objective-C and Swift Trending Page often.

#### Libraries & Frameworks

##### iOS UI

- DZNEmptyDataSet Show an special image when no data is available
- JVFloatLabeledTextField Give context to iOS users’ text fields
- ClusterPrePermissions Ask for iOS permissions twice
- Tweaks Tweak parameters at runtime in app on iOS
- M13ProgressSuite A wide range of progress indicators for iOS
- SpinKit Several indeterminate loading spinners
- MBProgressHUD For overlaying progress on top of a view controller
- TTTAttributedLabel Better attributed strings in UILabels
- AsyncDisplayKit Asynchronous user interfaces built over UIKit

##### Mac UI

- MASPreferences Preferences window for Mac Apps

##### Images

- FLAnimatedImage Performant GIFs for iOS
- GPUImage GPU based image and video processing for iOS
- FastImageCache iOS library for quickly displaying images while scrolling
- SDWebImage Asynchronous image downloader with cache support for iOS

##### Animation

- Pop Extensible animation library for iOS and Mac
- JazzHands Key-frame based animation for iOS

##### Logging

- CocoaLumberjack Better logging for iOS and Mac

##### Model Programming

- Mantle Simple model layer library for Mac and iOS
- Realm A new mobile-first database

##### Network Programming

- GCDWebServer HTTP server for iOS and Mac
- CocoaAsyncSocket TCP/IP socket server and consumer for iOS and Mac
- Restkit Transform REST API calls into models (including Core Data) for iOS and OSX
- AFNetworking “The” networking framework for iOS and OSX
- AlamoFire A networking framework for Swift, written by the creator of AFNetworking
- Reachability Reachability class for iOS and OSX

##### Audio

- AFSoundManager Easier local and streaming audio playback for iOS

##### Localization

- TTTLocalizedPluralString Much easier pluralization for NSLocalizedString
- InflectorKit Built in pluralization rules for a bunch of languages
- FormatterKit stringWithFormat that localizes different types of data

##### Programming Helpers

- Dollar.Swift Functional programming helpers for Swift
- ObjectiveSugar Functional programming helpers for iOS
- Reactive Cocoa Functional Reactive Programming for iOS and Mac
- libextobjc Cocoa library to extend Objective-C
- PromiseKit Better asynchronousa programming with Promises for iOS (Obj-C and Swift)
- DateTools Helping out with date and times
- KVOController Block based, easier, safer, KVO
- PureLayout Better programmatic Auto-Layout for iOS and Mac
- SwiftyJSON Handle JSON in Swift with ease

##### Testing

- Quick Behavior-Driven Development testing framework for Obj-C and Swift
- Specta Light weight TDD/BDD framework for Obj-C, built on top of XCTest
- Expecta A nice matching framework to make your tests more readable
- OHHTTPStubs Stubs for web request unit testing
- OCMock Mock objects for Objective-C unit testing

##### Misc

- Sparkle An updating framework for Mac

#### Xcode Plugins

All plugins should be installed with Alcatraz, the package manager for Xcode.

- FuzzyAutocomplete Fuzzy pattern matching for Xcode’s autocomplete
- Lin-Xcode5 Localization Manager for Xcode
- LLDB-Quicklook Quicklook for a variety of additional types
- KFCocoaPodsPlugin Xcode Plugin for CocoaPods with pod commands/console output, user notifications & code completion
- KSImageNamed Xcode Plugin to autocomplete `imageNamed:` method calls
- VVDocumentor Get help writing documentation in Xcode

#### Tools & Developer Apps

- Synx Sync project folders to Xcode groups
- Dash A wonderful documentation app for the Mac with integration everywhere
- CoocaPods A fantastic dependancy management system for iOS and Mac
- Crashlytics Crash reporting for iOS and Mac (and others)
- Answers Analytics for iOS (and others)

#### Websites and Resources

- NSHipster NSHipster is a journal of the overlooked bits in Objective-C, Swift, and Cocoa Updated weekly.
- ObjC.io A periodical about best practices and advanced techniques in Objective-C
- Ray Wenderlich Programming Tutorials focused on iOS
- inessential Brent Simmons’ blog (Programmer for Q Branch)
- mjtsai Michael Tsai’s blog
- NSBlog Mike Ash’s blog
- Tumblr Developer Blog Blog brought to you by the iOS developers at Tumblr
- Cocoa Controls iOS UI controls
- Pttrns iOS design inspiration

For more awesome lists, check out awesome-awesomeness.

If you think anything essential is missing (should be relevant for most or all Apple platform developers) leave me an issue, and I’ll take a look.

apple.md Github