Ğecko: Nouveau client de paiements Ḡ1 sur mobile en cours de développement (Dart/Flutter)

Même si ce projet est dans ses balbutiement, je tiens à vous annoncer tout de même que je travail depuis 3 jours sur un nouveau client de paiement avec GVA développé en Dart:

Nom de code Ğecko.

Le but étant de faire un client simple et rapide sur Android/iOS, de génération wallet sécurisé protégés par code PIN, de paiement en scan QRCode, et de génération de qrcode, avec possibilité d’ajouter un nom d’item, le prix et un commentaire dans des QRcode à générer/scanner.

Les fonctionnalités de l’app seront définis au fur et à mesure, et le travail sur l’UX viendra en dernier.

Je découvre cet environnement de développement donc ça va me prendre du temps, surtout au début, je dois approfondir ma compréhension des widget/layout en Dart, pour être à l’aise avec l’affiche de l’interface avant de continuer d’implémenter GVA.


J’invite tous ceux qui voudraient rejoindre l’aventure à commencer à apprendre Dart/Flutter, installer l’environnement de développement, ainsi que VSCode :slight_smile:

Toutes les bibliothèques nécessaires existes déjà (GQL, ed25519, ect …), et la cerise sur le gâteau serait que @elois ou quelqu’un d’autre arrivent à nous créer un binding dart pour dubp-rs-libs comme j’en ai rapidement parlé avec lui, pour gérer toute la partie crypto duniter!
Mais même sans ça, il est tout à fait possible de créer une lib Dart à partir de la lib ed25519 existante.

-> Elois nous a fait un super binding dart pour dubp-rs-libs !


Version 0.0.0+7

14 J'aimes

Oui je vais essayer quand j’aurais un peu de temps pour ça :slight_smile:
La ma priorité est de finir de bien baliser GVA pour pouvoir lancer une formation dessus !

6 J'aimes

Bonjour,

:+1:

quelle est la version minimum d’Android ?

1 J'aime

Pour le moment je fais mes tests sur Android Q (10) et Android 9 sur mon phone, je n’ai pas testé sur des versions antérieurs.

Je ne sais plus où est-ce que je vue passer au début de ma config d’android studio le pourcentage de device avezc lequel mon projet sera compatible, mais c’était quelque chose dans les 99.8% des devices android. Je creuserais ça.

Je vais essayer de faire en sorte de le rendre compatible à partir d’Android 8.

mon 4.4.2 ne me sera pas utile alors … je reste sur mon vieux cesium.

1 J'aime

Honnêtement je n’en suis pas encore là de toute façon la release n’est pas pour demain :wink:

J’optimiserais la retro compatibilité à la fin promis, en attendant je ferais des test sur la version 4 d’android à l’accasion :wink:


Grace à Flutter qui compile en code natif je dois pouvoir gérer assez facilement les versions d’android/ios supportés mais je n’ai pas encore pris le temps de creuser cet aspect, j’ai beaucoup trop d’autres truc primordiaux avant à apprendre ^^

1 J'aime

J’ai voulu le télécharger sur mon téléphone (Android 7.0, navigateur IceCatMobile) mais Lufi dit sur fond rouge « Notification not defined » après avoir récupéré les fragments du fichier.

à ce moment là (qui va piano, va sano) si je peut aider, fait moi signe :slight_smile:

1 J'aime

En effet je viens de m’apercevoir que le lien marche bien sur pc mais pas sur mobile, étrange.

Je l’ai reuploadé là https://cloud.p2p.legal/s/75yrLtRWdMz42qJ, je change le message principal.

L’autre soucis, c’est que ça ne foncitonnera pas là tout de suite car le seul endpoint configuré en dur est https://g1.librelois.fr/gva et qu’il est en 502 car elois doit recompiler en ce moment même je suppose :laughing:

1 J'aime

Je viens de tester avec Android 7 déjà la version actuel marche parfaitement.

Je testerai dans une VM Android 4 à l’occasion.

@Candidesk8 a la limite si tu peux tester l’app sur ton phone ça tranchera la question :wink:

1 J'aime

Ça marche super bien, bravo ! Et c’est rapide.

