/iOS-Projects-Catalogue

Сatalogue of iOS open source projects.

iOS Projects Catalogue

This is the catalogue of iOS/Objective-C Open Source projects. I created it to have a fast access to any Mac/iOS-related projects I recently Github-starred or explored.

It will grow as fast as it is possible with my ability to add/explore new projects around the net, Github, etc.

If you liked it, feel free to suggest any new projects that are not present in the current list. See Contribution.

You may start watching this repo to receive notifications about new incoming projects. New projects are added via Pull Requests to 'new' branch so all watchers of this repository receive corresponding email notifications.

Also I keep another catalogue of projects: it contains the list of candidates for this catalogue. After I am sure enough that a particular candidate-project deserves its place here, I move it here from the list of Candidates.

Note! This catalogue also includes a number of projects which are not open-source but are still somehow related to a development of iOS/Objective-C applications.

Suggestions are welcome! New projects are welcome!

👍 Emoji badges 👍. Recently I started using emoji badges to mention the projects which I think are definitely worth attention. My intention is to make these badges especially useful for newcomers - the folks who just start programming for OSX/iOS platforms. Please note that presence or absence of such badges near a particular project does not point you to anything else than just a personal preference I have for this project - it maybe subjective, it may change later - so please do not be serious about it.

Last update: 2014-10-29


Table of Contents generated with DocToc

Contents

Objective-C and Cocoa

Frameworks

A delightful networking framework for iOS and OSX

RestKit is a framework for consuming and modeling RESTful web resources on iOS and OS X

A framework for composing and transforming streams of values

GNUstep is a mature Framework, suited both for advanced GUI desktop applications as well as server applications. The framework closely follows Apple's Cocoa (formerly NeXT's OpenStep) APIs but is portable to a variety of platforms and architectures.

Nimbus is a toolkit for experienced iOS software designers. It provides well-documented, modular components that solve a number of common iOS software requirements. This includes: a rich text label with hyperlinks; a web view controller; a simple approach to table models, radio groups, and table actions; standardized interapp communication, and powerful debugging tools, amongst many other features.

The Open Source Game Engine for iOS http://www.sparrow-framework.org/

ROAD - Rapid Objective-C Applications Development

Extensions for Objective-C and Cocoa frameworks

A Cocoa library to extend the Objective-C programming language.

ObjectiveC additions for humans. Ruby style.

Underscore.m is a small utility library to facilitate working with common data structures in Objective-C. It tries to encourage chaining by eschewing the square bracket]]]]]]. It is inspired by the awesome underscore.js.

Custom attributes for ObjC properties.

The Objective-C block utilities you always wish you had.

Everything that really should be in Foundation, but isn't. Future-proof with ARC

Q Branch’s collection of Cocoa categories and utilities.

Utilities and categories for Objective-C

A Swiss Army Knife for Objective-C developers

Data structures

A simple, fast circular buffer implementation

Tree data structure implementation for iOS without using CFTree. Keywords: iOS, tree, algorithms, data structures, binary, b-trees.

Libraries implementing Promises (Futures) pattern

A delightful Promises implementation for iOS

An Objective-C Class which implements the Promises/A+ specification.

Objective-C Promises in the CommonJS style

Macros utilities

A variety of utilities for the C preprocessor.

macros that automate vending an NSString given an enum value (f.x. MyEnumToString(value))

A recursive C preprocessor macro which performs an operation on each element of a list

Conventions / Style guides / Best practices

Coding conventions for Objective-C projects.

Style guide & coding conventions for Swift projects

The New York Times Mobile Team’s Objective-C Style Guide.

Zen and the Art of the Objective-C Craftsmanship

A quick reference cheat sheet for common, high level topics in Objective-C.

Low level

Hopper is a reverse engineering tool for OS X, that lets you disassemble, decompile and debug your 32/64bits Intel Mac, Windows and iOS executables!

Objective-C Runtime Browser, for Mac OS X and iOS

Linux port of Apple's open-source concurrency library

interprocess code injection for Mac OS X

runtime function overriding for Mac OS X

Painless code injection for OS X

Cross-platform development

Objective-C for Android. Write your apps entirely in Objective-C. Share the same code on iOS and Android.

