SailfishOS in universities: feedback on experiences

Hi all, and hi Jolla,

Our students have a module about project management which professors can propose projects for them to design and develop. This year, I’ve proposed a couple of projects on building two apps for SailfishOS.
The module is nearing finishing in a few weeks, and I’d like to share my experience and feedback, and what can the community and you folks at Jolla, do to help if you’re interested.

So, the module is on project management, the main goal isn’t the dev & code, but rather how to manage a software project, build the team, methodology, etc. but students still have to develop the code and deliver a working product at the end. They do all this during their free time, there is no lab hours allocated for development.
I proposed two projects, one on building a weight tracker app, and a weather app using the French MeteoFrance unofficial API. Luckily, two groups chose these projects.

Advantages and good points:

  • The first reason why I chose SFOS instead of Android or iOS, is specifically because it’s a different platform with a different paradigm. The interaction with the UI is different. The tech stack to build apps is different. Therefore, students have to adapt to the client’s need and specific environment. That’s something I think is quite important for students to acquire, because at work they’ll be faced with various limitations, legacy environments, specific context for each client, etc.
  • The tech used is also different (QT, QML, C++, and Javascript). With the exception of the latter, the other tech is rarely used in most mobile development. There is a risk for students and new developers to associate a certain technology to certain fields, thus risking vendor/technology lock-in. It’s like what’s happening with git, where I see many students and even pro-developers associating git to github.

Limitations and hurdles:

  • As much as I think QT and the Silica API is simpler than Android or iOS, there is a clear lack of accessible documentation. My students still managed to get a first working prototype, but it took longer than I anticipated. There is basically only one app to showcase the Silica components in the SDK, and the documentation online is lacking additional “one-click” example or working projects. As soon as we got beyond simple UI elements or apps, the lack of working examples, tutorials, and documentation is staggering. Now, an experienced developer might connect the dots and manage to build projects with the SFOS APIs, but for students, I think clearer, more accessible documentation is needed, with tutorials, example, etc.
  • Testing SFOS apps on a real phone is quite limited. Only a few phones are available, and all are quite rare to find (I mean, Sony had like a null market share in mobile). So the probability students have a Sony phone is null, and the probability of them unlocking and erasing Android to install a limited OS is even nuller, and as their lecturer I can’t ask them that. Our university has also limited financial capabilities to buy Sony phones, and it’s quite difficult to place a second-hand order (very long and complicated procedures). So unless we get donations for phones or SFOS gets officially expanded to more mainstream phones, the only way we’re testing the student projects now is using my own personal phone. Not ideal for students to develop an app on a platform that they’ll not even interact physically with.

What can be done:

  • On the short term, I think the most important thing is better documentation, tutorials, example, videos, etc. Something like the Python tutorials, or even Ada’s, would be great. Working example for more than the few available now (on SFOS website or github) would also be perfect. That’s something you Jolla can do, with overhauling the documentation website and adding a few tutorials. The community here can also write some tutorials that are accessible to new developers and students (I know it’s harder than it looks).
  • On the longer run, maybe have a donation process of phones if you guys want to throw away one. But also Jolla, maybe provide some education/academic support ? Maybe through course materials, or a student competition where you provide a prize or something like that. Or if you have any other idea ?
    You might not think it’s a priority, but if students don’t get to play with other technologies than those in hype at the moment (JavaScript, swift, java/kotlin), then the whole tech world will be in shortage of open-minded, adaptive and skilled programmers quite soon. I’m starting seeing some students only wanting to find internships or later a job in just a specific field and technology (like just developing web apps in JS). While people are free to work where they want, nothing guarantees JS will be dominant in 10 or 20 years, then what will they do?

To conclude, I’m waiting for the end of the module to assess whether I’ll propose SFOS projects again next year. I have yet to see the final product, and get the proper student feedback. I’ve spent more time and efforts than I predicted, just to help students acquire the tech stack and how the OS work and helping them find documentation. So maybe the community or Jolla can give me a hand in the future if I propose SFOS projects again (in the documentation, tutorials, maybe create some sort of a “starting pack” for students and new developers, or even help co-supervising students).

