Developer onboarding

Hello all,

The announcement of the new Jolla phone has drawn my attention and I’m sure it will draw lots of new users to the platform.

I’m a developer and I’m familiar with Qt and QML. I’m looking for some getting started type documentation but lots of the links I’ve found seem dead or very out dated.

Where can I learn more about sailfish SDK and publishing applications?

Thanks,

Dan

10 Likes

Hello and welcome.

You can start by installing the SDK and building the example project. The SDK requires that you have VirtualBox installed or docker. I think that the docker option works better but it does not provide a GUI emulator. If you do not yet have a SFOS device you should go for the VirtualBox option.

2 Likes

That’s great. Thanks for the quick response.

How are apps published?

Welcome. Are you this or the other half on your pic?

Start with the easy thinks: install the SDK on VirtualBox, build one of the example and run this in the emulator. When you have this finished look around on github or so for a solution close to your idea. And buy a well portion of coffee!

For detailed questions you can send me a PN.

Ps.: When your app is ready you chouse “Build RPM for manual deployment”. This includes the validation test for the Jolla store. Then go to harbour.jolla.com and upload your rpms and create a good description. Happy hacking!

4 Likes

welcome on board!

A good start would be the application development documentation. A good walk threw would be your first app. You mentioned that you are familiar with Qt and QML. Please keep in mind that we are still on Qt5.

Regarding about your question of publishing apps, there is a official store managed by Jolla, called harbour.

2 Likes

I’m the one on the left. Apologies if that’s not the answer you were hoping for. :rofl:

Thats excellent thanks. I was missing the information about harbour. Thank you.

1 Like

Great information. Thanks for the quick response.

no! That’s a good point. That means the main information aren’t totally accessible for new users or new developers. But things are moving on :wink:

4 Likes

I’m not a developer, so I may have this wrong, but from my understanding this is due to the restrictive licensing beyond Qt5.

There have been efforts by the community to package Qt6 for Sailfish, and Qt6 is an option now: Packaging Qt6 (6.7.2) for Sailfish OS

1 Like

There are also three other methods of distributing apps. Two are ‘app supported’: https://openrepos.net/ and chum (on a build system supported by Jolla)

The third mechanism is automated builds on github (for instance). I’ve been moving to distributing on all of these and harbour when I can meet the requirements.

3 Likes

5.6. It would be nice if we were further. But, as has been pointed out, the QT6 support that @rinigus and @piggz have done so far get us to a wrold of KDE plasma apps, sadly without silica, but that’s a bunch!

1 Like

Hello all,

I take advantage to this thread to continue about the developer onboarding experience.
So far, I’m not a cpp dev with many years of experience and even less with QTCreator.
But I do with Android Studio with Kotlin and XCode with Swift.

I wonder if you have any tips with the packaged QTCreator for SailfishOS.
At first glimpse, I have some questions :

  • Anyone succeeded to run the env to VSCode (Emulator, Kits..etc) ?
  • The Silica doc is missing event functions, right? (eg: Combobox:onCurrentIndexChanged…)
  • Can downloading QTCreator from qt.io and using Sailfish work?
  • I understood about QT6 license issues, but for us, what does it change to stay in QT5 or what does it bring this new version? I saw the project of porting some apps to QT6.

Thank you !

1 Like

In QML, almost all properties emit a signal on changes that can be handled with a onFooChanged signal handler. No need to document explicitly that is standard behaviour.
Signals are generally documented when they don’t follow the default scheme, or are standalone signals like done/onDone in a Dialog.

That being said, there are definitely cases where Silica docs are incomplete.

2 Likes

Welcome. You will be quick in QTCreator, this is a nice tool. For the start you live with QML only.

The SDK installs an QT Creator tailored for SFOS development. But if you love the command line there is the command sfdk. So you can use every tool to create your programm text. Some documentation is available e.g. here

see answer rom nephros

No. The SDK (the kit) contains much more. If you install in VirtualBox you see 2 VBs, one for the cross compiling features and one for the emulator. QT Creator and much more are installed outside VB.

  • I understood about QT6 license issues, but for us, what does it change to stay in QT5 or what does it bring this new version? I saw the project of porting some apps to QT6.

For today nothing. When QT6 is on your phone, we can talk about.

Happy Hacking

1 Like

It depends on what you’re aiming for.
If you want to make native, silica-based apps you’re going to have to use Qt5.6.

Also, only such apps can be published in Harbour, the official app store.

The upcoming Qt6 (and existing Qt5.15) libraries available from Chum (a community-powered app and library repository) enables you to e.g. develop or port a Kirigami app.
But you will have to publish it in Chum (ideally) and it will not not use Silica and therefore not look or behave like native apps do.

1 Like

You can also use Python or Rust for Sailfish apps.
(or many other languages if it’s an application without a UI.)

1 Like

Big thanks for all your replies ! That’s really useful!
As for now, I will train myself with QT5/Slica.

One last small question : do you suggest a resource for C++ or QML, kind of cheat sheets ?

4 Likes

My recommendation would be to look at other apps.

As the standard Sailfish OS app is business logic in a binary (optional) + UI in QML, all the “how it’s done” is available right under /usr/share/<<application name>>/qml.
Also many parts of Silica are readable as QML files under /usr/lib/qt5/qml/Sailfish/Silica

(Word of warning though: Silica is still proprietary. Looking at those files may put you in trouble, copying non-trivial parts of those doubly so!).

A good path for learning is also trying to fix things you don’t like or miss in existing apps.
Or, adopt an older or broken app that has been unmaintained and bring it up to speed.

2 Likes

And there is a dev group on Telegram: Telegram: Join Group Chat

3 Likes