Skip to content

Commit 997bb1b

Browse files
authored
Readme update for 0.1
1 parent d83b186 commit 997bb1b

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

README.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,39 @@
11
# swift-arch-analyzer
2+
23
Architectural analyzer for Swift projects.
4+
5+
## Introduction
6+
7+
The goal of this software is to provide an insight of the architectural state of a software written in `Swift` that consists in several modules.
8+
Inspired by the book of Robert C. Martin, _Clean Architecture_, the software will scan the project to identify the different components in order to assess:
9+
- the overall number of concrete classes and interfaces
10+
- the _instability_ and _abstractness_ of the framework
11+
- the _distance from the main sequence_
12+
13+
## Requirements
14+
15+
This is a _python3_ script that depends on _matplotlib_ (`pip3 install matplotlib`).
16+
17+
## Usage
18+
19+
The syntax is:
20+
21+
`python3 swift-project-archlint.py <path-to-swift-project> <excluded-folders> <output-directory>`
22+
23+
- `<path-to-swift-project>` is the path to the folder that contains the main Xcode project or Workspace
24+
- `<excluded-folders>` (optional) list of subdirectories to exclude from analysis (e.g. `ThirdParty`, `Carthage` checkouts, `Pods` etc..)
25+
- `<output-directory>` (optional) path to the folder that will contain the generated textual analysis and graphs; if empty, the software will show the images to the user
26+
27+
## Current limitations
28+
29+
This tool is designed for medium/large codebases composed by different frameworks. The script will scan the directory and it will identify the frameworks by the name of the 'root' folder, so it's strictly dependent on the file hierarchy.
30+
31+
Libraries built with `spm` are not supported.
32+
33+
## Current state
34+
35+
Work in progress
36+
37+
## Contact
38+
39+
[Mattia Campolese](https://www.linkedin.com/in/matcamp/)

0 commit comments

Comments
 (0)