[SailfishDevel] Porting Harmattan to Salfish Silica: Conundrum of the "missing" components
christopher.lamb at thurweb.ch
christopher.lamb at thurweb.ch
Sat May 11 07:16:22 UTC 2013
Hi All
I am in the middle of porting a set of apps from Harmattan to Sailfish
Silica using an abstraction component set / library as detailed at the
bottom of this mail.
My apps make rich use of Harmattan components, for which I need to
find Sailfish Silica equivalents.
I have quickly discovered that there are 3 cases:
a) components that have a direct equivalent: often with the same name.
(e.g Button)
b) components that have an indirect equivalent: looking and behaving
slightly different due to the differing UI paradigms (e.g menu
components)
c) components that are present in Harmattan, but are currently
"missing" in Sailfish Silica. Some examples are:
ToolBarLayout
MenuLayout
ButtonColumn
ButtonRow
ButtonStyle
So far it seems to be components that support layout and style.
This raises a number of questions:
1) Is the current set of Sailfish Silica components pretty much "it";
or is it just an alpha subset that is likely to grow further, perhaps
including some of the above?
2) If these components were deliberately not ported to Sailfish Silica
what was the reasoning for not doing so?
3) If these components are not going to appear, what approach should
an app porter take? I see some options:
i) lowest common denominator: change the app to use only common
subset of both component sets.
ii) where Sailfish is missing a component that I cannot do without, I
continue to wrap the Harmattan component in my abstraction library.
--> continued dependency on com.nokia.meego
iii) where Sailfish is missing a component that I cannot do without, I
add clones of the com.nokia.meego components to my abstraction library.
iv) I program my own custom equivalents.
The problem can only get worse when other qml platforms are added to
the soup (Cascades, Ubuntu, iOS, Android) as pointed out in this
article:
https://lwn.net/Articles/532801/
I welcome your thoughts
Chris
Porting methodology:
I first set up an abstraction components set / library to abstract
out the imports of Harmattan components from my apps. i.e my apps now
import org.flyingheep.abstractui rather than com.nokia.meego
(following the approach suggested here
http://thpmaemo.blogspot.ch/2013/03/porting-harmattan-apps-to-sailfish.html)
The abstract library will have 2 favours,:
a) Harmattan one that wraps com.nokia.meego components, and thus
depends on these
b) SailfishOS that currently temporarily wraps com.nokia.meego, but is
now being migrated to wrap Sailfish.Silica components instead.
More information about the Devel
mailing list