We have moved to a new Sailfish OS Forum. Please start new discussions there.

Looking for Sailfish/Nemo/Mer system documentation (I am lost)

asked 2013-12-30 19:23:36 +0200

epsilonijk gravatar image

updated 2013-12-30 19:31:28 +0200

I would like to get started with some Sailfish development. I installed the latest SDK and I am very familiar with Qt Creator and the Qt library. Didn't use much Qt Quick 2 yet though.

I managed running the wizard's default Sailfish QML app on the emulator and on the device.

So, after installing the SDK, I found some Sailfish Silica reference documentation which is a nice start for the UI.

What I am desperately missing is documentation on the system environment: What are the libraries / services available and where is their documentation. I am in particular looking for the alarm/timer infrastructure, audio, location, camera, ...

As a first tutorial project, I want to recreate the clock app with some extensions (like showing how much time has passed since a countdown has elapsed which I am missing a lot in the stock app).

edit retag flag offensive close delete



This question is now about a year old. Yet, the documentation is pretty basic. For me as a Java and Python developer I don't really know where to start. Say I want to adapt the way the mail application handles ICS attachments. I don't find the code of the mail app. Nor do I know if I can use a service from the OS to access downloaded ics files.

It seems you have to be a crack on the whole linux userland stack.

sm-jolla ( 2015-03-05 13:16:24 +0200 )edit

Yes, even with the latest SDK releases, there is basically no documentation apart from a little UI stuff and references to general Qt documentation.

What we really need is a consolidated platform documentation. I tried getting started with a minimalistic kind of "hello world" project: To recreate the clock application with extended features for the countdowns (they should not stop at zero, instead indicate how long the time past zero has elapsed). I am a seasoned Qt developer but I abandoned the easy project because it's just awfully time consuming to research all the API details of the platform.

It's really super-frustrating!

epsilonijk ( 2015-03-05 13:51:32 +0200 )edit

Unfortunately I don't see a way to push this questions more upward:(

sm-jolla ( 2015-03-05 13:58:15 +0200 )edit

This problem is a key problem for the whole platform to succeed on the third-party app front. I guess, you understand that.

epsilonijk ( 2015-03-05 14:00:00 +0200 )edit

Yes I do. I want to emphasize that I want to learn about the stack but if you as a seasoned programmer also feel that basic parts are missing what should people say that come from other environments. Currently I have to go through code to understand how stuff works. That would be fine. But I have not even found a central page where all jolla phone stuff is available...

I mean in Java there is this thing called javadoc. And AFAIK something like this made it to C++ and so forth a long time ago. But I don't see a link or the like in the sailfish.org page. I mean for the beginning it would be nice if the sailfish getting started guide would link to the open source applications of Sailfish. I just guessed some of them are on github. These applications should have a documentation or at least a readme that describes the public API (e.g. dbus signals). A wiki is not a good place to document APIs.

For example, I looked at this project here https://github.com/nemomobile/nemo-qml-plugin-email thing. Is this the mail application of Sailfish or just some Nemo stuff that is not really related? The readme gives me a link to coverage which is nice but does not help me much.

Okay, have to look for the child now:)

sm-jolla ( 2015-03-05 14:24:37 +0200 )edit

3 Answers

Sort by » oldest newest most voted

answered 2013-12-30 20:00:18 +0200

Kontio gravatar image

updated 2015-07-12 20:50:29 +0200

Yeah the good old documentation, nobody wants to write it, every body needs it...

Short answer: what you are looking for does not exist at the moment

Long answer: I know the short answer does not help you... so I try to give here some pointers which might help you further. Just as reference a good starting point is: https://sailfishos.org/develop/ which you already found your self.

Regarding available libraries. There are libraries which you can install additionally from the repositories, but not all of these libraries are allowed to be used in applications submitted to harbour. See: https://harbour.jolla.com/faq the list of allowed libraries (resp. the defined API) is work in progress and is very limited at the moment. But for your own use you can experiment with other available libraries.

The SDK control center provides options to extend the default SailfishOS target (to install libraries). In the IDE:

  1. Click on the SailfishOS icon in the left toolbar to open the SDK control center.
  2. Click on the manage button next to the SailfishOS-i486 target.
  3. A form to search for packages is loaded.
  4. Search for e.g. devel, lib or qml it will give you a list of available packages which can be used

Many qml modules are available from Nemo, have a look at https://github.com/nemomobile/ and search for nemo-qml- repositories.

For your particular problem I think the following might help:

Other places to get in contact with Sailfish OS developers and ask about details:
Sailfish devel mailing list: https://lists.sailfishos.org/cgi-bin/mailman/listinfo/devel
IRC: @Freenode the following channels: #sailfishos, #nemomobile, #mer

Other resources:

EDIT added some more links to other resources for reference
Update: 12. July 2015update link to developer area of SailfishOS.org

edit flag offensive delete publish link more


Is this project here the Sailfish Mail Client or is it jsut for Nemo (whatever that exactly means):


sm-jolla ( 2015-03-05 18:49:21 +0200 )edit

A QML plugin provides some infrastructure to QML, so by itself it cannot be the whole mail client, I think. It seems to provide access to email infrastructure from within QML and as such could be used to implement a QML email client.

epsilonijk ( 2015-03-05 19:00:26 +0200 )edit

Thank you, this sounds reasonable. I have to dig into the code a little bit to understand. I want to know if the mail client fires some events on dbus or if it is possible to trigger functions from outside. There must be a way to handle ics attachments without building a new client. I do not even see a point uf sailfish is open source the client must be somewhere...

I am still confused about mer vs nemo vs sailfish.

sm-jolla ( 2015-03-05 21:54:27 +0200 )edit

Following link in the answer https://sailfishos.org/develop.html seems to be moved to https://sailfishos.org/develop/

Quawerty ( 2015-07-12 15:05:57 +0200 )edit

answered 2020-02-05 13:42:42 +0200

olf gravatar image

updated 2020-02-08 15:33:42 +0200

Best starting point and aggregation of information is now at https://sailfishos.org/wiki/

But note that all the other sources of information, which @Kontio linked to, are still valid, valuable and relevant.

Additional SailfishOS source code related links:

A lot of background information is a available at the Mer-Wiki, e.g. "SailfishOSS".

edit flag offensive delete publish link more

answered 2013-12-30 20:01:12 +0200

Mariusmssj gravatar image

updated 2013-12-30 20:02:26 +0200

I'm on the same boat, the documentation might be there but it's not well displayed. For camera others you can use QtMobility Qtmobility which does seems to work, not sure if all of it works.

I got accelerometer to work with this code: Qt-5.1 qtsensors

Also if you want to mix QML and Qt functions you can use this example code

I guess the documentation and example code will get better with time but for now your sort of on your own. Also if you want help with themes and layouts this is useful

Good luck :)

edit flag offensive delete publish link more


thanks so much,have a good day for you

iamyinweijian ( 2015-07-17 09:51:19 +0200 )edit
Login/Signup to Answer

Question tools



Asked: 2013-12-30 19:23:36 +0200

Seen: 2,285 times

Last updated: Feb 08 '20