Create Native iOS, Android, Mac and Windows apps in C#.

Marmalade Juice is a new and innovative technology which gives developers the ability to recompile their iOS projects natively for Android. And, because there is no need for laborious re-writing, you can focus on making your game the best it can be.

Application Platforms

The complete mobile app platform Focus on creating unique & engaging apps on any platform. We take care of everything else your app needs, from the core of your app to analytics and push notifications.

C2Call empowers your apps' communication with its cutting-edge, cross-platform 7-way Group Video Calling, Voice and Instant Messaging featured technology for Mobiles, Tablets and Desktops.

Networking

Elegant HTTP Networking in Swift

Servers

A small, lightweight, embeddable HTTP server for Mac OS X or iOS applications

Lightweight GCD based HTTP server for OS X & iOS (includes web based uploader & WebDAV server)

Sockets

Asynchronous socket networking library for Mac and iOS

A conforming Objective-C WebSocket client library.

A fast, synchronous Objective-C wrapper around BSD sockets for iOS and OS X.

An asynchronous, futures-based distributed objects library for Objective-C

Logging

AFNetworking Extension for HTTP Request Logging

Other

socket.io v0.7.2+ for iOS devices

ARC and GCD Compatible Reachability Class for iOS and MacOS. Drop in replacement for Apple Reachability

SPDY for iOS and OS X

TCP port scanner, spews SYN packets asynchronously, scanning entire Internet in under 5 minutes.

Data

Model framework for Cocoa and Cocoa Touch

A powerful value transformation API extracted from RestKit

Distributed version control + object persistence framework http://coreobject.org

A block-based API for NSValueTransformer, with a growing collection of useful examples.

A faster and more flexible binary file format replacement for Property Lists and JSON

AutoCoding is a category on NSObject that provides automatic support for NSCoding and NSCopying to every object.

The easiest way to marshall and unmarshall Dictionary representations such as JSON representation

EasyMapping fork. [From JSON to Core Data Fast and Effectively](http://yalantis.com/blog/2014/03/17/from-json-to-core-data-fast-and-effectively/(

'Parsing Expression Grammar' toolkit for Cocoa/Objective-C

Objective-C Tokenizer and Parser Generator. Supports Grammars.

Core Data

A lightweight Active Record - style of managing CoreData objects.

SQLite-based

A Cocoa / Objective-C wrapper around SQLite

An alternative to Core Data for people who like having direct SQL access.

ActiveRecord for iOS without CoreData, only SQLite.

NoSQL

Couchbase Lite is an embedded lightweight, document-oriented (NoSQL), syncable database engine.

A simple NoSQL database(key-value pair) in Objective-C. It runs on iOS and OS X.

Key-Value stores

YapDatabase is a "key/value store and MORE" built atop sqlite for iOS & Mac.

Objective-C interface to Google's LevelDB key/value embedded database

a key-value object store backed by sqlite3 for ios

Encryption

SQLCipher is an SQLite extension that provides 256 bit AES encryption of database files. http://sqlcipher.net/

Debugging

Plausible CrashReporter provides an in-process crash reporting framework for use on both iOS and Mac OS X, and powers most of the crash reporting services available for iOS, including HockeyApp, Flurry, and Crittercism.

Chisel is a collection of LLDB commands to assist debugging iOS apps.

An in-app debugging and exploration tool for iOS

Beagle is an Objective C debugging tool that can sniff out class instances on the heap.

A simple Objective-C singleton to instrument, protect, trace, and suppress selectors at runtime

Dynamic code injection Tool

Trace Objective-C method calls by class or instance)

Logging

A modern, flexible logging tool

A fast & simple, yet powerful & flexible logging framework for Mac and iOS

Simple but flexible Log4J-like logging system for Objective-C

A powerful and flexible logging utility for Mac/iOS apps

NSLog replacement for coders!

Log common structures without boring conversions. ATLog(@"%@",CGPointMake(1,1)); // No need for NSStringFromCGPoint.

Core Data

GDCoreDataConcurrencyDebugging helps you find cases where NSManagedObject's are being called on the wrong thread or dispatch queue.

