François BANITZ

Développeur d'applications utiles et durables. Flutter/Dart

Me retrouver: Linktree

Développement

Technologies de développement
  • Flutter / Dart, Effective Dart
  • Architectures MVC et MVVM
  • Packageless state management, Riverpod
  • GoRouter
  • Docker, Podman
Bases de données
  • SQL/MySQL, Postgres, MariaDB
  • Firebase, Supabase, Serverpod, Directus
  • Shared preferences, SQLite, Hive, Quasar
Versionnement
  • Git, GitHub, GitLab, Gitea, GitKracken, GitLens, GitButler
  • Issue-driven development, Pull/merge requests, revues de code
Documentation
Qualité de code
  • Principes SOLID, TDD, BDD, Gherkin
  • Tests unitaires, de widget, d’intégration, coverage
  • GitHub Actions, GitLab CI

Organisation / Planification

  • Agile, Scrul, sprints, daily
  • Suivi de tâches, backlog, kanban, GitHub projects, GitLab issues, ClickUp, gitkraken.dev

Autres compétences professionnelles

  • Transfers de compétences, formation

Langue

  • Anglais technique et général niveau B2

Depuis Octobre 2023 Alternance chez Actimage Gmbh en temps que développeur d'application multiplateformes.
Réalisation : Développement de l'application mobile iOS et Android de Parkstory.

Octobre 2022 à octobre 2023 Alternance chez Interfacile en temps que chef de projet de développement d'application multiplateformes.
Réalisation : Co-conception, design architechturel et développement solo de Dotspot pour Android et web.

Avril 2021 à Janvier 2022 Alternance chez Interfacile en tant que développeur d’application mobiles.
Réalisation : Développement solo de Dotspot pour Android.

Novembre 2019 à septembre 2020 Service civique à Emmaüs Connect “accompagner les personnes éloignées du numérique”.
Réalisations : Animation d'ateliers individuels et de groupe d'initiation aux outils numériques. Reconditionnement et vente de matériel informatique et de recharges téléphoniques solidaires.

Avril à Juin 2019 Stage en entreprise : Étude Électricité Automatisme et Télégestion au Syndicat Des Eaux et de l’Assainissement Alsace-Moselle (SDEA).
Réalisation : Remplacement et programmation de l'automate et de l'interface homme-machine d’un laveur à sable.

Novembre 2023 à Novembre 2025 Mastère professionnel manager en architecture et applications logicielles des SI en alternance - CESI Strasbourg.

Octobre 2022 à octobre 2023 Bachelor Concepteur Développeur d'Applications en alternance de niveau 6 (BAC+3) - CESI Strasbourg.

Novembre 2020 à Novembre 2021 Titre professionnel Développeur Web Web Mobile de niveau 5 (BAC+2) en alternance - WebForce3 Strasbourg.

2017 - 2019 IUT Génie Électrique et Informatique Industrielle - Belfort.

2016 BAC STI2D option SIN avec mention - Lycée Marc Bloch de Bischheim.

  • Parkour, course d'endurance (36km).
  • Implication associative.
  • Assistance informatique à domicile.
  • Passionné d’espace, plus particulièrement l'astronautique et la conquête spatiale.
  • Passionné de jeux vidéos.

Me contacter: dev@fbanitz.fr

Flutter - Espacement des Row et Column

Petit ajout dans la dernière mise à jour 3.27 de Flutter qui ne paie pas de mine mais qui ne m'a pas laissé de marbre; La possibilité de définir un espacement régulier des enfants des Colomn et Row directement dans les paramètres des celles-ci.

Cette nouvelle fonctionnalité réponds à un léger problème qui me tracassait depuis longtemps. Comment gérer l'espacement des enfants des deux implémentations du widget Flex, lorsque qu'il est le même entre chaque enfant, de manière standardisé et en limitant la redondance.

Jusqu'à maintenant j'utilisais deux méthodes différentes pour le même résultat :

En utilisant des Sizedbox

Colomn(
  children: [
    Text('Mon élément 1'),
    Sizedbox(height : 5),
    Text('Mon élément 2'),
    Sizedbox(height : 5),
    Text('Mon élément 3'),
    Sizedbox(height : 5),
    ...
  ],
)

En utilisant les propriété margin et/ou padding des widgets enfants

Colomn(
  children: [
    Padding(
      padding: EdgeInsets.only(bottom: 5),
      child: Text('Mon élément 1'),
    ),
    Padding(
      padding: EdgeInsets.only(bottom: 5),
      child: Text('Mon élément 2'),
    ),
    Padding(
      padding : EdgeInsets.only(bottom: 5),
      child: Text('Mon élément 3'),
    ),
    ...
    Text('Mon élément N'),
  ],
)

Aucune des ces solutions ne me convenait pour les raisons que j'ai exposé précédemment. De plus je n'était jamais réelement sûr de quelle solutions utiliser et quand. Ce qui créait des incohérences et rendait mon code plus difficile à maintenir.

Cette nouvelle fonctionnalité, bien que mineure me semble représenter un pas en avant vers la standardisation et la simplification des procédés de développement d'applications avec Flutter et je l'accueille avec enthousiasme.

François BANITZ pour son blog.

Tags: flutter , ui , layout