scalaweb-servicesplayframework

Creating web service first than web site or vice versa


I am planning to build an application bundle that includes a mobile app, a web site and an web service for other developers. Web site has the first priority and mobile application has second.

For creating the mobile application ordinarily first I need to create the web service.

What is the way I should follow:

  1. Create web service, than website and mobile application using it.
  2. Create web site, than create service and mobile application.

P.S: I will develop the service and website using Scala and Play! Framework


Solution

  • The optimal order will vary depending on priorities and how stable requirements are.

    Usually during development, the understanding of the problem improves and the requirements change. This can happen particularly for the user interface. The first usability tests can lead to changes in the application's design and behavior.

    A construction order that takes this into account would be:

    1. Create an initial version of the website. Depending on the project this would include a short description of the project, a way to collect emails, and authentication features such as user registration and login.
    2. Create the mobile application, mocking the service layer in the mobile application itself (i.e. using mock service proxy objects). The objective is to discover and stabilize user interface requirements. This process will clarify which services are needed, which operations these services must perform, and exactly which data these operations must receive and provide.
    3. Implement the web service, based on the already stabilized requirements.
    4. Complete the web site, including description of the application's features and benefits, and showing the application's content (e.g. screenshots, videos).

    This order assumes the application's features are the main benefit of the project. If, on the other hand, the main value and complexity resides in the web service, and the application is just a thin, optional front-end over it, then it might be more appropriate to develop the web services first and then the application.