Quelques suggestions :

  • pouvoir entrer une clé publique à la main (ou au moins un bouton « coller »)
  • pouvoir passer en mode selfie (utile si l’appareil photo avant est cassé)
  • ne pas afficher les placeholders avant le scan
  • pouvoir cliquer sur les clé publiques dans l’historique pour voir leur historique
2 J'aimes

Et encore dès que la pagination de l’historique sera opérationnel sur GVA ce devrait être quasiment instantané.

Oui alors tout ça c’est principalement de l’UI (et config camera), c’est justement ce sur quoi je vais me concentrer en premier lieu, en apprenant déjà afficher l’historique dans une list d’item et non en bloc, gérer 2 tab, différents widget, ect … Vraiment les base des widgets pour l’UI Flutter.

3 J'aimes

Pour les pro du javascript, je sais que Dart peut être compilé en javascript pour être executé dans un navigateur. Si vous voulez essayer de compiler gecko en javascript depuis le dépot git, ce serait intéressant (cela dit avec l’usage de la camera actuellement il faudrait adapter je suppose ^^).

Moi je ne compte pas me pencher là dessus avant un moment car ce n’est pas ma priorité, c’est évidement une app faites pour être sur mobile exclusivement, mais si après c’est possible de compiler une version javascript pourquoi pas.


Notamment pour la lib GVA en Dart que j’ai commencé à faire et que je compte bien rendre complète pour tout ce qui est nécessaire pour un client de paiement.

Je suppose que cette lib pourra être facilement compilé en javascript optimisé pour faire un lib javascript GVA, et servir à Cesium V2 ou tout autre client javascript :slight_smile:

1 J'aime

Waaa je viens de tester c’est génial Poka ! Super rapide, simple et efficace. Bravo cet embryon est archi-prometteur. C’est déjà utilisable tel quel pour checker un compte rapide.

PS : effectivement mon LUFI ne semble pas téléchargeable sur phone, je sais pas pourquoi. J’ai envoyé un msg à son créateur qui me dit que ça dépend du navigateur. Selon lui ça marche sous chrome et firefox.

3 J'aimes

Dart + GVA = :orange_heart:

1 J'aime

C’est en partie grâce à l’API GVA qui donne le solde directement et ultra rapidement (moins de 10ms pour traiter la requête côté serveur d’après mes logs).

Et c’est aussi grâce à Flutter qui produit du natif pour Android.

Clairement Dart/Flutter + Rust/GVA = le combo gagnant pour une app mobile ultra rapide :smiley:

6 J'aimes

Franchement, chapeau, rien que l’interface est super clean :star_struck:.
Par contre, y’a un bug sur l’ouverture du QR code avec la galerie

1 J'aime

La version dev1 doit être cassé pour l’historique car l’API GVA a changé entre temps.
Je publierai une dev2 avec historique paginé.

Pour l’interface pour le moment je n’ai fait que le minimum, c’est Dart qui permet d’avoir des interfaces natives donc légères.

2 J'aimes

Je trouvais la dev-1 trop lente alors j’ai publié un dev-2 :stuck_out_tongue_winking_eye:

  • Charge uniquement les 3 dernières transactions grâce à la pagination côté GVA.
  • Affiche les transactions envoyés et reçus.
  • Affiche les transactions en attente avec un UX très soigné comme vous en conviendrez.
  • Possibilité d’écrire/coller une clé publique à la main, et de la copier. Rechargement dynamique si la regex de pubkey match.
  • J’ai viré les délimiteur graphique pensant que c’était ça que @tuxmain voulais, mais en relisant je me rend compte que pas du tout lol.

J’ai mis à jour le premier poste avec un lien vers la liste des APK qui seront publiés ici.

@Candidesk8 peux-tu tester d’installer le APK ? On sera fixé pour cette version :slightly_smiling_face:

2 J'aimes

Salut @poka :slight_smile:

j’ai essayé hier, mais j’ai un problème de carte microSD qui refuse d’enregistrer le fichier … elle date de 2014, possible qu’elle soit en fin de vie.
là je vais essayer de télécharger directement sur le téléphone …

[suite]

Fait ! ça marche !
Cool :slight_smile:
pour le moment, la seule fonctionnalité, c’est de scanner un QR code et de consulter le solde du compte. C’est ça ?

2 J'aimes