Testing

Testing frameworks

BDD for iOS

A light-weight TDD / BDD framework for Objective-C & Cocoa

BDD-style testing using Objective-C

Test Automation

Automated acceptance tests for native iOS apps.

Keep It Functional - An iOS Functional Testing Framework

Calabash is an automated testing technology for Android and iOS native and hybrid applications.

IOS automation for native, hybrid and mobile web.

Test any IOS native, hybrid, or mobile web application using the Selenium / Webdriver API. IOS automation is as easy as automation for a browser, due to reuse of the well known API. You can reuse the helper classes from your web tests to i.e. create data, and follow the same design patterns you're used to (Page Object etc.).

Appium is an open source test automation framework for use with native and hybrid mobile apps. It drives iOS and Android apps using the WebDriver JSON wire protocol.

Stubbing tools

Stub your network requests easily! Test your apps with fake network data and custom response time, response code and headers!

Testing HTTP requests has never been easier. Nocilla: Stunning HTTP stubbing for iOS and Mac OS X.

A simple(r) way to stub out HTTP servers in your Objective-C app.

VCR tools

VCRURLConnection is an iOS and OSX API to record and replay HTTP interactions, inspired by VCR for ruby

Powerful Objective-C library to replay HTTP responses

Other

Simple project automation for the sophisticated Xcode hacker

Mockito for Objective-C: creation, verification and stubbing of mock objects

RedGreen is an extension library for SenTestKit that makes the test output easier to parse by humans.

Flexible and fast xcodebuild formatter

TUDelorean helps you test your time-dependent Objetive-C code allowing you travel anywhere in time.

Deployment

A tool that will make a lot of iPhone/iPad developers' life easier. It shares your app over-the-air in a WiFi network. Bonjour is used and no configuration is needed.

Presenting mobile apps is a pain in the ass. So is collaborating remotely with mobile developers. Don't let clunky hardware cameras and unrealistic simulators get in your way. Introducing iOStream. Mobile presentations made easy. Install the SDK and start streaming now.

Beta testing

Complete mobile beta testing solution. One platform to orchestrate your entire mobile testing process.

Analytics

Analytics framework for iOS

Simplify your iOS analytics

Providers

INDUSTRY-LEADING APP ANALYTICS FOR FREE

iPhone tracking library for Mixpanel Analytics. http://mixpanel.com

The official iOS SDK for the HockeyApp service (Releases are in the master branch, current development in the default develop branch) http://hockeyapp.net/releases

Countly Mobile Analytics - iOS SDK http://count.ly

Intelligent Analytics for your Mac, Windows, Android, iOS, Unity, Action Script apps

Crash reporting tools

...the most powerful, yet lightest weight crash reporting solution.

Bugsnag notifier for iOS and OSX apps, https://bugsnag.com/

The Ultimate iOS Crash Reporter

Command-line tools

xctool is a replacement for Apple's xcodebuild that makes it easier to build and test iOS and Mac projects.

world-class command line utilities for iOS development

  • Cupertino

    Automate administrative tasks that you would normally have to do through the Apple Dev Center website. Life's too short to manage device identifiers by hand!

  • Houston

    Send push notifications from the command line. Simply provide your credentials, construct your message, and 3...2...1... blastoff.

  • Dubai

    Generate Passbook .pkpass files with ease. Rapidly iterate on the design and content of your passes, or generate one-offs on the fly.

  • Venice

    Secure your In-App-Purchases by verifying App Store purchase receipts, and retrieving the information associated with receipt data.

  • Shenzhen 👍

    Create development builds and then distribute their .ipa files over TestFlight, HockeyApp, Amazon S3, or FTP. Get new builds out to testers and enterprises in seconds.

  • phonegap/ios-sim

Command Line Launcher for the iOS Simulator.

tiny little sinatra app to allow launching an iOS app in the simulator via HTTP

Install and debug iPhone apps from the command line, without using Xcode

Device information

Detects the hardware, software and display of the current iOS or Mac OS X device at runtime.

Xcode. Tools and Plugins

Package manager for Xcode http://alcatraz.io/

Plugins

Xcode plug-in to to use clang-format from in Xcode and consistently format your code with Clang

