2020-07-01 07:43:11 -05:00
|
|
|
Generation 2 of the iOS app:
|
|
|
|
|
|
|
|
Goal:
|
|
|
|
|
|
|
|
- Simplified plumbing and largely reduced risk of things going
|
|
|
|
horribly wrong.
|
|
|
|
|
|
|
|
Ideas:
|
|
|
|
|
|
|
|
- No more FakeSockets.
|
|
|
|
|
|
|
|
- No more large number of threads emulating the processes and threads
|
|
|
|
in web-based Online.
|
|
|
|
|
|
|
|
- Still based on WebView, though, and the same Online JavaScript still
|
|
|
|
used.
|
|
|
|
|
|
|
|
- The completely unrelated "FakeWebSocket" thing in our JavaScript is
|
|
|
|
not going away.
|
|
|
|
|
|
|
|
- Just handle incoming messages from JavaScript and callbacks from LO
|
|
|
|
core as received. Either directly or by scheduling a block to be
|
|
|
|
executed. Do not pretend that there is a bunch of processes that
|
|
|
|
need to use sockets for IPC as in web-based Online. Do not pass
|
|
|
|
messages between threads using FakeSockets.
|
|
|
|
|
|
|
|
- Reduce and simplify the use of the Online C++ code.
|
|
|
|
|
|
|
|
Steps:
|
|
|
|
|
2020-07-02 07:39:12 -05:00
|
|
|
- Re-factorings that don't affect any working of current Online or
|
|
|
|
apps, but which will make the iOS app re-plumbing easier.
|
2020-07-01 07:43:11 -05:00
|
|
|
|
|
|
|
- ...
|
|
|
|
|
|
|
|
Problems:
|
|
|
|
|
|
|
|
Clearly this change can't be done in one step, and is not necessarily
|
|
|
|
of high priority, but has to be done over a period of several months.
|
|
|
|
How to make sure other changes done to Online at the same time don't
|
|
|
|
interfere? If kept in a branch, changes from the master branch must be
|
|
|
|
merged in on an almost daily basis.
|
|
|
|
|
|
|
|
When some of the functionality in Online C++ can/should be re-used
|
|
|
|
after all (probably things like the basic handling of messages, where
|
|
|
|
one might guess that large chunks of code is re-usable), separate out
|
|
|
|
such functionality into a class of its own in the master branch first,
|
|
|
|
and use that then in the gen2 branch.
|
|
|
|
|
|
|
|
What about the Android app? There hardy is interest to make similar
|
|
|
|
changes to it, if it works fine already, and there is no need to make
|
|
|
|
it handle multiple open documents in the same app process. Need to
|
|
|
|
keep the FakeSocket code for it, etc.
|