summaryrefslogtreecommitdiff
path: root/content/Informatique/sailfish.rst
blob: d3c46ef75fcd54627e0699b3be2962b2a10dce08 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
.. -*- mode: rst -*-
.. -*-  coding: utf-8 -*-

===================================
Tsumego, pour jouer au go sur jolla
===================================

:date: 2015-12-31
:tags: Libre, Programmation
:summary: |summary|
:logo: /images/sailfish/sailfish.jpg

.. figure:: {filename}/images/sailfish/sailfish.jpg
    :figwidth: 150
    :figclass: floatleft
    :alt: Goban


|summary|

.. |summary| replace::
    J'ai publié cette semaine ma première application pour Sailfish OS. Il
    s'agit du système qui tourne sur les téléphones Jolla. Ce petit jeu permet
    de charger des problèmes de go déjà préparés, pour ensuite les tester et
    rechercher la solution.

La première version a été publiée sur le site openrepos.net_ la semaine
dernière, pour la première version du jeu avec les fonctionnalités que je
souhaitais.

.. _openrepos.net: https://openrepos.net/content/chimrod/tsumego

C'est l'occasion de faire une petite revue du développement pour Sailfish Os.

L'environnement
===============

L'ide
-----

Les développeurs ont eut le bon gout d'utiliser des technologies existantes
pour faire l'environnement de développement. On dispose donc d'un package
comprenant :

- Une IDE — Qt Creator
- Une machine virtuelle pour faire la compilation vers ARM
- Une machine virtuelle pour émuler le téléphone.

Le développement se fait donc en QML, et un binding python est également disponible.

.. figure:: {filename}/images/sailfish/ide.jpg
    :alt: Capture d'écran de l'environnement de travail

    Capture d'écran de l'environnement de travail


Des exemples sont fournis, permettant de lancer quelques applications,
principalement en QML et javascript. La partie C++ est limitée au lancement de
l'application.

Des incohérences sont autorisées par l'éditeur et le compilateur dans
l'agencement des composants — par exemple il est possible de mettre un
composant « page » dans un autre composant « page » ce qui provoque des erreurs
à l'affichage ou dans le comportement. Quand on a pris l'habitude des langages
fortement typés où le compilateur bloque tout programme mal structuré, cela
agace…

La documentation
----------------

La documentation ne couvre que la partie composant graphique de QML. Les
composants propres au système Sailfish OS sont bien décrits et l'aide est
intégrée à Qt Creator sans qu'il soit nécessaire d'aller chercher sur le net.

Par contre, le fonctionnement des binding python (par exemple) n'est pas
couvert, et il est nécessaire de parcourir le code des autres projets pour
comprendre comment utiliser telle fonctionnalité.

La compilation
--------------

À travers quelques clics, il est facile de changer la cible de la compilation :

- Un exécutable à lancer dans l'émulateur
- Un RPM à destination d'une plate-forme ARM
- Un RPM pour une architecture locale

Il n'y a donc aucune difficulté pour tester packager, diffuser une application.

Bilan
-----

Je n'ai eu aucun problème à installer et lancer l'environnement de
développement. Tout fonctionne correctement dès l'installation sans rien avoir
à configurer.

Les technologies utilisées sont plutôt bien choisies (au moins pour quelqu'un
qui a déjà son PC sous linux).

L'émulateur tourne dans une image virtualbox. Il est possible de se connecter à
la machine via ssh, ce qui permet d'accéder au système, il n'y a pas de
limitation d'accès et il est possible d'être root comme sur le téléphone.

Sur mon poste, l'environnement est beaucoup plus lent que le téléphone, il est
parfois nécessaire d'attendre un moment avant de charger une page et qu'une
animation se termine.