A Localization Manager for Xcode 5

XcodeColors allows you to use colors in the Xcode debugging console. It's designed to aid in the debugging process.

UI

A lightweight, easy to use, Side Drawer Navigation Controller

PKRevealController (ex. ZUUIRevealController) is a delightful view controller container for iOS, enabling you to present multiple controllers on top of one another.

FXImageView is a class designed to simplify the application of common visual effects such as reflections and drop-shadows to images, and also to help the performance of image loading by handling it on a background thread.

A subclass of UITextView that fixes the most glaring problems from iOS 7 and 7.1.

Makes transitioning between storyboards possible. Using Multiple Storyboards in iOS Development

Configurable morphing transitions between text values of a label.

NSWindow subclass that allows you to apply Core Animation effects.

Stylesheets

UIAppearance Stylesheets

Style iOS apps with a stylesheet, similar to CSS

Transitions

UINavigationController with custom transitions

Push/Pop transition for entire UINavigationController views.

Auto Layout

The ultimate API for iOS & OS X Auto Layout — impressively simple, immensely powerful.

UIKit extensions

A bundle of small classes which enriches your possibilities with UIKit and CoreAnimation.

An fork of Trevor Harmon's UIImage category methods, updated for the latest versions of iOS.

Social

Simple social authentication for iOS. http://simpleauth.io

A soup-to-nuts sharing library for iOS.

Maps

A lightweight callout view class for iOS mimicking UICalloutView.

Geometry

Geometry functions for Cocoa and Cocoa Touch

Clustering

A drop-in MapKit/MKAnnotation pin clustering library for MKMapView on iOS

Example App: How To Efficiently Display Large Amounts of Data on iOS Maps, http://robots.thoughtbot.com/how-to-handle-large-amounts-of-data-on-maps/

Library for location-based clustering of data using Quadtree written in Objective-C

MKMapView with clustering

Simple and easy to use clustering mapView for iOS

A subclass of MKMapView to cluster annotations.

Fast map clusterization build on top of Region QuadTree.

Graphics

SVG

Display and interact with SVG Images on iOS / OS X, using native rendering (CoreAnimation)

Easily convert your SVG files into CGPaths, CAShapeLayers, and UIBezierCurves.

Audio

An iOS and OSX audio visualization framework built upon Core Audio useful for anyone doing real-time, low-latency audio processing and visualizations.

Painless high-performance audio on iOS and Mac OS X. http://alexbw.github.com/novocaine/

Transfer data using microphone/speaker on iOS devices

A low-memory footprint audio streamer for iOS and OS X

Video

XCDYouTubeVideoPlayerViewController

YouTube video player for iPhone and iPad

Games

This is an iOS verion of the "smash hit" Flappy Bird built using iOS7's physics engine.

Flappy Bird Clone for learning purposes—feel free to play along.

Just another yet FlappyBird-style game.

Applications

Graphics

Vector illustration app for the iPad.

Painting app for the iPhone and iPad.

Other

iOS implementation of the University of Michigan's bus dispatch system

An open-source, privacy-enhancing web browser for iOS, utilizing the Tor anonymity network

Code Examples

Code Examples http://useyourloaf.com

Code examples for the new functions of iOS 7.

Repo containing the sample projects associated with the iOS7 Day-by-Day blog series

iOS Custom Segue and Unwind Segue with animation

Basic example of calling and unwinding a segue programatically.

Sample project demonstrating self-sizing table view cells in iOS 8 using Swift and Objective-C.

This is a sample project showing how to contain a UITableViewController in another VC with a Search Bar + Display Controller working as if it were all in a UITableViewController.

From "Intentions: An experiment in Ultralight View Controllers" http://chris.eidhof.nl/posts/intentions.html

Low-level

An iOS app in assembly

Creating an iOS app in pure C

Algorithms

EKAlgorithms contains some well known CS algorithms and other stuff.

A swift based implementation of the Dijkstra algorithm

OSX

Auto-updating OS X apps

Squirrel.Mac

:shipit: Cocoa framework for updating OS X apps :shipit:

Sparkle

A software update framework for OS X. http://sparkle-project.org/