Skip to content
Russ Frank edited this page Jan 28, 2014 · 7 revisions

Components can be loaded by any channel to display data. They must:

  • Expose a class which inherits from UIViewController which can be set as the center of a JASidePanelController. Should end in Component, i.e. RUInfoComponent.
  • Have a delegate protocol header which specifies that - (void) onMenuButtonTapped should be implemented, which is called when the top left menu button is tapped. If this selector isn't responded to by the delegate or the delegate is nil, the button can be omitted.
  • Fill the whole screen. Since they're in the center of a JASidePanelController they will fill the area beneath the status bar; it is the responsibility of the component to place itself in an UINavigationController, for ex. by having the Component class inherit from UINavigationController then instantiate the ViewController which displays content and push it into the NavigationController, or otherwise handle that bit of space.
  • Be in a CocoaPod that is then submitted to either the main CocoaPods spec repository or the private RUMobile specs repository. It's likely that we'll want it in the private specs repository unless it's likely that this component can be used in other apps. Information on using a private specs repo can be found here. Information on making a spec file can be found here.
  • Implement an initialization selector of the form - (id) initWithDelegate: (id <ComponentDelegate>) delegate options: (NSDictionary *) options

We are currently using Xcode 5 and targeting iOS 7. We are not supporting iOS versions <7.

Clone this wiki locally