Not quite a "Chit Chat" topic, but I've found no proper place for an architectural topic, on which I would like to hear views and experiences from other developers.
For various reasons I won't go into details here, I'm going to evaluate the option of moving my app core logic to server side, and making the app as lean as possible, just like a "thin client".
Since on the app side I have to deal with external devices connections, it can't be a fully web app, since I need some code and logic on the phone, to deal with connections management.
Since the app is obviously written in B4X, porting to B4J the server component should be easy.
I see an issue with the fact that, right now, the code works in a "single user/single instance" mode:
The app logic, running on the phone, works for a single user: porting it to server side, must deal with multiple users using it at once.
I see an "easy path" and a "right path":
the "right path" has a deep impact on the code, with a massive rewrite involved.
For various reasons I won't go into details here, I'm going to evaluate the option of moving my app core logic to server side, and making the app as lean as possible, just like a "thin client".
Since on the app side I have to deal with external devices connections, it can't be a fully web app, since I need some code and logic on the phone, to deal with connections management.
Since the app is obviously written in B4X, porting to B4J the server component should be easy.
I see an issue with the fact that, right now, the code works in a "single user/single instance" mode:
The app logic, running on the phone, works for a single user: porting it to server side, must deal with multiple users using it at once.
I see an "easy path" and a "right path":
- "easy path": leave the code as-is (single user/single instance) and let something external deal with: when a user starts the app, a new server instance is created and bound to that app session.
- "right path": rewrite the core code logic to deal with multiple sessions/multiple users at once, so the app will always connect to the same server instance.
the "right path" has a deep impact on the code, with a massive rewrite involved.