Naissance aujourd'hui de Tikka, un nouveau client!

@vit est heureux de vous annoncer la naissance d’un nouveau client pour Duniter !

Il est né à 15h11, et pèse 116Ko. :wink:

Pour l’instant, il est trop timide pour se montrer nu, mais voici la première photo de lui :

Son nom lui vient d’une sauce indienne au yaourt et aux épices. Et aussi de Tk.

Souhaitons lui de grandir vite grâce à Python, Tkinter, DuniterPy et GVA, et l’amour de son papa…

23 J'aimes

Ah ah ! Super ! Hâte d’en voir un peu plus, merci pour ce travail et bon courage pour ton futur développement. :slight_smile:

Amicalement.

2 J'aimes

2 messages ont été fusionnés à un sujet existant : Fin du développement de Sakia

Super !

J’avais testé une interface simple de paiement Ḡ1 avec tkinter, puis avec
PySimpleGUI, qui utilise tkinter ou Qt au choix.

image

J’ai trouvé ça très simple et sympa, mais je ne sais pas si ça permet autant de chose qu’avec tkinter et kktkk comme tu dis ^^


Est-ce que tu sais pour quel usage et publique particulier tu veux faire ce client ?
Quels sont tes priorités ?

Je pense faire le client qui me plaît, avec une interface la plus intuitive possible.

Je vais essayer, comme Sakia, d’être complet (multi-langues, p2p, transactions, toile de confiance), et avec des fonctions pointues comme les transactions récupérables après un délai et les transactions inter-blockchain.

J’écouterai évidemment les demandes de modification, et j’espère que la simplicité du code permettra des contributions. Comme on est visiblement plusieurs à faire du python, c’est jouable d’avoir un client avec plusieurs contributeurs. Il s’appuiera sur DuniterPy 1.x.x.

5 J'aimes

Excellent. Une alternative simple à Cesium, et beaucoup plus légère à priori donc ?

Ce n’est pas du web. C’est à installer sur son ordi (pas installable sur mobile). Je n’en sais pas plus, je ne l’ai pas encore codé… :wink:

Un modérateur pourrait-il créer une nouvelle sous-catégorie Tikka dans la catégorie client.
D’avance merci !

1 J'aime

C’est fait !

(c’est la première fois que je touche aux catégories, j’ai pu sauter un truc)

la description de la catégorie ?

en regardant, les clients sont pas classé par catégorie, mais par étiquettes …

Elle existe, mais je ne peux pas la choisir pour mon sujet… Problème de permissions ?

Les autres catégories de clients n’ont pas toutes une description, et puis à part dire que la catégorie Clients::Tikka est à propos du client Tikka…

Elle a pourtant les mêmes paramètres que les autres, et tout le monde a le droit d’y poster. C’est bizarre.

Non puisqu’en tant qu’admin tu as tous les droits. Il fallait juste recharger la page du sujet (ctrl+F5) pour forcer discourse à reload la liste des catégories :wink:

3 J'aimes

Des nouvelles de Tikka

Tikka est en « développement intensif » comme disent les anglais.

J’ai adopté une architecture hexagonale (simplifiée).

La partie database et config sur disque sont des adaptateurs.
L’ application utilise ces adaptateurs et fournit des ports à l’interface graphique.

L’interface graphique est découplée de l’application même si c’est sa boucle d’évènement qui est lancée au module de démarrage.

Tikka utilise une petite database sqlite pour la persistence disque (une par monnaie : g1 et g1-test).
Donc il est multi-monnaie (duniter only !) mais c’est à ajouter (facilement) par le développeur.
Le choix de la monnaie se fait en un clique dans la config.

Il gère le multi-compte (on travaille sur un seul compte à la fois cependant).
On peut :

  • ajouter un compte créer ailleurs en donnant simplement la clef publique ou « clef_publique:checksum »
  • créer un compte auto généré avec un mnémonique (protocole DUBPMnemonic)

Il est localisé en français et anglais (configurable dans la config, mais on doit relancer…).

Contributions

J’ai repensé complètement l’interface. Pas de liste de compte permanente, mais en popup.

Quand je serai confiant sur l’architecture choisie et sur l’interface je publierai le projet sur notre GitLab bien évidemment.

To do

  • Sauvegarde en fichier DEWIF (Tikka mémorise le chemin pour le charger en cas de signature).
  • Chargement de fichier DEWIF pour ajouter un compte ou pour le lier à un compte existant (là aussi, Tikka ne chargera le fichier qu’en cas de signature de document).
  • Ajouter la licence dans les deux langues supportées.
  • Publication sur GitLab et appel à contributions pour les pythonistes.
  • Connection à GVA pour afficher plein de choses et faire plein de choses.
  • Support du p2p (nécessite une contribution à GVA).

Thèmes pour l’interface :sleepy:

