Design for a client app that need to handle files

Viewed 16

We need to create software that contains 3 components:

  • A server that handles users' data
  • A client service that will write some files to the user file system. (probably need to be native)
  • A UI client for the user to interact with the previous component Currently, the client needs to support only windows and we don't know if we will ever need to support another os.

We thought of 3 designs regarding the client side:

  • Create a native app for windows that contain both the UI and the service.
    advantages:

    • Probably the simplest solution in terms of design
    • For the user, everything is in the same app

    disadvantages

    • It will be hard to create a nice UI in the native app
    • Upgrading the client will force the user to do the upgrade (manually or automatically)
  • Create a native app for windows that contain the service and a small server and the UI will be a web client that will get the HTML from the server.
    advantages:

    • Upgrading to the UI will be very easy. The native app will not update frequently.
    • It will be easier to create the UI

    disadvantages

    • The user will have strange behavior when the app will be open in the browser
    • Because the website will do requests to localhost it can cause security issues (maybe cors?)
  • Create a native app for windows that contain the service and a server. The server of the native app will also serve the UI
    advantages:

    • No security issues because the server and the client both runs on localhost
    • It will be easier to create the UI

    disadvantages

    • The user will have strange behavior when the app will be open in the browser
    • Still upgrading the client will force the user to do it

What is the best design in this case? We thought that if we can get the cors issue the second design will be the best

0 Answers
Related