On 11.08.2014 20:25, jan i wrote:
On 11 August 2014 20:12, Peter Kelly <kelly...@gmail.com> wrote:

On 11 Aug 2014, at 3:42 pm, Andre Fischer <awf....@gmail.com> wrote:

Question: To what extent is the OO UI frontend code separate from the
backend editing, file format handling, and rendering code? I'm thinking in
particular here of mobile - which demands a completely different approach
to user experience design than desktop. Could OO conceivably be adapted to
mobile by replacing its UI?


Conceivably? Probably.  But the problem is in the details.  AOO has put a
lot of effort into separating UI from model and from underlying frameworks.
  For example you can use the UNO API to access a lot of functionality
without bothering with the UI.  You can run AOO headless (without any UI),
and you can run AOO on several different GUI frameworks (Windows, Mac OSX,
Linux with a mixture of X11 and Gnome/KDE).  The problem is that there are
dependencies between UI and model or framework.  Most of them not designed
but "grown" because of convenience or laziness.

So, if you wanted to port AOO to another window system with basically the
same UI as today you would probably port VCL (the UI abstraction layer of
AOO).  That would involve a lot of cursing but it is doable (it has been
done for OSX).  For a mobile device you probably don't want the same UI but
something that can be operated with larger input devices then the typical
mouse pointer (i.e. fingers).  One way to do that would be to write the GUI
from scratch and use the UNO API as a backend.   I am not sure that that is
possible though.  If you drop VCL, you don't have SFX2 with its view shells
(a mix of view and controller) or slots (a mix of remote procedure calls
and value passing).  That means that a) a lot of functionality has to be
rewritten (not necessarily a bad thing when you consider the quality of the
existing implementation) and b) that that might break the UNO API (which
would be bad).

Maybe we need an experiment to see what is possible?


I'll have a look into the code to understand the architecture better and
then hopefully be able to contribute some more informed thoughts about it.

 From what you've described, it sounds like there is a dependence from the
OO codebase to VCL, is that correct? If my initial understanding it is
correct, it sounds like it would be possible to port this to iOS/Android
with sufficient effort, though I think that writing a from-scratch UI would
be needed, as you suggested. That is, largely to address the much smaller
screen real estate and touch controls, and the types of UI layouts that are
common on phones/tablets.

The fact that OO can run in headless mode sounds promising, since the
ability to access much of the functionality without any UI implies that a
totally different UI could be put in place on top of this.

I just wonder if the effort pays off. AOO contains tons of very good ideas
(proven over time) but equally old code. Juergen have multiple times argued
that it might be more efficient, to pick the ideas and write new code with
modern tools, i tend to agree to that.

Please remember AOO is a good mixture of C/C++/Java/Python/Perl (I might
have missed something), whereas a new codebase would be simpler.

We might be able to avoid the big bang, by using AOO in headless mode and
change to new code part by part.

But I agree with andre that an experiment, just  moving a little part would
be a nice proof.

Please don't get me wrong. I did not mean to advocate porting the existing code base to iOS or Android. Only that if one where to try it, then start with an experiment to avoid nasty surprises at a later stage.

If we would want to go towards mobile I would prefer a rewrite. We could certainly salvage one or the other idea but I believe that we should focus more on the mistakes that where made and try to avoid them. Remember, AOO is based on a "design" that was made 15 to 20 years ago. A lot of bug fixes where made and a lot of features added in the meantime. But many limitations (like VCL providing rendering of UI controls, behavior of them, event loop and some other things, or SFX2 with its slots, items and view shells) still exist.

Therefore I would start fresh with a limited feature set but with a better design than before.

-Andre


just my 2ct.
rgds
jan I.



--
Dr. Peter M. Kelly
Founder, UX Productivity
pe...@uxproductivity.com
http://www.uxproductivity.com/
http://www.kellypmk.net/

PGP key: http://www.kellypmk.net/pgp-key
(fingerprint 5435 6718 59F0 DD1F BFA0 5E46 2523 BAA1 44AE 2966)




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
For additional commands, e-mail: dev-h...@openoffice.apache.org

Reply via email to