jokade / angulate2

Scala.js bindings for Angular

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How Can I Help?

jfspencer opened this issue · comments

I would love to contribute to this project. Let me know I can be the most help.

Great :) You could help with any of:

  • Developer Req's / "real world" test: right now I've only re-created some very basic examples from the Angular2 site, and I'm working on an adoption of the TodoMVC app (which still doesn't even use http or routing). Hence most of the Angular2 features are not available yet. So it would be great if you could start a somewhat complex pet project with angulate2, and post an issue (or a pull request :) whenever you hit the wall due to missing features. Furthermore, it's not always the best option to simply mimic the TypeScript experience of Angular2, when there is a simpler solution due to Scala's own features. I would appreciate any feedback discussion on usability, etc.
  • Implementation: well, take a pick from the Angular2-API... I have rewritten the macro code for annotations, so it should be quite simple to add new/ extend existing annotations. Furthermore, I think angulate2 should also provide façade traits for the Angular2 ES5 API (e.g. ng.core.Component(...).Class(...)).
  • Design/ integration with Angular2 libs: currently, angulate2 uses the all-in-one ES5 libs of Angular2. I'm not sure, if this is the best approach in the long term, especially w.r.t integration with Angular2 libs. I think it would be useful to evaluate the "ES2015 API" (is it feasible to use it with Scala.js? I haven't even checked the differences, maybe it's only the modue loading?)
  • Tests: I had started a very basic test suite for one of the Angular2-alphas, but it is now defunct. angulate2 really should have at least some unit tests to detect changes in the Angular2 API...

Just let me know, if you need any help.

Great thanks. I'll start on the Developer Req's / "real world" test in conjunction with integration of the angular2 libs. One of my primary interests is to get Ionic2(and by necessity angular2) running on scala.js . Since some members of the ionic2 team are also on the angular2 team, I would consider their approach to tooling angular2/Ionic2 a good starting point.

My initial approach will look something like this

  • integrate webpack into sbt for constructing usable input of angular2 components(or any other web component based JS) into the scala.js compiler.
  • migrate my typeapp project to scala.js and angulate2. This app has routing, local and library services, data binding and integration with couchbase lite via its REST API implemented. It could become a kitchen sink example for angulate2
  • identify and implement the angular2 APIs needed to get a kitchen sink app running

That's a good idea - I don't use Ionic myself (yet), so your typeapp port would be a perfect complement to my own pure-Angular2 examples. I'm also looking forward to your sbt webpack solution; it would be awesome if we could customize the angular2 modules to be used (and even include them in the Scala.js dependencies file?), instead of loading the full ES5 lib (which still is not minified correctly)!

Is there a repository trying to port typeapp to angulate2?

No, not that I'm aware of. Are going to?

I'm working on implementing the entire MEAN stack in Scala.js (https://github.com/ldaniels528/MEANS.js). So far I have basic bindings/facades for MongoDB, Express, AngularJS (inspired by your excellent scalajs-angulate) and Node. I'd love to replace my AngularJS bindings with your Angular 1 and Angular 2 bindings, and I'm working on porting one of my applications to MEANS.js (see attached image), which would provide an awesome example of how to implement both Angular and Node.

I'd really like for us to pool our efforts and create something really great!

skilldepth-v0 84-meansjs

@ldaniels528 I've browsed your MEANS stack, which is really quite impressive already! Your angular binding is much cleaner (and more complete?) than scalajs-angulate, so you probably shouldn't replace your implementation, but sure, let's pool our efforts.
Right now I'm mostly working on angulate2 (which still has problems with the static object annotations required by Angular2 and integration with ES6 modules), and I will publish scalajs-angulate 0.3.0 with new features for AngularJS 1.5 (components, component router).

@ldaniels528 Some additional thoughts: I think it would be useful to have a (partially) synchronized release cycle for your stack and other Scala.js bindings (angulate2) to avoid dependency problems (e.g. with the Scala.js version). A common policy for API design or even a shared utilities packages (e.g. for conversions, "enriched" types, etc) could be useful as well. WDYT?

@jokade I would agree. What I'd really like to accomplish is creating a rich ecosystem for Scala.js, where developers have bindings for the vast majority of popular JavaScript libraries; thus, to accomplish this, we have to ensure that the bindings properly interact with one another without headaches and/or compromises. I think the first step toward that is what you're suggesting here.

@jokade BTW, I have published the full-featured example application pictured above: https://github.com/ldaniels528/socialized

@jfspencer I could definitely use your help with MEANS.js (https://github.com/ldaniels528/MEANS.js) if you're interested?

@dejvid I do plan to port the typeapp over, I have needed to shelf that work, but will be starting on it soon. I'll let you know when I have the repo started.

@ldaniels528 I will be able to contribute in a couple weeks. I will ping you when I'm ready.

@dejvid @jfspencer @jokade

Hello,

It's been awhile, so I figured I'd reach out to see if perhaps you're still interested in pooling our efforts to build out a new platform. Currently, ScalaJs.io [https://github.com/scalajs-io] (formerly MEANS.js) is at version 0.3.0.3 (v0.3.0.4 should be out in the next couple of days - lots of bug fixes) and there are about 60 bindings for the most popular npm packages. It's still lacking an Angular 2 binding, but I'm hoping with your help we could remedy that problem.

@ldaniels528 Hmm, not sure I understand your goal; what's currently in the way of using this project with ScalaJs.io?