Showing posts from January, 2014

COCOAPODS: a dependency manager for IOS development

IOS - Dependency Management Problem 
During my IOS development experience i've immediately dealt with the "dependencies management" problem.

Firstly, my needs were to share code among projects and the only way that i found out was to build "static link libraries" that are files with ".a" extension also because IOS doesn't support dynamic link ones.

But very soon i understood that building static libraries, as well as being a little bit complicated, was not the better way to manage project's dependencies. This because, often, my IOS projects were developed, reusing a bunch of code gathered by open source software and not all (almost no one) were distributed/packaged as static library, but provides just source code
So my short-term strategy was to copy&paste the code, coming in from third party projects, directly into my project. this strategy seemed working well until i had to deal with maintenance and bug fixing because it became very hard (al…

MAVEN PLUGIN(S) SERIES - Housekeeping of dependencies

PROBLEMAfter a continuos use of maven for project lifecycle management , usually, the local dependencies' repository growth, risks to go out of control.
SOLUTION There are some plugins that help us to do housekeeping on local dependencies' repository.
Build Helper Maven PluginThis plugin contains various small independent goals to assist with the Maven build lifecycle.Maven Dependency PluginThe dependency plugin provides the capability to manipulate artifacts. It can copy and/or unpack artifacts from local or remote repositories to a specified location.
The goal remove-project-artifact of builder-helper plugin, remove project's artifacts from local repository and it's useful to keep only one copy of large local snapshot.

The goal purge-local-repository of maven-dependency plugin, remove the project dependencies from the local repository.

I suggest you to take a look at both of them in order to understand their features, that offer us a wide range of possibilities.
UtilityTo g…

PlantUML & Maven - Enrich your project's documentation

As read in previous post  "PlantUML a DSL for creating UML Diagram quick & easy", plantUML is a text based Domain Specific Language (DSL) that helps who need to design UML diagrams, offering also a good integration in IDE like  Eclipse and Netbeans 

Another its great feature is the integration with maven that allow us to put our plantUML files within our projects,  generating diagrams  during a project's lifecycle phase (e.g. during site generation), or upon a goal's execution

The maven plantuml plugin is very easy to use, below a typical usage example:
Usage from Maven:<plugin><groupId>com.github.jeluard</groupId><artifactId>plantuml-maven-plugin</artifactId><version>7941</version><configuration><sourceFiles><directory>${basedir}</directory><includes><include>src/main/plantuml/**/*.puml</include></includes></sourceFiles></configuration><dependencies><depen…

PlantUML - a DSL for creating UML Diagram quick & easy

In my daily work often i need, for helping to make understand, formalization of UML Diagrams (in particular i use Sequence Diagram).

There are lot of tools that allow to write UML Diagrams, not all free and unfortunately, very few of them have been integrated in Development Environments. Moreover the look & feel between them, usually, is very different and the drawing requires some expertise

My dream was to have a tool that would allow me to draw UML Diagrams without need to move out from my development environment, minimizing effort needed to draw the diagrams themselves

Then by chance i found out PlantUML that has seemed to solve all my problems.
What is PlantUML provides a text basedDomain Specific Language (DSL) that focus on "what i need to do" and not on "how i have to draw what i need to do".

This means that with  few of "text's statements"  we can obtain a complete UML Diagram. Take a look to the example below , if we write the text on the…