Are there any repositories around for open sourced iPhone and iPad components?
For instance, I have found myself needing to create several new types of table cells to mimic some of Apple's existing functionality (for instance, all the different types of table cells present in the Settings application). I can't imagine I'm alone here.
Where do you go to find open sourced reusable components, or do you just write and hoard your own?
Update: I know there are open source full projects around ( see this question ), but rummaging through them and picking and choosing still leads to significant duplication of effort.
Meta: There's a site for that!
There's a new nicely browsable list of iOS controls at http://cocoacontrols.com/ .
Ongoing List
Here are some libraries that I've found or been told about (even answered here) since asking this question:
-
Three20 -- Custom UI classes used in the Facebook application
-
CocoaHelpers -- Extensions to common classes
-
MBProgressHUD -- Replacement for the undocumented UIProgressHUD
-
cocos2d for iPhone -- 2d game engine
- TouchCustoms -- Memory management, ratings, progress bars, more (GitHub Offline)
-
s7graphview -- Graphing
-
core-plot -- More graphing
-
HTFramework -- Reusable views
-
EGOTableViewPullRefresh -- Pull to refresh like Twitter (Tweetie 2)
-
PullToRefresh -- Another pull to refresh implementation
-
MGSplitViewController -- UISplitViewController replacement for the iPad
-
AQGridView -- A UITableView-style replacement that supports grids
-
DDActionHeaderView -- Combine the core concept of UIToolbar and UINavigationBar
-
DDAlertPrompt -- UIAlertView subclass providing UITextFields for user/password inputs
-
ASIHTTPRequest -- an easy to use wrapper around the CFNetwork API
-
ShareKit -- a quick way to integrate Twitter,Facebook, etc. into your app.
-
iDev Recipes - Open source code for the idevrecipes.com blog
-
QuickDialog - easy way to create dialogs, either in Obj-C or JSON
Source: Tips4all
Here are some good iOS open-source libraries/frameworks & projects:
ReplyDeleteUI Libraries & Frameworks
Useful categories & common UI's
SSToolkit
TapKu
GHKit
Three20: Foundation of Facebook's iPhone app
Progress indicator overlays
MBProgressHUD: Rounded-rect translucent
DSActivityView: Horizontal-style & rounded-rect translucent
MGImageUtilities: Resize, crop, and tint UIImages.
MGTwitterEngine: Twitter integration library for Mac OS X and iPhone
TISwipeableTableView: Swipe UITableViewCell to reveal a back view, like cells in the "Twitter" app
AcaniChat: Open-source version of iPhone's native Messages app
Photo viewers
Networking
REST
RestKit: Makes interacting with RESTful web services simple, fast and fun
HTTPRiot: A simple HTTP REST Library
ObjectiveResource: Makes interacting with Ruby on Rails applications dead simple
Sockets
AsyncSocket: TCP/IP socket networking library that wraps CFSocket and CFStream
Zimt: HTML5 Websockets
Core Data
mogenerator: Core Data code generation
Projects
TwitterFon
Game Libraries & Frameworks
cocos2d
Sparrow Framework
Physics engines
Box2D & Chipmunk
Testing Libraries & Frameworks
I have released three new Open Source projects on github the last month.
ReplyDeleteCWFoundation - Augmenting the Foundation framework
Conditional logging
Network monitoring
XML to domain object translations
Concurrency additions to NSObject and NSOperationQueue
And a bunch of small convenience stuff
CWUIKit - Additions to UIKit
Block based callbacks for UIAlertView and UIActionSheet
A Callout view like in MapKit
Column table view, like UITableView but with multiple columns
Linear layout view for dynamically sizing views
And many many more views and additions to make UI building easier
CWCoreData - Making it easy to work with several managed contexts
Lazy creation of default Core Data objects
Thread local NSManagedObjectContext instances
And a bunch of convenience methods for common tasks
I have also written a longer blog post on the topic of open source on iOS called The state of iOS Open Source - and what to do about it.
The truth is that there is a lot of open source code out there, but most of it is not well packaged for re-use and collaboration.
i think all the answers are missing a point here.
ReplyDeleteHere are the sites from were you can find reusable components
1) http://cocoacontrols.com/
2) http://open.iphonedev.com/
3) http://cocoaobjects.com/
Here is the twitter account where you can find popular reusable components on github about iPhone or iPad
4) https://twitter.com/#!/github_objc
as answered here Is there a gallery of reusable iPhone components on the web?
UIView that allows you to build Rating components to provide the same kind of experience AppStore or Youtube applications on iPhone do.
ReplyDeletehttp://code.google.com/p/s7ratingview/
cocos2d-iphone is a great 2D game engine with a built-in physics engine.
ReplyDeletecode.google.com has too many to name.
ReplyDeleteAlso WordPress released their iPhone app open source here
I've been working on a library of re-usable components which can be found at http://github.com/huddletech/HTFramework
ReplyDeleteCore Plot - a plotting framekwork for iOS and Mac development. It's open source and very flexible.
ReplyDeleteCocoa Objects is a repository that lists open source, reusable Objective-C code for Mac OS and iOS.
ReplyDeleteMake sure you double-check the component's license.
ReplyDeleteIf it's MIT or Apache then most of the times you're OK, but if it's GPL, you need to either release the source code of the application you're writing or ask the original author for an permission to use the component.
I don't know of any control-specific repositories, but there are a number of open-source iPhone projects around that can be helpful for mimicking behavior.
ReplyDeleteTapku looks like another nice one.
ReplyDeleteI just started a collection of open-source self-contained (.h/.m, not external deps) components at https://github.com/andreyvit/SoloComponents-iOS, published three of my own components there initially.
ReplyDeleteI was thinking about this just yesterday, there are so many Open Source projects out there that could be ported to the iphone but they aren't, obviously a most of it is not relevant to the iphone (anything use X for example) :)
ReplyDeleteI think the community needs something like Macports but for the iphone (iphonePorts??) of course many of the existing open source applications won't be relevant but the libraries can be extremly useful. I am currently looking into porting TTS library to iphone (see my question here )
I see no mention of JSON parser/generator. What do you think about this one: http://stig.github.com/json-framework/
ReplyDeleteAlso for regular expression support: RegexKitLite
One of the best share component AddThis
ReplyDeleteCustom UISwitchView, enables you to add your own colors and label instead of on/off.
ReplyDeletehttps://github.com/alinux/iPhone-custom-switch-UIView
You can also have a look at my random collection of components on GitHub. It's stuff I couldn't find (that's why I coded them) so you might be lucky and find what you need:
ReplyDeletehttps://github.com/doukasd/iOS-Components
Interesting that no-one's flagged this one yet: NGMoviePlayer. I had to recreate the .xib but that's no biggie. It's a great starting point for an AVPlayer-based media player.
ReplyDeleteNot technically a 100% iOS component, but I LOVE QuincyKit, it makes iOS crash reporting so much easier.
TBXML is my XML library of choice. The SudzC website uses TouchXML, which isn't bad either.
dimzzy's ViewsCache project provides a simple, clean implementation of dequeueReusableViewWithIdentifier (abstracting UITableViewCell's reusability to UIViews). I have had some success implementing a custom grid control with this (similar to AQGridView, although since I found that I'm using it instead).
pixelfreak already posted json-framework for JSON parsing, but I'd say use JSONKit instead. Why? Performance.
If you're looking for examples of free game source, here's a great one called Tap Blaster HD. Complete game source available for download - http://9magnets.com/freebies.html
ReplyDelete