Thursday, May 24, 2012

Open source iOS components? Reusable views, controllers, buttons, table cells, etc?


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:



Source: Tips4all

20 comments:

  1. Here are some good iOS open-source libraries/frameworks & projects:

    UI 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

    ReplyDelete
  2. I have released three new Open Source projects on github the last month.

    CWFoundation - 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.

    ReplyDelete
  3. i think all the answers are missing a point here.

    Here 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?

    ReplyDelete
  4. UIView that allows you to build Rating components to provide the same kind of experience AppStore or Youtube applications on iPhone do.

    http://code.google.com/p/s7ratingview/

    ReplyDelete
  5. cocos2d-iphone is a great 2D game engine with a built-in physics engine.

    ReplyDelete
  6. code.google.com has too many to name.

    Also WordPress released their iPhone app open source here

    ReplyDelete
  7. I've been working on a library of re-usable components which can be found at http://github.com/huddletech/HTFramework

    ReplyDelete
  8. Core Plot - a plotting framekwork for iOS and Mac development. It's open source and very flexible.

    ReplyDelete
  9. Cocoa Objects is a repository that lists open source, reusable Objective-C code for Mac OS and iOS.

    ReplyDelete
  10. Make sure you double-check the component's license.

    If 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.

    ReplyDelete
  11. 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.

    ReplyDelete
  12. Tapku looks like another nice one.

    ReplyDelete
  13. I 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.

    ReplyDelete
  14. I 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) :)

    I 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 )

    ReplyDelete
  15. I see no mention of JSON parser/generator. What do you think about this one: http://stig.github.com/json-framework/

    Also for regular expression support: RegexKitLite

    ReplyDelete
  16. One of the best share component AddThis

    ReplyDelete
  17. Custom UISwitchView, enables you to add your own colors and label instead of on/off.

    https://github.com/alinux/iPhone-custom-switch-UIView

    ReplyDelete
  18. 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:

    https://github.com/doukasd/iOS-Components

    ReplyDelete
  19. 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.
    Not 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.

    ReplyDelete
  20. 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