Sailfish Devember 3.0

Cool! Welcome!
Be sure to check out the sample Sailfish OS app in Python https://github.com/sailfishos/python-sample :slight_smile:

Here is my Devember 3.0 Project: https://github.com/fridlmue/harbour-avarisk :heavy_check_mark:
Made it already to the JollaStore and OpenRepos :slight_smile:
I hope some people find it useful!

I want to mention: After the initial hurdle, it is a charm to develop for Sailfish. In this case I used pyotherside for the XML-Parser.

5 Likes

Has anyone here interest in Common Lisp? I’ve compiled the latest version Embeddable Common Lisp in my Xperia 10 running Sailfish 3.4. (the version available in OpenRepos is now old). Is this the appropriate place to post a binary? or should I upload it to OpenRepos?

I’m a bit too slow for pure functional programming languages, Erlang is more my level. But definitely do package it and put it up (on OpenRepos).
And with this maybe building new versions can become easy enough that there is a steady supply of new versions.

Common Lisp is actually multi-paradigm and has a very sophisticated object system as well :slight_smile: . Thanks for the hint and for the link, I’ll follow those.

My contribution to this devember is a parcel/letter tracking app. So far working for French’s LaPoste parcels, and still in very early development.
Hopefully during the holidays, it can progress further. I’ll publish the code as soon as I have a working version besides the sandboxed tracking numbers.

4 Likes

French SFOS user here @orangecat - happy to test your app if you need testers :slight_smile:

First version on openrepos (EDIT: I remove it, and instead will propose a pull request to Paketti app).

As it’s very early, I haven’t published the code yet (I’ll clean it properly first), and I only integrated the authorization key for the sandbox API of LaPoste (I’ll add the production key when the app is starting to take shape).

With the sandbox API, only some tracking number work (available at laposte dev page). So please test it and give me your advice or opinion, so I could improve the app.

The goal is to have a functional version by the end of the month.

wonderful, i’ll have a look, thanks @orangecat

Well, seems there is already a parcel tracking app called Paketti. Although I learned a lot from my app, I’ll instead propose a pull request to integrate LaPoste/Colissimo/Chronopost to Paketti.

3 Likes

agreed, makes more sense to have a single application. let’s hope that the developer of Paketti is still active and will accept your PR :slight_smile:

1 Like

I’m actually in the middle of developing a Pushover client using the ECL and EQL5 that are currently on OpenRepos! The main thing slowing me down is my total inexperience with both Qt and EQL5. Still I’m almost done with an alpha version.

ECL wouldn’t be useful to me without EQL5 though, since my main interest is apps with a UI.

Here are the repos, comments on improving my Qt en EQL5 usage welcomed:

Hi5 fellow Lithper!

2 Likes

My modifications got merged in Paketti :grinning:
Kudos to the app maintainer who was quite helpful and improved on the code, and a new release is published in openrepos supporting La Poste shipping tracking!

4 Likes

well done @orangecat, i’ll download it and test it :slight_smile:

1 Like

[If you are lazy to read it all the important stuff is written in Strong]

Hi all,

Since we are suggesting programming for Devember (and yes I’m commenting this halfway thru the month) I’d like to ask for more documentation on how to create apps.

There are very few up to date tutorials for creating native apps on SFOS and even less tutorials for creating apps that use an API (and that’s often what we need the most to port our bank, messaging, etc… Android apps to Sailfish) . The official documentation is very short on my opinion, either on SF website or QT’s one.

And in the end, casual developers end up having to follow Russian language tutorials on Youtube like this one (not the best one found but i cant find back the one i tried to follow) :

And I swear, for non-russian speakers, its hard.

So if you developed an app, could you please document it for others to inspire themselves (on your own blog, on medium, wherever) ?

Also if you have links to help program an app using QT and an API I’m keen for it !

Merry Christmas and happy new year :smiley:

2 Likes

see older question on tjs
And there’s a mooc available here

Thank you for your reply !

I indeed saw old posts on the old forum (the mooc is new for me) but I still think that , making tutorials or documentation for an app created has it’s benefits like promoting SFOS and making documentation easy of access (although of course, it may lead to not well written code)

Can you please expand a bit on this? Are you talking about SFOS-specific APIs, Qt APIs or third party ones?

For the latter case (which it sounds like you want to use) it doesn’t really make sense to me. Basically all APIs are different in purpose and structure. Maybe it is a problem with my mental model, where i view making an app at all as one part, and then making it interact with whatever external service as another. This second part being quite unique from case to case.

I do however completely agree that (to use an analogy) teaching people to fish definitely should involve showing actually catching a fish.

However, when it comes to third party APIs, is it not like fishing and rowing a boat? Sure there are some tricks to not get your line tangled in the oars, but generally the activities are better taught separately.

Do let me know if/what i misunderstood.

1 Like

You got it right I’m talking about Third party APIs.

Indeed APIs have different structures. Maybe your mental model is the right one, let me explain the one I have :

  • A SFOS user (fisher) wants to make a native app (fishing) for a service (fish) he is using on an Android or iOS phone
  • The fisher wants to take it easy on its first app so he will stick to using the SDK and coding in QT , with its nice .qml files and Sailfish Silica (just like the template available in the QT IDE)
  • He checks if the service in question has a public API, and it does
  • The fisher now wants to know how to handle XML HTTP requests and parse JSONs
  • He searches information on how past developers have done it or official documentation/walkthrough

This last step is one I’m struggling with. I’ll search for apps with a public code released on Github and from there try to find the logic the developer had.

Even with APIs changing structures from service to service, a global approach on how to make, for example, HTTP requests (which will of course have different variables names and stuff) will help a newbie (me) to develop it’s own app.

Maybe the mental plan I have is not the best approach for a beginner, but I still lack information on how others did it and how I can adapt what they’ve done to my case scenario. That’s the reason why I ask for blog posts, Youtube videos, mailing lists, etc… on how someone created it’s app because on my mental approach, it helps future developers.

As an example the app could be about retrieving information from the town hall’s public API on waste collection by house block.

Thank you all from your time and please correct me if there is wrong information on what I said

Makes perfect sense. And i would be lying if i said i hadn’t struggled there myself.

However, to put it into more concrete terms, i suggest you do the following:

  • Fish from land (make a dummy app just to test out layouting and local APIs)
  • Go boating without trying to fish (use the API from a language you already master, or even by just pointing a web browser to it)

I know this is a bit boring, but it definitely does help only having to worry about one thing at a time.

For me it took several years until i actually got started properly, and it was certainly helpful that just by virtue of my day job i kept building skill and experience with interacting with many different services in many different ways, to the level where that part of the problem became trivial. I also dabbled in trying to make SFOS apps, but it really took some (lack of) really tasty fish, i.e. services not working so well through the Android layer any more to get me properly motivated to overcome the last hurdles.

This part involved many stupid questions on #sailfishos on freenode IRC.

I guess one of the reasons for such tutorials not existing is because the leap is actually really really small, and then you are out on the other end into specifics and details.

For web services available in XML over HTTP, you basically don’t have to worry about any of the details to get it in to your app for the basic use case. Just use XmlListModel, and similarly for JSON, there is the less official, but quite good JSONListModel

Throw either of those in as a model in your SilicaListView and you are off to the races.

2 Likes