The developer documentation can be improved for new developers

It [the Apps page] implies that al you that you need is the installer., when in fact you need MSSY2 and VM software. The link to the Installation page isn’t obvious enough.

[Edited because Title et al didn’t adequately describe the problem. Feel free to move the thread.]

Glad to see new people onboarding onto the SDK :slight_smile:

Are you referring to this documentation? Installation | Sailfish OS Documentation

Can you tell where git is required?

1 Like

The SDK Windows installer asks the user to install either GIT or the much more recommended MSYS2 (whose obscure name I forgot). This is completely baffling to the still-figuring-out-Linux Windows user.
I think I had to do something with MSYS2, but it was easy enough.

After all that, the installer then asks for Virtualbox/Docker. I only vaguely know what Docker is. Ideally, the installer should explain that this is needed before making you install MSYS2.

But the main problem here is the Apps page implies the detailed installation instructions aren’t needed.

[Edited as wrong problem outlined]


the start is always hard and frustrating.
On linux i was not force you to install git or something else, at least one year ago.

In the meanwhile you know that you need a build environment and you might want to have a phone simulator running on your windows machine. i think it is not much different with android.
when i did try xamarin you also had to install the target system something for each os.

i guess you are done with installation in the meanwhile.
what did you choose ?

on windows i guess if you want to go with docker you will need to install something like docker desktop or install a linux distro into wsl and docker into that
never tried that on windows, but could imagine that in that case you might be easier off with the vm option ?

i think platform dev is wrong category, if your plan is to do app development and are now installing the sdk, but have no rights to change that

Docker seems like it’s for cross-platform mostly Linux development.
It doesn’t seem to run natively on Windows but presumably boots some custom Linux in HyperV.

Virtualbox seems like it would be much simpler, much more automated to use.

OK, the page that keeps coming up isn’t that one. It’s this one:

… which leads to this one:

One of many things the latter says is “[Download the latest SDK] installers and install it. Read more about [SDK Installation].”

This makes it sound easy and most people will skip anything that says “Read more about X”.

It should say something a lot more more meaningful like:

“The SDK runs in its own virtual machine on Linux, Windows and OS X. Read our installation guide [here].”

You can click the github button on the page and create a pull request to change the documentation. The thoughts of people with a fresh gaze are always welcome i think :slight_smile:


Done. I’m no developer but I am a writer. Maybe this is where I can help.

My aim is still to see if I can do some productive coding through ChatGPT (or Bing). Once I’ve done that, maybe I can teach others to do it.

1 Like

thats what i thought.
so you need to install docker desktop to have docker available on windows
on if your windows does support windows subsystem for linux you could install that (wsl) then a linux distro of your choice, then docker into that.

that does work nicely.
but i have never tried then to install sdk and see if that all can communicate with each other.
so yes vm, should be the easiest way.

Fortunately that’s not how it goes :slight_smile: The most important nonfunctional feature of the SDK is that it does not lock the user into a virtual machine in order to enable cross platform development. Just parts of the SDK run in a VM and those parts are not those parts a regular user usually interacts with. From SDK user’s point of view Sailfish SDK is a fully native development environment.

So no installation of Docker and SDK inside or even installation of WSL, then Linux distro inside, then Docker inside the distro and SDK inside. Just Docker/VirtualBox installation (among other prerequisites) and then Sailfish SDK installation as any other Windows application.

Do you have any plans of providing a Linux aarch64 build of the SDK? I would really love to be able to use my Raspberry Pi 400 (that consumes some 5-6 Watts) for Sailfish OS development.

1 Like

While I have little hope that this will become a reality, I also would like to make my DeskPi Super6C a compile farm for this :slight_smile:
Likely though, there will have to be a chroot environment with the native tools installed.

For me, the documentation generally give little or nothing in the way of example/s.

Perhaps we should have a thread where we can submit new, simple examples that give basics for beginners and for them to be included in the docs we can view within SDK.

For me, ConfigurationGroup is one module that gives absolutely NO VISUAL CLUE how to write/implement code, yet everything we need to know is written on that page, but no example given.

Fortunately, when I used to be able to access, I asked about ConfigGroup and was furnished with a really simple example, which is now emblazoned on my brain. I forget the name of the user who gave the code, something like “Velo”.

Regardless, I will plop the code here anyway, I call it Color Recall. A simple example that saves the color chosen by the user. When the app is opened next time, that last color is there in rectangle form.

import QtQuick 2.2
import Sailfish.Silica 1.0
import Nemo.Configuration 1.0

Page {

    allowedOrientations: Orientation.All

    Rectangle {
        id: rect
        color: "#00000000"
        width: 500
        height: width
        anchors.centerIn: parent

        ConfigurationGroup {
            id: settings
            path: "/apps/harbour-color-recall"
        Component.onDestruction: {
            settings.setValue("rectColor", rect.color)
        Component.onCompleted: {
            rect.color = settings.value("rectColor", "#000000"); 
        MouseArea {
            anchors.fill: parent
            onClicked: {
                rect.color = Qt.rgba(Math.random(), 0.4, 0.6, 0.8); 
1 Like