Lascapi.fr

Menu

Simplifier l’informatique

L’informatique d’aujourd’hui est très compliqué. Il y a tellement de paramètre à prendre en compte. Un exemple simple : aller sur un nouveau site web et il y a facilement trois ou quatre bandeaux pop-up pour configurer les cookies, pour recevoir les mises à jour du site pour être localiser ou encore pour recevoir la newsletter !!

Je n’aime pas ce qui est compliqué et que je ne peux absolument pas maitriser, c’est pourquoi j’aime et je soutiens les logiciels opensource. Et voilà pourquoi je vous présente aujourd’hui quelques projets que je trouve simple et efficace.

Le mail

Tout d’abord je prends la défense d’un vieil outil aussi vieux qu’internet, les mails qui sont encore aujourd’hui le meilleur moyen de communiquer avec toutes les personnes du monde, une des raisons c’est que de nombreux services demande une adresse mail pour s’inscrire, rendant de facto cet outil un standard universel. #jaimeLeMail !!

Les messageries instantanées

Très complémentaires du mail pour communiquer en groupe rapidement. Tellement pratique qu’il y a probablement des centaines de protocoles tous plus fermé les uns que les autres. Certains jouent la sécurité comme Signal ou Telegram, mais très peu se place sur le plan de l’ouverture et de la liberté. J’en ai retenu deux : Jabber, basé sur XMPP et Matrix avec son client le plus connu Riot.

Ces deux protocoles ont ceci de commun qu’ils sont le plus interopérable, ils cherchent à fédérer les autres protocoles (comme Gitter, Telegram ou IRC depuis Matrix), et surtout ils sont décentralisés comme le mail, c’est-à-dire que plusieurs serveurs peuvent communiquer ensemble au contraire de WhatsApp, de Threma et tous les autres. La différence est fondamentale, c’est l’ouverture du code côté serveur et la liberté de choisir son fournisseur de service. Ça peut être une grosse entreprise, ou une petite, ça peut être une association ou même soit même sur un serveur personnel.

Aujourd’hui ma préférence va au protocole Matrix qui à un super logiciel qui s’appelle Riot.im qui est disponible sur smartphone, ordinateur ou dans le navigateur.

Les avantages sont multiples. Par exemple pas besoin d’avoir de smartphone pour l’utiliser, du coup mes parents peuvent tchatter depuis leur ordinateur. Un autre c’est qu’on n’est pas obligé de fournir quoi que ce soit de personnel comme un mail ou un numéro de téléphone. Non, rien n’est obligatoire, il suffit d’un identifiant et d’un mot de passe. Parfait pour ceux qui désirent être parfaitement anonyme. Mais bien sur on peut renseigner ça pour que nos amis découvrent notre compte automatiquement lorsqu’ils installent l’appli.

Les outils de collaboration

Parmi les outils simples de collaboration il y a les traitements de texte en ligne. Et le plus simple que je connaisse c’est Etherpad ! (Il y a aussi Cryptpad qui est vraiment super ! )

C’est un service hébergé, c’est-à-dire qu’il faut que quelqu’un l’installe sur son site internet et le rende accessible. Un exemple célèbre c’est le Framapad. Tout le monde peut créer un document écrire depuis son navigateur, envoyer l’adresse URL à d’autre personne qui verront en temps réel le texte qui est en train d’être tapé, et eux aussi pourront participer à l’édition de ce fichier. L’immense avantage d’un tel système, c’est qu’il permet d’avoir une seule version toujours à jour d’un document texte. Fini l’envoi d’un PDF ou d’un ODT à plusieurs personnes, qui font des corrections, des ajouts et qui renvoi le fichier qu’il faut relire pour intégrer les corrections et les ajouts au fichier original …….. Bref c’est mille fois plus pratique !!

Note à moi même

Ces services, tous les logiciels qui permettent de les faire tourner, les personnes qui les développes ont besoins de soutien moral et financier. Certains comme Etherpad sont utilisés par des milliers de personnes et n’ont aucun financement.

Je réfléchis donc comment à ma mesure je peux contribuer à la maintenance et à l’évolution de ces projets. Pour l’instant en signalant les bogues et en remerciant pour les améliorations. Demain en soutenant financièrement les développeurs et les associations ?

Et toi ?

Utiliser le Bluetooth dans une appli

Pour l’instant il n’y a qu’un seul paquet sérieusement utilisable pour développer un application avec Flutter, il s’agit de flutter_blue. Il existe d’autres paquets mais beaucoup trop limité, par exemple bluetooth où encore flutter_bluetooth_serial qui est limité à Android, ce qui est un paradoxe puisque Flutter n’est utile que pour développer des applications cross-platform !

Il y a très peu de documentation sur Flutter dès qu’on s’éloigne des thèmes décrit dans la doc officielle. C’est là qu’on voit que c’est un framework très jeune.

Architecture d’une appli avec Flutter

Lifting State Up

Une application en «layer» avec des « building blocks ».

  • StatefulWidget
    • Inclue les informations dans le constructeur, c’est à dire les données qui doivent lui être passées pour fonctionner
  • State
    • définition des paramètres liés au widget (qui doivent être rendu dedans)
    • les méthodes pour mettre à jour le widget (avec «setState()»)
    • construire l’interface

