rygo6
rygo6

Reputation: 2019

Angular2 + Scala Play2?

I am somewhat new to the domain of web development. I am investigating Play2 and am trying to understand, do you need some kind of JS frontend framework to go with Play2 and Scala?

I notice that Play2 has a template engine, but it seems that it generates the HTML on the server and sends it to the browser. Does this mean that the need for a JS frontend like Angular2 is made irrelevant? Or is there still a reason to use Angular2 in a Play2 application? What instances would it make sense and why?

Upvotes: 9

Views: 1798

Answers (4)

ShatyUT
ShatyUT

Reputation: 1365

As others have pointed out Play2 isn't really the best option for building responsive websites. I have a seed project which can help you get started with Akka Http and Angular 5...already configured to deploy to Heroku in a single web dyno.

https://github.com/jdschmitt/akka-angular-heroku

Check it out. I hope it helps anyone landing here looking for a way to manage back-end and front-end in a single repo for simple projects.

Upvotes: 1

Nico
Nico

Reputation: 391

I have some experience of using Play 2 with AngularJS (currently rewriting frontend to Angular2).
I use Play 2 (scala) only for RESTful JSON backend, which is just great for this purpose and I use Angular for single page application frontend. I find this combination brilliant.

My project is hosted on GitHub, you can check it out here

There are three directories in the root:

  • restful with all backend stuff, written in scala, using Slick for DB, taking advantage of Play evolutions and all other stuff.
  • angularjs-client-deprecated with AngularJS code. I used angular-resource for making calls to backend.
  • client with Angular2 code. There is nothing there so far except for my experiments, however I've written a simple service for authentication with security token.

To summarise, I've been developing my project for almost 2 months so far, mainly to learn both Scala and AngularJS (now Angular2).

If you're planning to use JS framework for frontend, I would recommend you to use Play2 only for RESTFul Json backend. I don't see a reason to use Play2 html template engine in this case.

Upvotes: 4

Luka Jacobowitz
Luka Jacobowitz

Reputation: 23532

Play is more about Server Side templating, which isn't all that useful if you're using Angular. It can be done, but it comes with some overhead. I've worked with Scalatra in the past and it worked really well for me. http://scalatra.org/

Other options include Spray, which is very similar from the outside, but uses Akka internally and uses non-blocking I/O, similar to Play!
http://spray.io/

Upvotes: 3

Biswanath
Biswanath

Reputation: 9185

With angular it is better to go with simple rest/http api like Akka-IO or spray for data and other stuff. Play will be less relevant with Angular.

Upvotes: 1

Related Questions