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).