Pure maps navigation port



  • Hello, I was in contact with the developer of pure maps to see if he would be interested in porting to ubuntu touch, but he had a few questions..

    From the developer:
    ""good question. I don't mind getting it running on UBPorts, I just lack info regarding it. As far as I heard, its also based on QML/Qt, but with UBPorts specific API.

    In particular, I don't know whether UBPorts API based on QtControls2? If it is, it should be trivial to get it running. What about Kirigami? Currently, Pure Maps and OSM Scout Server support Silica, QtControls2, and Kirigami.

    If you use some specific API, we would have to make new platform specific code. In practice, its not difficult, just would take some time. So, if you have someone who knows how to program under UBPort, I'll be able to help that person out and together it should be rather quick.

    There are few other things that need to be ported, but I would expect it will be trivial as it is Linux.

    Where could we get in touch that way that we can attract UBPorts developers? Looks like your mailing lists are pretty much dead."

    Can anyone help with this?

    Thanks



  • The UT api is viewable at:
    https://api-docs.ubports.com/sdk/apps/qml/index.html

    hopefully that can answer the questions.



  • It seems pure-maps requires Qt 5.11, while we only have 5.9 still.



  • Hi!

    Thank you for the interest!

    Pure Maps works on Qt 5.6 as well (Sailfish) with the current lowest required API as specified in https://github.com/rinigus/pure-maps/blob/master/qml/README.md.

    Pure Maps and OSM Scout Server (latter is offline maps provider required for offline maps) follow the same basic principle: most of the code is cross-platform and written in QML that is understood by all platforms where its ported to. Platform specific implementation is described by a number of QML items (example at https://github.com/rinigus/pure-maps/tree/master/qml/platform.qtcontrols). For porting to UBPorts, we would need to create qml/platform.ubports and fill it with the the similar items that should provide native look and feel.

    Pure Maps and OSM Scout Server are available for testing on regular Linux PC via flatpaks: https://flathub.org/apps/details/io.github.rinigus.PureMaps and https://flathub.org/apps/details/io.github.rinigus.OSMScoutServer
    Latter is needed for offline maps, but you could start testing with Pure Maps only and just keep online profile.

    Coming back to porting: the most efficient way would be to get someone interested in writing UBPorts platform code. I'll be happy to assist and help as much as I could and as fast as possible.



  • @rinigus said in Pure maps navigation port:

    For porting to UBPorts, we would need to create qml/platform.ubports and fill it with the the similar items that should provide native look and feel.

    This is not entirely necessary. It is possible to have native look/feel without using ubuntu-ui-toolkit in your app.

    QtQuick.Controls 2 apps will work fine (assuming they do not require a newer version of Qt, though it seems your "platform" implementation of this requires 5.11.
    Kirigami is also usable (Kaidan is for example in the Open Store already), but with the same caveat of the Qt 5.9 requirement needing to be met.
    It is also possible to not use Qt/QML at all (SDL 2 for example, or an HTML app).
    And yet again, it's also possible to ship additional needed QML modules within the package of your app, though a newer Qt itself is not feasible through this method.

    So if any of the existing "platforms" can work on Qt 5.9, the quickest way would probably be to create a clickable.json file for the project, and get clickable set up to build a click package of the existing app. It is also better for cross-platform apps to look as similar as possible across platforms, than it is for them to look as native as possible on all platforms. 🙂



  • @dobey thanks! OK, that's way easier then. Kirigami would be better, since it has few features that make it more convenient to use on mobile, when compared to my QtControls implementation.

    So, I will have to adopt the code to Qt 5.9, if any changes are needed at all. After that I'll ping over here and maybe someone can help with click packaging.

    Pure Maps uses QMapboxGL Native library, the separate QML plugin - both would probably need to be packaged. I don't know whether you have pyotherside and Nemo DBus QML plugins available already. In addition, it uses Mimic or Flite for voice prompts.

    How is the application expected to keep display on in UBPorts? That will probably need to be adopted as well





  • Last Qt 5.11 requirement is imposed by the IconImage - one internal class that I use. Its used due to the ability to load icons by name and with the use of fallback path list.

    So, to finish porting to lower Qt version, I will need to know where do the icons go in UBPorts on installation. Then I can just prescribe full part to the icons and we will be ready to go for finalizing it.

    In addition, what is the mechanism that is used to run QML-only applications in UBPorts (if I don't have C++ main())? On Sailfish, we use special runner. I made something similar for Linux desktop (https://github.com/rinigus/qmlrunner). Does anything like that exists on UBPorts?



  • At the moment all qml only aps I've looked at use qmlscene to launch

    Exec=qmlscene main.qml
    

    That has distinct limitations if I understand the qt documentation, but I don't fully grok them myself.



  • @rinigus clickable creates a folder for your app in which there is an other folder named 'assets': this is the place where to store the icon.



  • I use PureMaps on my Xperia X with SFOS X. Its an excellent app. It would be amazing having pure maps on UT.



  • OK, we can replace qmlscene with my qmlrunner for a bit more functionality. I can also adapt qmlrunner for our needs if it helps.

    From quick scan of the docs, UBPorts have their own icons, units, and other style elements. So, it would make sense to create separate ubports style which is mainly copy of kirigami, but then use few elements from ubports API. Rather minimal work.

    From earlier description of click packaging, it sounds a bit similar to flatpak. As it creates its own folder, icons will be located in some fixed location. That would make loading them trivial. As mentioned above, I presume that I can also add my own QML modules (in my case, Mapbox GL QML plugin https://github.com/rinigus/mapbox-gl-qml), latest Kirigami (Pure Maps has few features in convergent design that depend on it), Nemo DBus.

    Now I would like to get someone who would like to package Pure Maps and test it. I can make all adaptations on Pure Maps side, add UBPorts "platform" and help with making it work. But I don't have a device with UBPorts on it nor expertise in click format. Feel free to send me direct email (as listed in AUTHORS.md of Pure Maps) if you want to help.

    I would expect that it will take us few days to make it work (time assuming that we have 1-2 hours per day and taking into account that delays will be induced by differences in time zones and free time allocations). So, nothing major is expected.



  • @rinigus said in Pure maps navigation port:

    Now I would like to get someone who would like to package Pure Maps and test it. I can make all adaptations on Pure Maps side, add UBPorts "platform" and help with making it work. But I don't have a device with UBPorts on it nor expertise in click format. Feel free to send me direct email (as listed in AUTHORS.md of Pure Maps) if you want to help.

    Good afternoon, thank you very much for the interest you are taking in that this goes forward, I have tested it on sailfish and I love it is great I do not know anything about programming but if you want someone to test it when you pack it in click format counts with me. is it going to veal the same operation as in sailfish?



  • @ricardo65 I would expect it to have the same functionality. We will need to package OSM Scout Server for offline operation, though. So, first the target is to get it working with online providers



  • @rinigus A query, in the open store we have an osmscout packaged in click format although it has been a long time without updating I do not know if you could use something



  • @ricardo6)How can I send a photo here?



  • The server is having libosmscout only as one of the possible backends and its not even maintained by me anymore. So, the name "OSM Scout Server" is mainly left for historical reasons. But in terms of porting, Pure Maps and OSM Scout Server are very similar and should be trivial.



  • @rinigus What we have can help count on me, although I do not know anything about packaging or mobile apps



  • @ricardo65 Packaging is exactly what's needed now 🙂



  • @rinigus Hi sir, first I would like to thank you for your goodwill and hard work. I recommend you to join the OpenStore Telegram channel: https://t.me/joinchat/Bd_29FDzIzwFwrZE539ZVg

    https://open-store.io/

    And also the Ubports Matrix channel for developers: #ub_bootcamp:matrix.org

    Of course you are more than welcome to join the Ubports Official channel: https://t.me/ubports

    There are many people willing to help you.
    Best of luck.
    🙂


Log in to reply