Frameworks come with assumptions. Without assumptions they are only small libraries with separated targets and you have to connect them together all by yourself. So frameworks can be sweet sometimes. However those assumptions may fail according to the different details of you projects. Some of the assumptions can be invisible in the docs or even in the code. And then it leads to the dark part...