Sailfish OS SDK programmeeromgeving en concepten
Een terminologie-spiekbrief voor beginnende Sailfish-programmeurs.
I know it’s rather confusing at the beginning, but once you understand
the differences between Build engine, SB2 Target / Toolchain and
Emulator it should be clearer.
(Reto Zingg, Sailfish mailinglist, 6/8/2013)
Ik weet dat het nogal verwarrend is in het begin, maar eens je de verschillen verstaat tussen Build engine, SB2 Target / Toolchain en Emulator, zou het duidelijker moeten zijn.
Harbour Droogdok voor Sailfish apps; als je een zelfgemaakte app publiek wil maken kan je ze daar “publiceren” naar de Jolla Store. https://harbour.jolla.com/
Sailfish besturingssysteem (met een Linux basis) voor mobiele apparaten dat voorgeïnstalleerd is op Jolla smartphones en tablets.
Sailfish SDK Software Development Kit of ontwikkel/programmeeromgeving voor Sailfish. Is geen volledig eigen ontwikkelomgeving, maar gebruikt als basis Qt Creator.
Silica Sailfish Silica is een QML module; de componenten zijn onderdeel van de eigen gebruikersomgeving van Sailfish (UI – User Interface).
Qt Creator: programmeeromgeving van Qt. Kan gebruikt worden om Qt programma’s te ontwikkelen (voor bv KDE), maar mits plugins ook voor andere doelen, zoals apps voor SailfishOS (het systeem van de Jolla smartphones en tablets).http://www.qt.io/ide/
Virtual Machine: om een app voor Sailfish te proberen zonder dat je ze op een Sailfish toestel (bv Jolla) moet installeren, wordt een Virtueel toestel gebruikt: de computer waarop je werkt emuleert (maakt na in software) een Sailfish toestel. In de documentatie van Sailfish wordt daarvoor Virtualbox gebruikt.
Virtualbox een vrije virtualiseringssoftware (onder GNU-licentie), ontwikkeld door het Duitse Innotek GmbH, die (via Sun) op dit moment in handen is van Oracle. https://www.virtualbox.org/wiki/Downloads
Mer Project om een basissysteem voor mobiele apparaten te maken op basis van Linux + HTML5/QML/JS, met geschiedenis in MeeGo/Tizen/Qt/EFL. Non-profit. http://merproject.org/
Toolchain: In Qt Creator/SailfishOS/Targets (MER-SDK control center) bij New target, krijg je de keuze uit twee toolchains:
– Mer-SB2-armv7hl
– Mer-SB2-i486
Zie ook Target
Emulator : maakt denkbeeldig toestel om programma op uit te proberen; zie Virtualbox
Kits
Een kit is een verzamelnaam voor de instellingen die allerlei onderdelen combineren en doen samenwerken: qmake, de compiler, het doelapparaat (target). Zoals je uit de targets kan verwachten zijn er twee kits: die voor de emulator op je pc, en die voor het eigenlijke toestel. De “Desktop” kit die standaard aanwezig is in de Qt Creator is niet van toepassing voor Sailfish, het heeft geen zin om hem te gebruiken.
Wayland : de grafische schil.
Build engine: zie SB2
Target binary daarmee wordt de gecompileerde app bedoeld (in de .pro bestanden: TARGET=NAME_OF_THEAPP)
sb2: bijgenaamd “scratchbox2”, dient voor “cross-compiling” in de merSDK. Bestaat uit sb2
commando en een aantal hulpbestanden sb2-*
. Wordt aangeroepen door merssh (zichtbaar in de “top” processen bij het starten van qmake vanuit QtCreator).
SB2 Target: een target is een rootfs dat ontwikkelbestanden bevat als headers, libraries en programma’s. De beschikbare doelen van de scratchbox2 build engine zijn op te vragen door:
[mersdk@SailfishSDK ~]$ sb2-config -l
SailfishOS-armv7hl
SailfishOS-i486
De eerste SailfishOS-armv7hl maakt de gecompileerde binaire programma’s voor het echte apparaat, de tweede SailfishOS-i486-x86 voor de emulator (virtuele machine).
Met een parameter geef je aan welke target je wil gebruiken:
[mersdk@SailfishSDK ~]$ sb2 -t SailfishOS-armv7hl ...
Een standaard target kan je instellen met:
sb2-config -d SailfishOS-armv7hl
Bij-installeren (of checken) kan met de zypper tool (bekend van opensuse):
Zoek naar een bepaald pakket “package name”:
[mersdk@SailfishSDK ~]$ sb2 -t SailfishOS-armv7hl -m sdk-install -R zypper search
Installeer het:
[mersdk@SailfishSDK ~]$ sb2 -t SailfishOS-armv7hl -m sdk-install -R zypper install