jverkoey / nimbus

The iOS framework that grows only as fast as its documentation
nimbuskit.info
Apache License 2.0
6.44k stars 1.3k forks source link

Integration/Collaboration with RestKit? #23

Closed grgcombs closed 12 years ago

grgcombs commented 13 years ago

I wondered if you've considered the potential for Nimbus integration with RestKit? I know @blakewatters and the folks at TwoToasters have put a great deal of Three20-powered magic into the RestKit project, and I thought that since Nimbus is in the redesign/reimplementation phase, it might behoove both projects to at least explore some options of early integration. From the looks of it, you're both putting a high priority on documentation and testing, too.

So I'm here just planting some seeds. Any thoughts on this?

rogchap commented 13 years ago

RestKit has some nice functionality (mainly Object Mapping & Core Data support) and is definitely worth taking a look at. I personally have not used RestKit in anger so I'll have to take some time to look into it more.

jverkoey commented 13 years ago

I also haven't used RestKit myself, so I don't know what would be involved in a collaboration off hand. That being said, I would love to see partnerships made between Nimbus and other frameworks. The reality is that there are some libraries that are big enough to justify being completely independent projects. When that is the case we should make every effort to ensure that Nimbus plays nice :)

grgcombs commented 13 years ago

Awesome. Browsing through both projects, at times it seems like you're both tackling a lot of the same stuff. Certainly I'm not recommending hard dependencies on one another, but a healthy awareness, given that both projects have promise of many followers that might want to see them co-habitate in an app. ;-)

jverkoey commented 13 years ago

Agreed! Which parts in particular have you noticed are being tackled by both frameworks? I'm assuming the network operations and whatnot of Nimbus? The path I'm trying to make Nimbus follow hopefully will make it really easy to, say, use the Nimbus Photos feature with a RestKit backend for the API.

grgcombs commented 13 years ago

Yes, probably the biggest overlap is the networking and reachability framework. They've just rolled in some advanced logging, but that's mostly vendor-provided, I think.

jverkoey commented 13 years ago

Cool. The Nimbus roadmap doesn't involve too many network-specific features in the immediate future (you can see grab bag tasks here: https://github.com/jverkoey/nimbus/issues?milestone=5&sort=created&direction=desc&state=open).

One thing that might be really cool is some sort of not-attached-directly-to-any-framework website that provided examples of integrating various components together. Nimbus+RestKit tutorials, for example. Could be a whole series, really.

grgcombs commented 13 years ago

Definitely!

blakewatters commented 13 years ago

Hi Jeff -

Great to see that you are back at work in the iOS open source world. I am the lead developer of RestKit. I don't know if you recall, but you and I caught up over Skype about a year ago when you were organizing the Three20 quorum effort. RestKit was a much younger project then and we've seen tremendous growth and maturation in the last 12 months.

RestKit has been shipping with some Three20 integration points for the last several releases. We are currently phasing them out entirely because we've found that they are very painful to maintain and because of the complexity of TTModel and the controller hierarchy, can become a tar pit for new development. In its place we are developing a new table view model abstraction that is powered by the same object mapping engine that drives our network loaders. If you haven't checked out RestKit before, the two second pitch is that rather than loading HTTP resources and getting back blobs of data or parsed XML/JSON in primitive arrays/dictionaries, you get back local objects that are constructed from the payload. These can be simple NSObject classes or persistent Core Data classes -- RestKit will uniquely identify existing objects, etc. There's a full explanation of how all this works on our wiki: https://github.com/RestKit/RestKit/wiki/Object-mapping

So this brings me to a potential point of collaboration. RestKit is not going to become a UI toolkit or a general purpose framework a la Three20/Nimbus. But we are going to ship with this table view model that handles static tables, network loads, and network synchronized access to an NSFetchedResultsController with filtering/searching etc. I know that you have a network table view on your roadmap, so it may be worth considering how to make integration easy. Rather than having the Nimbus feature set grow in an unbounded way on the data side, folks with complex data needs or heavy investment in Core Data could snap in RestKit and get that firepower.

I know in GateGuru we will likely switch to Nimbus in the near term to get the photo viewer, etc and purge our investment in Three20. I expect it will be pretty common to see apps leveraging both RestKit and Nimbus.

solussd commented 13 years ago

I would love to see Nimbus make it easy to 'snap-in' RestKit. As a current Three20 user and, as of a couple weeks ago a RestKit user, a RestKit-supporting Nimbus would be a godsend.