Hi,
I’ve been experimenting with using Crystal to build native Sailfish OS applications.
It started with a fairly simple question: can I get a Crystal application running on Sailfish OS with an actual Silica/QML UI?
Turns out: yes.
I now have a working setup that cross-compiles Crystal to AArch64 and links the application against the Sailfish SDK target. The first actual app I’m building with it is Reed, a FreshRSS client.
There were a few Sailfish-specific problems to solve along the way, but at this point the application builds and the resulting RPM passes the Harbour validator.
Boehm GC is currently linked statically, as is PCRE2 when required. Sailjail is enabled and Reed uses Sailfish Secrets for its credentials.
My Jolla Phone should hopefully arrive soon, so testing everything on real hardware is the next big step. I first want to validate the approach there and make sure I haven’t built everything around a wrong assumption.
Before I go much further, I wanted to ask whether there’s anything I’m overlooking from a Harbour perspective.
In particular:
- Is there any problem with using a language/runtime like Crystal for a Harbour application?
- Is statically linking dependencies such as Boehm GC and PCRE2 fine, assuming licensing is handled correctly and the RPM passes validation?
- Are there any Harbour requirements or restrictions that aren’t covered by the validator and that I should be aware of before submitting the first app?
If Reed works well and makes it through Harbour, I’d like to separate the tooling from the app and turn it into a reusable Crystal toolchain for Sailfish OS.
It would be great to get some feedback from people with more Harbour experience.