C’est le concept de « Lifting State Up » qui vient de React :

https://medium.com/@nimelrian/thinking-in-react-a-paradox-statement-33c19e2eb9e2

Cette architecture est parfaite pour gérer un ou deux niveaux sur un écran, mais ça devient vite très compliqué de faire passer les paramètres au travers de plusieurs niveaux, et ça ne permet pas de bien découper le code, ni d’être flexible ni d’être testable.

InheritedWidget

https://cdn-images-1.medium.com/max/1200/1*GEvdBRvehbG6PvqLbVmwZw.png
https://medium.com/flutterpub/breakdown-flutter-i-o-2018-part-two-d47f1236f585

Ce type de widget permet de recevoir un état (des fonctions et des variables) et d’y accéder directement depuis tous les enfants, peut importe leurs niveau.

Bibliographie


Flutter et les API

Quelques liens, exemples et remarques pour cerner rapidement comment on peut utiliser une API externe pour injecter des données dans son application.

Pour la doc de base c’est dans le cookbook « Fetch data from the internet » de Flutter et dans la doc du package http de Dart.

Un super exemple d’application avec un système de login : https://appleeducate.github.io/flutter_login/ et un bon tuto flutter-login-app-using-rest-api

http.post

Pour envoyer du json à une API REST deux choses sont importantes, ne pas oublier de définir le content-type dans le header, ainsi que d’encoder le body.

headers: {'content-type': 'application/json'},
body: json.encode({"user": {"email": "jean@mail.com", "password": "jean"}}),

Le reste est très bien décrit dans les tutos et dans la documentation.

Flutter, applis pour iOs et Android

Pour commencer, c’est quoi Flutter ? Voilà deux liens qui expliquent la politique de Google lié à ce nouvel outil et le deuxième qui refait l’évolution des outils destiné à « écrire une fois, déployer partout ».

Un bon article qui montre de quoi est capable flutter : https://proandroiddev.com/mythbuster-10-rumors-about-flutter-why-its-not-worse-than-android-kotlin-f1a1acbe587d

StateLessWidget vs StateFulWidget

Les « widgets sans état » sont utiles lorsque la partie de l’interface utilisateur que vous décrivez ne dépend pas d’autre chose que des informations de configuration de l’objet lui-même et du BuildContext dans lequel le widget est déployé. Pour les compositions qui peuvent changer dynamiquement, par exemple en raison d’un état d’horloge interne, ou selon l’état du système, pensez à utiliser StatefulWidget.

https://docs.flutter.io/flutter/widgets/StatelessWidget-class.htm

Les widgets de Flutter sont construit sur le même modèle que ceux de React. Il y en a 4 types principaux :

  • le texte
  • des colonnes et des lignes pour organiser des éléments horizontalement et verticalement
  • des piles (stacks), pour empiler des éléments à la manière de la position absolue en html/css
  • un conteneur plus général, comme une <div> qui peut être manipulé par des matrices.

Route et voiture

– Désolé Monsieur, je vous assure vous ne pouvez pas circuler avec votre véhicules sur cette voie ! C’est contraire à notre politique de sécurité !

– Mais je ne comprend pas ! Qu’est ce qui ne va pas ?

– C’est bien simple, nous n’avons testé que des modèles de la marque Toyodi et Fordissan, votre Peugeotroen ne fait pas parti de notre liste blanche des marques de véhicule autorisé à circuler sur notre réseaux d’autoroute. Désolé, mais il va falloir changer de véhicule pour utiliser ce service.

– Monsieur !! Je ne changerai pas de véhicule à cause de votre politique commerciale ! Je prendrai la route national qui est gratuite, ouvert, et respectueuse des choix des automobilistes ! Bonne journée Monsieur.

Vroum

#mercredifiction #automobile #voiture #libre choix #politique

Nextcloud

Depuis quelques mois j’utilise NextCloud un cloud #OpenSource. J’ai opté pour l’offre chez Zaclys qui est simple, économique et efficace.

Pourquoi ?

L’utilisation d’un cloud personnel ne coule pas de source, tout le monde n’en a pas besoin. Personnellement je l’utilise pour accéder à mes fichiers, à mes notes, mes contacts, mes agendas mes listes de taches. Ça m’est aussi utile pour partager des dossiers, des photos. C’est un peu la base d’un cloud vous aller me dire. Oui 😊

Comment ?

Je l’utilise sur plusieurs type d’objets. Avec l’application qui me permet de synchroniser tout ça sur mon iMac 🖥 (MacOS), sur mon ordinateur portable 💻 (Linux/Ubuntu), sur mon smartphone 📱 (LineageOS) et en mobilité sur d’autre ordinateur grâce à l’accès web.

Je suis particulièrement contant de l’application de note et de ToDo sur Android.

Pour ce qui est des contacts ou des agendas, je peux les synchroniser dans leur application respective.

Je vous recommande vivement cette solution qui n’a pas à rougir face à des DropBox, GoogleDrive et autre service centralisé !

Librement,
Pascal