J’ai échoué à implémenter les thèmes dans Tkinter (rien de prévu).
J’ai voulu basculer sur ttk qui gère les thèmes, mais il ne gère pas tous les widgets, donc faut se coltiner une partie à la main… Sale.
PySimpleGUI gère les thèmes, mais je n’aime pas la documentation. Et je n’ai pas le courage maintenant de migrer sur une nouvelle bibliothèque.
On verra donc ça bien plus tard, si quelqu’un se sent de convertir le code tkinter en PySImpleGUI pour gérer les thèmes.

7 J'aimes

Top!

Je sais sais pas si PySimpleGUI permet de faire tout ce que tu veux, tout ce que je sais c’est que pour faire une petite interface avec tkinter qui prends 300 lignes de codes, tu feras plus jolie avec PySimpleGUI grâce aux thèmes dispo et pour seulement 20 lignes de codes …

Je suis plongé dans Flutter, qui est en train de me casser la tête, sans ça je me serais lancé là dedans ^^


En tout cas j’ai hâte de tester les early version quand il y aura la gestion DEWIF et que le code sera publié :slight_smile:

2 J'aimes

Bon ça avance, mais j’ai un eu un problème…

J’ai atteint les limites de Tkinter pour ce projet.

  • Limite des listes de sélection : il me fallait en fait un tableau sélectionnable, avec plusieurs cellules par lignes pour afficher des zolis zîcones. Ce n’est pas possible avec Tkinter. Il faut le faire à la main.
  • Thème : Pas de support des thèmes.
  • Problème dans la barre de menu : celle-ci se désactive et il faut cliquer ailleurs dans la fenêtre pour la réactiver… Pas eu la patience de chercher pourquoi.

J’ai donc pris la décision de changer de cadre d’application pour l’interface.

J’ai testé PysimpleGUI, mais j’ai obtenu la même chose que Tkinter avec les mêmes limites (puisque c’est une surcouche à Tkinter).
Les thèmes fonctionnaient, mais étaient top moches…

J’ai testé Kivy. C’est très bien, mais c’est orienté jeu/mobile. Pas du tout desktop. Et comme Python sur mobile, c’est possible, mais franchement pas conseillé du tout (à moins d’avoir une batterie de Tesla… et un mobile de compète) et que c’est Ğecko et Cesium qui sont déjà sur ce support, j’ai renoncé. Le tuto permet de faire un jeu de Pong en quelque minutes, puisque c’est du OpenGL derrière, on a des sprites et de la 3d, avis aux amateurs de jeu desktop en Python !.

Finalement, j’ai testé wxPython. Et je suis tout à fait satisfait pour l’instant. J’ai la puissance de feu de Qt5, mais avec un look adapté au système d’exploitation. Ainsi, pas de thèmes, car l’application prend le thème de votre bureau. C’est vraiment un gros plus pour s’intégrer dans tous les OS. Je pense qu’une fois la version Linux stable, je ferai des packages Windows et MacOS. Ça n’a pas l’air trop dur.

Capture du 2021-01-25 14-53-05

Capture du 2021-01-25 15-16-03

Capture du 2021-01-25 15-16-27

La bonne nouvelle est que l’architecture du code de l’interface n’est pas modifiée (c’est la même philosophie pour Tkinter et wxPython).

Le nom Tikka

Vous allez me dire que le nom ne rime plus à rien (Tikka -> Tkinter) et vous aurez raison. Mais tant pis, il sonne bien, je le garde… :wink:

Utilisateurs cibles de Tikka

J’ai réfléchi à la cible d’une application de bureau. C’est important car cela permet de savoir quoi implémenter dans l’application.
Je veux que l’application soit très « illustrée », avec des icônes et des images très présentes pour que son approche soit ludique et simple.
Mais je veux qu’elle ait un plus par rapport à Cesium et Ğecko. Je pense qu’une fois les fonctions de bases implémentées, je vais me pencher sur les besoins des commerçants. Pourquoi pas ajouter des fonctions de comptabilité (relative si possible) et des graphiques permettant d’avoir des dates précises pour la dévaluation d’une trésorerie en relatif au dessus de la moyenne par exemple. A voir…

To do

Sauvegarde en fichier DEWIF (Tikka mémorise le chemin pour le charger en cas de signature).
Chargement de fichier DEWIF pour ajouter un compte ou pour le lier à un compte existant (là aussi, Tikka ne chargera le fichier qu’en cas de signature de document).
Ajouter la licence Ğ1 dans les deux langues supportées.
Refaire l’interface avec wxPython (en cours)
Connection à GVA pour afficher les transactions
Publication sur GitLab et appel à contributions pour les pythonistes.
Support du p2p (nécessite une contribution à GVA).

5 J'aimes

Génial, cette TODO me parait super :slight_smile:

1 J'aime

En plus, wxPython est accessible aux lecteurs d’écran ! (ce qui n’est vraiment pas le cas de toutes les GUI)

3 J'aimes