Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Argonaut #101

Closed
aschuch opened this issue Apr 3, 2015 · 6 comments
Closed

Argonaut #101

aschuch opened this issue Apr 3, 2015 · 6 comments

Comments

@aschuch
Copy link

aschuch commented Apr 3, 2015

I have just released Argonaut, a framework that aims to accompany Argo with two main goals in mind:

  1. Add helpers to make it more convenient to parse JSON into JSONDecodeable models, also support parsing models directly from ReactiveCocoa signals.
  2. A collection of extensions for common objets (e.g. NSURL, etc.) to be directly used with Argo/Runes.

I am not sure if this should be part of Argo itself, mainly because it is partly dependent on ReactiveCocoa, but I thought I put it out there just in case someone else might find it useful.

What do you think? Looking forward to get your feedback. ✨

@gfontenot
Copy link
Collaborator

Looks rad!

  • Your mapJSON function looks super similar to our global decode functions that are currently on master and will be shipped with 1.0.
  • I'm a huge fan of the idea of RAC extensions for Argo. I don't think we'd want to include them in Argo proper, but I'd be really interested in a library that just did that
  • Default extensions for common types like NSURL are something we've talked about a lot internally. I think we decided against including them in Argo itself, because there are plenty of cases where you'd want to customize that decoding, and we didn't want to add a roadblock to users wanting to do that. But I think shipping those extensions with an external lib is a fantastic idea (and I'd probably use it)

Have you thought about breaking the NSURL/CLLocation stuff out away from the RAC extensions? I'm a huge fan of small micro-frameworks.

I'd love to see more of these kinds of libraries. If they start to show up, We should look at creating some sort of centralized list of helper libs.

@aschuch
Copy link
Author

aschuch commented Apr 3, 2015

Gordon, thanks for your quick feedback.

  • Oh, I haven't been aware that decode already made it to master, once 1.0 is out, my mapJSON functions are probably not needed any more.
  • I am also a huge fan of small micro-frameworks! I updated the repo, kept the RAC extensions in Argonaut and created a new micro-framework for common types called GoldenFleece (that's what the Argonauts were looking for after all ⛵️).

My biggest issue for providing a framework for common types is that its basically "all or nothing" and I don't think there is a way to work around that limitation (i.e. override the extension?). I think it should be possible with CocoaPods subspecs, but I am not aware of a way to currently achieve something similar with Carthage.

I know GoldenFleece is just a small start, but I'd love to see some active contributions for other types as well. ⚡️

@gfontenot
Copy link
Collaborator

Solid naming.

I am not aware of a way to currently achieve something similar with Carthage.

You could have multiple frameworks in your Xcode project, one for each type, and then an umbrella framework that brings in all of them. That might be a cool experiment.

I know GoldenFleece is just a small start, but I'd love to see some active contributions for other types as well.

+1

@tonyd256
Copy link
Contributor

tonyd256 commented Apr 3, 2015

Love that name!

@aschuch
Copy link
Author

aschuch commented Apr 4, 2015

You could have multiple frameworks in your Xcode project, one for each type, and then an umbrella framework that brings in all of them. That might be a cool experiment.

Yes, I think that's the way to go. 👍

@tonyd256
Copy link
Contributor

Going to close this for now. Feel free to reopen or open a new issue if you have more questions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants