Hi Friedrich,
Am 18.11.2015 15:44, schrieb Friedrich W. H. Kossebau:
Hi,
as mentioned on #marble before, I have started to look into getting
Marble
Maps to run on SailfishOS, natively, so not as Android app (that works,
boring
;) ).
And I can report there is already an early alpha version now starting
on my
Jolla phone :)
Lovely! Where are the pics? :-)
Code once, run everywhere!
Well, sadly also not the case with Marble Maps: current SailfishOS 2.0
is only
at Qt 5.2.1 and then without QtQuick Controls.
So current QML code of Marble Maps does not work on this platform.
Somewhere
it was hinted (GCompris has the same problem here) one could simply
build an
own version of QtQuick Controls and somehow use that. But that smelled
like
lots of work and troubles,
Personally I'd still give it a serious try and only ditch it if it
doesn't work after say four hours of work on it.
so I told myself that proper platform integration
is important anyway, which also means using native QtQuick components
(Silica). And so I forked src/apps/marble-maps into
src/apps/marble-maps-
sailfishos and started to do minimal changes there to quickly reach the
state
where the app starts. Which it does now, both emulator and device. And
no code
changes needed outside of the app itself, libs and plugin build fine
out of
the box (just had to lower minimal cmake version to 2.8.11.2). Yay for
clean
and conservative code here.
Right now I am busy restoring the complete functionality the (normal)
Marble
Maps app has, seeing how native UI would be used for that.
Which brings me to this question:
QUESTION:
What is the roadmap with Marble Maps? Especially, what features are
planned
for the future? And when will releases happen, will they be done in
sync with
normal Marble releases?
There are two major missing features right now that block the first
release:
- navigation mode
- vector tiling maps
For both there is an early implementation in master. Navigation mode
does not need too much work to be finished, mainly proper TTS and user
interface polishing. Vector tiling however is (despite the really
awesome progress we made on it) still lots of work to get into a
reasable state. We collect open tasks at
https://phabricator.kde.org/project/board/38/
Note however that when speaking of a release above I have the Google
Play Store in mind. To me this means reaching a pretty polished state to
meet the expectations of the users there. I'm fine with earlier releases
on e.g. f-droid or less popular ecosystems like sailfishos.
Releases itself will be out of sync with the KDE release cycle. Instead
I'd expect to have their own stable branches. With regard to
translations I'd ship the first version without any, then add them in a
later version when i18n folks are done with them in a KDE stable branch.
Maybe a better process emerges for that also when KDE does more Android
apps in the future.
While the amount of work still needed is quite clear to me the time when
it will be finished (aka first release) largely depends on the amount of
free time we have to actually work on it, and that is rather
unpredictable :-) Then again Google Code-In starts in two weeks and we
will have a bunch of students working on tasks related to Marble Maps.
I would like to keep the SailfishOS-fork of Marble Maps in sync
feature-wise
with the normal Marble Maps (perhaps one day, when QtQuick Controls are
a
thing everywhere, the fork could be even undone). And also sync
releases.
Which means, I hope to get Marble Maps/SFOS releaseable in time for KA
15.12
(3 weeks left :) ).
Sounds good to me. For the two blockers I mentioned above I'd disable
them both for 15.12 on sailfishos. Navigation mode is easy to disable
temporarily, see commit
https://quickgit.kde.org/?p=marble.git&a=commitdiff&h=89c1269 If you do
your own user interface it is even easier of course. Similar for vector
tiling maps, just use the openstreetmap.dgml theme instead. You could
also leave that one in, the bitmap themes are currently used as a
fallback in vectorosm so it does not look totally broken.
Find first RPMs on
https://build.merproject.org/package/show/home:kossebau:sailfishos:devel:apps/marble
and the code in branch sfos in my clone
[email protected]:clones/marble/kossebau/marble.git
Doing the work for now in the clone to have a playground to go wild,
but
should move things over soon to the normal Marble repo patch-by-patch.
Sounds good.
QUESTION:
Currently also on build for Android all data and plugins are installed.
Even
for Moon. Marble Maps going to be used by the Chinese on their lunar
mission?
:)
With Marble Maps only needing support for anything shown with vectorosm
and
mercator display, what is the list of plugins and data which are needed
by
Marble Maps? Would help to cut the size of the package down.
The Android packaging does not include everything that is installed
during the Android build. The script src/apps/marble-maps/create-apk.py
decides what to include. For plugins the following ones are in at the
moment:
55 # Whitelisted plugins, all others are ignored
56 search = ['LatLonPlugin', 'NominatimSearchPlugin',
'LocalDatabasePlugin', 'LocalOsmSearchPlugin']
57 routing = ['CycleStreetsPlugin', 'OSRMPlugin',
'OpenRouteServicePlugin', 'NominatimReverseGeocodingPlugin',
'RoutingPlugin']
58 fileFormats = ['CachePlugin', 'GpxPlugin', 'KmlPlugin', 'OsmPlugin']
59 floatItems = ['ElevationProfileFloatItem', 'ElevationProfileMarker',
'PositionMarker', 'ProgressFloatItem', 'License']
60 positioning = ['QtPositioningPositionProviderPlugin']
We also run make install/strip instead of make install which has a huge
impact on size at least on Android.
And could libastro only link optionally to libmarblewidget? In pure map
mode
stars are not needed, right? (though might change with 2 1/2 D views in
some
future :) )
Isn't it the other way round, libmarblewidget links to libastro?
Currently only SunLocator in libmarblewidget uses astro, all other uses
are in plugins. Technically it's easy to make that optional but it
sounds kind of broken to me if sun shading could go away like that. Also
I'd like to be able to implement things like dynamic building shadows
(based on the position of the sun) in the future without too much
hassle. Since libastro is small, what's the problem with shipping it?
I'd rather keep the stars plugin and similar out but still ship libastro
to avoid more complexity (=potential bugs) inside libmarblewidget.
Regards,
Dennis
_______________________________________________
Marble-devel mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/marble-devel