ObjcProjectDependencyVisualisation is a project designed to help iOS developers improve their project structure. This repository contains a script which shows all dependencies in a project provided in the form of a directed graph.
-
Clone the project
-
Install pip3 (run: brew install python3)
-
(Optional) Activate virtualenv
-
pip3 install -r requirements.txt
-
python3 visualisation.py [-h] [-i IOSPROJECTPATH] [-o OUTPUTDIR] [-f OUTPUTFILENAME] [-e OUTPUTFILEEXTENSION]
optional arguments:
-
-h, --help show this help message and exit
-
-i IOSPROJECTPATH, --iosProjectPath IOSPROJECTPATH
path to iOS project to parse
-
-o OUTPUTDIR, --outputDir OUTPUTDIR
folder to save result file to
-
-f OUTPUTFILENAME, --outputFilename OUTPUTFILENAME
output file name
-
-e OUTPUTFILEEXTENSION, --outputFileExtension OUTPUTFILEEXTENSION
output file extension
-
‘canon’, ‘cmap’, ‘cmapx’, ‘cmapx_np’, ‘dia’, ‘dot’, ‘fig’, ‘gd’, ‘gd2’, ‘gif’, ‘hpgl’, ‘imap’, ‘imap_np’, ‘ismap’, ‘jpe’, ‘jpeg’, ‘jpg’, ‘mif’, ‘mp’, ‘pcl’, ‘pdf’, ‘pic’, ‘plain’, ‘plain-ext’, ‘png’, ‘ps’, ‘ps2’, ‘svg’, ‘svgz’, ‘vml’, ‘vmlz’, ‘vrml’, ‘vtx’, ‘wbmp’, ‘xdot’, ‘xlib’
Currently a graph distinguishes four types of dependencies:
- Red arrow - .pch file dependancy
- Blue double-sided arrow - dependency cycle
- Half-transparent node - external dependency
- A node without in- or outarrows - isolated class