I was just telling a local ios dev there's like five guys using clojure +
objective-c. To me it's impressive. To them, well, I don't know what they'd
think :-).

On Wednesday, June 18, 2014, Mike Fikes <mikefi...@me.com> wrote:

> Right, Gary,
>
> Initially I simply wrote exported functions.
>
> The motivation for experimenting with protocols is so that I can write a
> ClojureScript protocol that mimics, say the iOS UITableViewDataSource
> Objective-C @protocol. Then, with that in place, I can write ClojureScript
> reifications of that protocol to be passed back to Objective-C. It is then
> a simple matter on the Objective-C side to make that reification *be* a
> UITableView's dataSource delegate (with the help of a little reusable
> wrapper Obj-C object around the JSValue.)
>
> In addition to perhaps keeping things tidy (keeping like methods
> together), it makes it easier to pass multiple @protocol instances back to
> iOS. (Imagine the case of two or more table views on one iOS screen, each
> with their own distinct ClojureScriipt implementation.)
>
> Also, a lot of this ends up being boilerplate that needs to only be
> written once, and then, I recoup the costs of fleshing out this plumbing by
> simply spitting out a (reify ... ) form whenever needed.
>
> Arguably, none of this is required because all of the
> UITableViewDataSource methods have the tableView as the first argument,
> which could be used by straightforward exported functions to dispatch or
> otherwise switch to the right implementation, which could in turn be a
> reified protocol. It just seems that, since Objective-C *wants* an object
> as a dataSource, that it would be interesting to try to satisfy that need
> (more or less directly) using the facilities available in ClojureScript.
>
> I'll ditch all of this when Apple introduces FunctionalSwift along with
> functional APIs, and the Clojure(Swift) compiler targets that new language.
> :)
>
> - Mike
>
> On Wednesday, June 18, 2014 2:48:33 PM UTC-4, Gary Trakhman wrote:
>>
>> 'any problem.. fixed.. by another layer of indirection'
>>
>> You could also just make exportable functions that call the protocols,
>> keeping them more as impl-details, core.cljs does this, and you gain things
>> like varargs (hmm, do protocol-varargs work on cljs? nope:
>> http://dev.clojure.org/jira/browse/CLJS-362 )
>>
>  --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> <javascript:_e(%7B%7D,'cvml','clojure@googlegroups.com');>
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> <javascript:_e(%7B%7D,'cvml','clojure%2bunsubscr...@googlegroups.com');>
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com
> <javascript:_e(%7B%7D,'cvml','clojure%2bunsubscr...@googlegroups.com');>.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to