25 Likes

Hi orangecat,

I really find your experience interesting and agree that investing in universities is a strategic point (that’s literally why Alphabet and Apple have students discounts for their products).

If in the future I can provide an used Sony phone for helping feel free to tell me. (and personally I could use some of that “for students documentation”).

Thanks. Yes, the main limitation is an accessible documentation and tutorials to students (and new developers).

Sailfish was really prominent and highly used by many Computer Science students in Aalto University, which is one of the biggest universities in Finland. Also prominent in University of Tampere (probably one of the smaller reasons why Jolla is located there)

Sailfish could have been very good platform to initialize all kinds of courses since:

  1. It’s based on linux and has very easy access to linux terminal. Not only that, but it’s a mobile platform where you could quite easily talk about all sorts of topics not only limited to networking, but also security.
  2. All apps are based on Javascript, Python and QT/C++. All programming languages that have major parts in University Education. C++ being more dominant in Tampere.
  3. Nokia vibes area really strong in Finland and ex-Nokia employees get quite good press on their new projects.
  4. As an operating system you could run in smartwatches, tablets and phones. Original concepts of TOH were quite heavily community / university student projects.

Unfortunately these avenues were never really tested out properly. It could have started something and put more efforts into making Sailfish Open Source. Jolla was just out of resources (finance / man power).

2 Likes

Thanks for these information. Indeed, one of the main reasons of using SFOS in education is its accessibility as a mobile Linux platform, and being able to go deeper in doing stuff in the OS itself. I am also tempted with pinephone.

Dear OrangeCat,

We have been using SailFish compliant phones for eight years now (Jolla 1, Jolla C, Sony Xperia), because, as mentioned by Sefriol, these are Linux-based smartphones. We are running shell scripts to assess the performance of the cellular network, please refer to https://doi.org/10.1109/PERCOMW.2017.7917580.

Despite the technical merits of SailFish OS, the company has been struggling to keep it alive. Support could definitely be improved, but resources are unfortunately lacking. The community built around Jolla slightly vanished, due to the lack of true bidirectional interactions between the company and the community.

As a result, and also considering the lack of physical devices, we have been considering moving to Ubuntu Touch, hoping Canonical support will be more efficient. It is a bet.

Best regards,
LS

2 Likes

Thanks Laurent for your feedback. I guess you’re mostly using it for research rather then teaching/student projects.

I’ve recently been interested in adapting my research to mobile phones, and a Linux phones seems the most straightforward option (access to terminal, familiar Linux kernel, sysfs & librairies, etc.).

Ubuntu Touch is abandoned also by Canonical a few years ago, it’s purely now community-based. Maybe pinephone and the newer distro might be also a research/teaching option (pureos, manjaro, and the GUI from KDE or Gnome).

1 Like

Dear OrangCat,

