-
Notifications
You must be signed in to change notification settings - Fork 1
Frequently Asked Questions
What's the difference between Infinitum Core and Roboguice?
Roboguice is an excellent framework, but there are significant differences between it and Infinitum Core. Before we talk about the differences, let's note the similarities. Both allow you to perform dependency injection and both allow you to inject resources and views (Infinitum also supports layout injection). In order to do the latter, both require your Activities to extend a base Activity.
The difference between Infinitum Core and Roboguice in terms of dependency injection is that Infinitum is a little more transparent. It more closely resembles the Spring model. There's no need to extend an Application class and there's no need for module bindings. You just annotate your beans or declare them in XML and they are ready for injection. Additionally, Infinitum supports injection of fields, setters, and constructors. Roboguice doesn't make use of bytecode generation, while Infinitum uses Dexmaker. This allows it to do things like AOP as well, although this isn't required in Infinitum Core.
If Infinitum follows the Spring model, doesn't it incur an initialization cost?
Yes, the framework does require initialization. However, the startup time is not as long as you might expect. Startup on a typical Android device, such as the Samsung Galaxy Nexus, takes less than half a second, while on an emulator, it takes about 1.5 seconds. If component scanning is disabled, these times are reduced by about a quarter of a second.
How can I contribute to Infinitum?
Contributions are always welcome! If you discover a bug, submit an issue on GitHub. To submit patches or new features, fork the repository and submit a pull request for your changes.