I see in a lot of threads around here lately where people have been complaining about jailbreak tweaks and apps requiring them to install dependencies. I can understand concerns about things you don't know or understand being installed on your phone, but this bashing of dependencies has, I think, gotten out of hand.
Dependencies aren't being added to your phone for the hell of it. Usually those dependencies are doing something vital that the app itself would otherwise have to do. As the jailbreak community is maturing, skilled devs have been creating tools which abstract certain commonly needed tasks so that tweaks will not have to duplicate functionality -- something that often leads to conflicts.
Most of you are familiar with Cydia Substrate (formerly Mobile Substrate), the first and greatest of these tools. Cydia Substrate is a very sophisticated tool with numerous APIs that create a consistent way for developers to inject code into system applications. Without Cydia Substrate nearly every tweak would have to duplicate its functionality, using their own means to inject code and invariably causing conflicts. And can you imagine the additional overhead of running a code injector built into every tweak? Not only that, but when something changes in iOS, developers don't each have to rewrite the code injection portions of their apps; Saurik updates CydiaSubstrate and does it for them. Can you imagine how long it would take tweak developers to update their apps if they had to duplicate Saurik's work for every app they created?
The same thing can be said of many of the other devendencies people complain about. Libactivate handles the interception of gestures and button presses so that you don't end up with competing tweaks battling over them. Libhide allows the hiding of application icons and is used by many tweaks. Icon Support provides a way for numerous tweaks to move and alter icons without creating conflicts. The new beta FlipSwitch library supports the addition of icons to the Control Center. The unfortunately-named RocketBootstrap creates a way for tweaks to look up and reference system addresses that are otherwise sandboxed in iOS 7. It was basic functionality needed for Activator, but it will be useful for many tweaks so rather than incorporate it into Activator itself the author made it into a library any developer could rely on. The list goes on.
So before you start complaining about dependencies or avoiding tweaks that require them, take a moment to consider what those dependencies represent: a maturing ecosystem with a more efficient architecture where people work together to avoid duplicating work and creating conflicts, to make the creation and updating of tweaks faster and more efficient and, yes, even to reduce the impact of multiple tweaks on your phone's performance.
Dependencies aren't being added to your phone for the hell of it. Usually those dependencies are doing something vital that the app itself would otherwise have to do. As the jailbreak community is maturing, skilled devs have been creating tools which abstract certain commonly needed tasks so that tweaks will not have to duplicate functionality -- something that often leads to conflicts.
Most of you are familiar with Cydia Substrate (formerly Mobile Substrate), the first and greatest of these tools. Cydia Substrate is a very sophisticated tool with numerous APIs that create a consistent way for developers to inject code into system applications. Without Cydia Substrate nearly every tweak would have to duplicate its functionality, using their own means to inject code and invariably causing conflicts. And can you imagine the additional overhead of running a code injector built into every tweak? Not only that, but when something changes in iOS, developers don't each have to rewrite the code injection portions of their apps; Saurik updates CydiaSubstrate and does it for them. Can you imagine how long it would take tweak developers to update their apps if they had to duplicate Saurik's work for every app they created?
The same thing can be said of many of the other devendencies people complain about. Libactivate handles the interception of gestures and button presses so that you don't end up with competing tweaks battling over them. Libhide allows the hiding of application icons and is used by many tweaks. Icon Support provides a way for numerous tweaks to move and alter icons without creating conflicts. The new beta FlipSwitch library supports the addition of icons to the Control Center. The unfortunately-named RocketBootstrap creates a way for tweaks to look up and reference system addresses that are otherwise sandboxed in iOS 7. It was basic functionality needed for Activator, but it will be useful for many tweaks so rather than incorporate it into Activator itself the author made it into a library any developer could rely on. The list goes on.
So before you start complaining about dependencies or avoiding tweaks that require them, take a moment to consider what those dependencies represent: a maturing ecosystem with a more efficient architecture where people work together to avoid duplicating work and creating conflicts, to make the creation and updating of tweaks faster and more efficient and, yes, even to reduce the impact of multiple tweaks on your phone's performance.
Last edited: