Dependencies explore l'architecture des apps dans un graphique interactif

Stéphane Moussie |

Développer une application devient parfois tellement complexe qu'il est nécessaire de prendre du recul. C'est ce que permet de faire Dependencies, un nouvel outil qui expose l'architecture des apps iOS et macOS dans un graphique interactif.

Dependencies décompose les différentes parties des logiciels en cercles colorés (bleu pour les classes, orange pour les protocoles, etc.) reliés entre eux selon leurs liaisons logiques, ce qui donne une vue d'ensemble du projet. Chaque objet est nommé au survol de la souris (ou constamment si on le préfère en activant une option) et peut être déplacé pour être mis en exergue. Pour créer ce graphique, Dependencies s'appuie sur les fichiers .dSYM produits par Xcode.

Toujours dans le but d'aider les développeurs à simplifier leurs projets, Alexandre Colucci a mis au point une formule mathématique qui calcule la complexité d'une application, indépendamment du langage de programmation utilisé. Ce Software Entropy, comme il l'appelle, est détaillé sur le site de Dependencies. Plus le score est bas, moins l'app analysée est complexe. Cela donne une indication, mais quelques points de comparaison ou quelques conseils seraient les bienvenus pour aider à la simplification de l'architecture.

Dependencies comprend des fonctions pour partager rapidement tout ou partie du graphique avec des collègues ; on peut prendre en capture la vue en cours ainsi que l'exporter en HTML.

L'application est gratuite au téléchargement dans le Mac App Store. Un achat in-app de 19,99 € supprime le watermark et débloque plusieurs fonctionnalités : partage en HTML, utilisation depuis le Terminal en ligne de commande et prévisualisation des fichiers dSYM directement depuis le Finder avec Quick Look. Dependencies, qui est universelle (Intel + Apple Silicon), demande macOS Big Sur au minimum.

avatar v1nce29 | 

> Since we could not find a mathematical concept in the graph theory to give a meaningful complexity score

Vu la trivialité de sa formule, ça m'étonnerait grandement qu'elle ne fasse pas partie du kit de base de la théorie des graphes.

avatar Timac | 

Ici le développeur 👋

Malheureusement je n'ai pas trouvé de formule dans la théorie des graphes. Une formule qui se rapproche est la Complexité Cyclomatique de Thomas McCabe qui a été écrite en 1976…

Je suis d'accord que ma formule est triviale, ce qui en fait sa beauté 😜
Tout est détaillé ici : https://dependencies.app/entropy/

avatar v1nce29 | 

Disons que comme :
j'ai eu l'idée immédiatement ;
j'ai compris ton code sans guronsan (et vu incidemment que ça correspondait à mon idée);
il n'y a pas de log dans la formule :)

ça coche 3 critères d'un algo pour me dire que j'ai sauté à pied joint dans la version naïve ou que je me suis trompé quelque part :)

avatar mk3d | 

“A développé une formule”... ah

avatar YuYu | 

Ça donne quoi avec l’app iOS de MacG ?
Vous avez pu tester ?

avatar LaurentH | 

@YuYu

97

avatar Tibimac | 

@LaurentH

510 sur l'app pour laquelle je bosse 😱

avatar marc_os | 

> demande macOS Big Sur au minimum

Cette exigence est rédhibitoire pour moi.
Dommage.

Ceci dit, je me demande bien ce qui peut bien exiger macOS Big Sur dans ce logiciel, Big Sur apportant de mon point de vue surtout des contraintes pour les développeurs plutôt que des avantages.

avatar Timac | 

Ici le développeur. Je peux répondre à cette question 😜
Pourquoi Dependencies nécessite macOS Big Sur :

- Dependencies est un projet perso et je suis le seul développeur
- Pour accélérer le développement, j'ai utilisé des technologies uniquement disponibles sur macOS Big Sur (SF Symbols, …)
- L'application peut être gourmande en CPU pour les projets complexes. Utiliser un Mac avec Apple Silicon aide.

Il s'agit donc de décisions pratiques. J'espère que ça répond à votre question.

Alexandre

avatar hawker | 

Cool. On peut voir quelles apps sont dev avec les fesses (bcp de dep) et celle qui sont faites par des bon devs.

avatar Tibimac | 

@hawker

Sachant qu'il faut le fichier dSYM de l'app géneré par Xcode lors du build sur un vrai device... t'es pas près d'analyser grand chose malheureusement

avatar cham | 

C’est l’histoire d’un mec, il fait un bon soft.... 😅
Bon je ne suis pas développeur mais si je comprends bien, ça ne fonctionne pas pour un projet en Python. Est-ce vous connaissez un équivalent ?

CONNEXION UTILISATEUR