Skip to content
Tyler Treat edited this page Jun 15, 2013 · 14 revisions

Infinitum is an extensible, modular framework enabling Android developers to quickly create rich, domain-driven applications while facilitating the convention-over-configuration paradigm.

Infinitum consists of various modules including ORM, AOP and Web. Infinitum Core is the required dependency which provides a number of different features like inversion of control, logging, and Activity injection. It's also required for all other framework modules.

This user guide is designed to provide explanation for some of the various framework core features and, perhaps more important, how to use them. For information on using other module features, see their respective wikis.

For information on what's in progress and what's planned for Infinitum, check out the Road Map. Also be sure to check out the FAQ.

Configuration

  • Resources
  • Components
    • InfinitumContext: stores framework configuration data read from infinitum.cfg.xml and provides a service-locator API for the bean factory.
    • ContextFactory: access point for retrieving InfinitumContext singletons.

Dependency Injection

  • Components
    • BeanFactoryPostProcessor: enables an InfinitumContext to have its BeanFactory modified after it has been configured.
    • BeanPostProcessor: allows for beans to be modified after they have been initialized by the container.
    • BeanProvider: allows beans to be programmatically registered at framework initialization.
  • Annotations
    • Component: indicates that the annotated class is a framework component, meaning it is a candidate for auto-detection.
    • Bean: specialization of the Component annotation indicating that the annotated class is a dependency-injection bean.
    • Scope: indicates the scope of a bean.
    • Autowired: indicates that the annotated constructor, setter, or field is to be injected by the framework.
    • PostConstruct: indicates that the annotated method is to be invoked after dependency injection.

Android Activities and Fragments

Infinitum provides a set of Activity and Fragment extensions which take care of framework initialization, provide support for resource injection and event binding, and expose an InfinitumContext.

  • Components
    • InfinitumActivity: Activity extension that provides support for resource injection and event binding.
    • InfinitumListActivity: ListActivity extension that provides support for resource injection and event binding.
    • InfinitumFragmentActivity: FragmentActivity extension that provides support for resource injection and event binding.
    • InfinitumFragment: Fragment extension that provides support for resource injection and event binding.
    • InfinitumListFragment: ListFragment extension that provides support for resource injection and event binding.
  • Annotations
    • InjectLayout: indicates that the annotated Activity is to be injected with a layout by the framework.
    • InjectView: indicates that the given field is to be injected with a view by the framework.
    • InjectResource: indicates that the given field is to be injected with a resource by the framework.
    • Bind: indicates that the annotated View is to be bound to a callback method for a given event type.

Logging

  • Components
    • Logger: prints log messages to Logcat but adheres to environment configuration.

Events

  • Components
    • EventSubscriber: allows for an implementing class to consume published events.
  • Annotations
    • Event: indicates that the annotated method should be published as a framework event when invoked.
    • EventPayload: indicates that the annotated parameter is part of an Event payload.

Getting Started