Actually, going for Ubuntu Touch is a side effect from considering Volla Phone (https://volla.online/de/index.html). We recently purchased a device, as a potential replacement for our aging Jolla phones (actually, Jolla 1 is no longer supported from this week on).

For our research purposes, we have recovered a similar Linux environment, with CLI possibilities. Embedded security features are somehow preventing us from porting our scripts directly from SailFish OS to Ubuntu Touch, but we are investigating. UBPorts forum has been reactive, though the issues are still open.

Best regards,
LS

1 Like

Thanks for the fascinating insights @orangecat. I used to run a similar course, giving students experience of the full software-dev lifecycle up close. It was exhausting, but also one of the most interesting and fulfilling courses I was involved in and just reading your description brings that back.

As always I’m speaking personally here, but I can appreciate the importance of working examples for students. There’s plenty of breadth to cover with Qt, QML and Silica, so perhaps it’d be helpful to have more detail about what examples would be most useful. There are plenty of open source apps that can be considered as examples, so is what’s needed a tutorial that goes through how the code is built up in stages? Any info you can share on that, maybe after the course is finished, would be useful.

Concerning devices, to what extent can the problem be alleviated using the emulator? Perhaps something like Sailfish x86 could also help with this?

3 Likes

TBH i wasn’t expecting HW to be an issue for Universities. I mean if the average dude can flash SFOS on a supported device quite easily for a uni and IT people that should be like tying your shoes or something.

2 Likes

I think the main problem is finding compatible devices, as most are not easily available now without going through the second-hand market (which is not great for buying loads of devices officially). Not the OP, so I’m not sure whether that’s the main issue

2 Likes

Thanks @flypig.

To give you more details. Most of the info for a new developer/student are out there but scattered across multiple documentation websites (the /develop, the wiki, etc.), and across the new and old forums, the mailing lists, IIRC, issues for specific apps, etc.
For example, how the pages piling works in an app, or how the pulley menu and its compatibility, or how to save data for an app (for ex. using qtlocation), what API are available, graphics and charts, etc.
For a senior developer, this wouldn’t be a big issue given enough time, but for a student or a new developer, they might feel quite lost finding the info.
For my students, I did that job connecting the dots and sharing my experience developing a few apps and the hurdles I got, but if the community+jolla can bring up someone nicely written and accessible that’ll be a great plus.

I think an overhaul of the documentation website from Jolla would be nice.
And in particular, some courses which explaining those small tips&tricks along with the main design & programming things. I quite liked the documentation for Ada: https://learn.adacore.com/ which does a good job introducing the language, but also explaining things and providing examples and also those little things that a new developer might ask.

For instance, a step-by-step tutorial, also explaining the design of the OS, programming, etc., and pointing to the relevant in-depth documentation, might be about building an app involving: multiple pages, the cover page, saving settings & data to an sql database, having multiple design elements (fields, lists, etc.), the app icon, and finally building and generating the RPM for the app.

For the devices, it’s mostly about interacting with the UI. The emulator is more than fine, but students still had troubles understanding the UX of the OS as it’s quite unique and different than Android/iOS. Swiping for the pulley menu or back or for the home screen isn’t the same feel from the emulator or a physical device. They tend to understand the UX/UI much quickly when they have a device in hand.

@ApB, it’s not flashing the device the issue. It’s mostly financial: buying a 300-350€ device isn’t quite straightforward (you need the money, and in a public university where funding is being dried out every year it’s not ideal). And buying second-hand, requires a long process of paperwork because we can’t buy from any shop we want.

2 Likes

I hear you, but when you want something other than a cheap android you cant get away with less money. And yes don’t get me wrong SFOS HW is a big issue for many reasons (ranging from integration to availability and so on).

1 Like

Yes indeed. However, as I don’t control the budget (and even if I did), I have to justify every purchase and convince the people signing about the necessity of buying a new device (just to get its warranty void by unlocking the bootloader).
We don’t have any class about SFOS or even QT, and here it was just a project proposition I gave (student could’ve chosen another project).
Last year I discussed about SFOS with a colleague and he was just saying either justify it better (i.e., for research, or actual need in a course), or just propose Android projects :frowning:

1 Like

SFOS now works reasonably well on PinePhone https://www.pine64.org/ for the things you described. For daily usage it still needs quite a bit of improvement, but for developing, testing and “getting the design idea” it works rather well

5 Likes

https://together.jolla.com/question/205737/cannot-unlock-xa2-bootloader/ outlines how a second-hand device, or even a new one from certain carriers, might be irreversibly locked and not accept the flash process.

Yes yes i know the HW situations is “bad”. But the thing is it can only be solved with money -design and release a fully integrated SFOS phone- and jolla doesn’t have much. And neither MFGs are going to come to SFOS (because ecosystem money etc).

Beyond the devices themselves, a starting pack guide/tutorials would solve the biggest hurdle for me, i.e., being able to dedicate my time to supervise the project management for students rather than fixing bugs and pointing for all sorts of links and technical documentation.

@simonschmeisser, yes that’s something I’m exploring. Not just for SFOS, but for having a mainline Linux distro which could also be handy for our Linux courses and in research.

Have you considered single board computers? We use Raspberry Pis for teaching.

1 Like

Yes, we have plenty of those in teaching and research. But it’s a different use case than a classical mobile phone (not same sensors, UI/UX, etc.)