Personally, I would have a hard time justifying Angular for new work, 
especially if it's a commercial project.  Given recent announcements from the 
devs, you are left with a choice of using the 1.x versions, which will not be 
compatible going forward, or planning around the 2.x release which won't be 
released until next fall.  Neither of those are acceptable for commercial 
projects, which makes Angular dead in the water at the moment.  For personal 
projects, sure, but then you have to consider if that's really where you want 
to invest your time?

I'm not sure exactly why you require some comprehensive framework, so I'll give 
a few options based on different requirements.  First, if you're looking for 
something with 2 way data binding, so you can slap components together and call 
it a day - well, React isn't really designed for that anyway.  There are of 
course many frameworks out there that do that kind of thing, with Ember 
probably being the leader now that Angular has committed project suicide.  I'm 
not really sure how much Clojurescript brings to the table in that case - it's 
going to depend on your project.  If you need complex coordination with 
back-end systems, then core.async brings a lot to the table, but you will be 
doing a lot of interop with a framework like Ember that wants to be in charge 
of everything.

You stated a preference for React, so you probably see the benefit of a 
reactive/functional UI model, so you're probably more interested in native 
integration or look and feel.  For integration, Cordova has you covered in most 
cases with their plugins.  For look and feel, there are lots of libraries out 
there with mobile widgets - jQuery mobile, Kendo, ChocolateChip, Clank to name 
a few.  Just use Clojurescript and React for the bulk of your app and integrate 
widgets from other libraries as needed.  This is no different than say, 
dropping a D3 chart into your app.

What I have found is that often I can just use the HTML/CSS for a widget and 
easily replace their JavaScript with my own React component.  Bootstrap is a 
good example - I never include the bootstrap.js file because most of the 
components I need can be easily replicated, often times as simply as toggling 
various css attributes on various nodes.  Scanning through the source code or 
even just observing the DOM as you interact with the component will usually 
tell you all you need.

For more complex components, just integrate them.  There have been several blog 
posts on integrating things like D3 charts with Om, just google it.  If you 
prefer Reagent (as do I) there are several examples of integrating third party 
components in the reagent-cookbook project (although they use jQuery to select 
the DOM node in all the examples, which I don't like, but they're useful as a 
starting point).  Reagent also makes it pretty easy to integrate regular React 
components now (not sure about how to do this in Om, or if it's even possible). 
 The community of React components is starting to grow, either as native 
replacements or convenient wrappers around existing libraries, and even though 
those don't use Clojurescript, at least they follow the React model and are 
suitable to drop into your app without worrying about an impedance mismatch.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.

Reply via email to