Classes

The following classes are available globally.

  • CLUReportComposer is a class responsible for composing final Clue report from many pieces/modules. This class initialize all recordable and info modules and actually start recording. CLUReportComposer also calling addNewFrameWithTimestamp: method from CLURecordableModule protocol for every recordable module and recordInfoData method from CLUInfoModule protocol for every info module.

    See more

    Declaration

    Objective-C

    @interface CLUReportComposer : NSObject

    Swift

    class CLUReportComposer : NSObject
  • CLUOptions is a data model class to store all configurational variables during Clue framework setup and enable process. For now only email property is available. If you need more configurational property which could be used during first setup - just subclass this class

    Used in ClueController configuration @code [[ClueController sharedInstance] enableWithOptions:];

    See more

    Declaration

    Objective-C

    @interface CLUOptions : NSObject

    Swift

    class CLUOptions : NSObject
  • @brief CLUTouch is a proxy for UITouch data and properties dictionary generator for this data.

    @discussion CLUTouch is a data model to store UITouch’s data in appropriate way. Since the system reuse UITouch object with each user interaction we can’t just store in in out collection in order to generate their properties data dictionary (via UITouch category) and add this data to final report file. Instead we have to transfer UITouch values to our custom class CLUTouch and interaction with it.

    Used in CLUGeneralGestureRecognizer in order to transfer UITouch to CLUTouch. Also CLUInteractionObserverDelegate protocol requires CLUTouch instead of UITouch

    See more

    Declaration

    Objective-C

    @interface CLUTouch : NSObject

    Swift

    class CLUTouch : NSObject
  • CLUDeviceInfoModule is a info module (with static, one-time informations) for current devices’ information recording on start.

    Declaration

    Objective-C

    @interface CLUDeviceInfoModule : NSObject <CLUInfoModule>

    Swift

    class CLUDeviceInfoModule : NSObject
  • CLUExceptionInfoModule is a info module (with static, one-time informations) for unexpected exception recording if occurred.

    See more

    Declaration

    Objective-C

    @interface CLUExceptionInfoModule : NSObject <CLUInfoModule>

    Swift

    class CLUExceptionInfoModule : NSObject
  • CLUVideoModule is a class (module) for screen recording which implements CLURecordableModule protocol. It’s responsible for thread safety while video recording, operations with CVPixelBufferRef and current view hierarchy drawing (see [UIView drawViewHierarchyInRect:afterScreenUpdates:]) and frames overlapping while recording.

    See more

    Declaration

    Objective-C

    @interface CLUVideoModule : NSObject <CLURecordableModule>

    Swift

    class CLUVideoModule : NSObject
  • CLUViewStructureModule is a subclass of CLUObserveModule for view hierarchy recording for any specific time. It will record all views currently present on the top view controller (properties of those views and their subviews as well). Also CLUViewStructureModule keep track of last recorded view structure so it won’t record same view structure twice.

    Declaration

    Objective-C

    @interface CLUViewStructureModule : CLUObserveModule

    Swift

    class CLUViewStructureModule : CLUObserveModule
  • CLUMailDelegate is delegate class to handle responses/events from mail composer modal view. For report mail sending. If mail sending was successful - remove old report .clue file and report .zip file

    Declaration

    Objective-C

    @interface CLUMailDelegate : NSObject <MFMailComposeViewControllerDelegate>

    Swift

    class CLUMailDelegate : NSObject, MFMailComposeViewControllerDelegate
  • CLUMailHelper is class responsible for mail sending process. Set mail subject, add .clue report zip file in attachment and show mail compose modal view for specific viewController

    See more

    Declaration

    Objective-C

    @interface CLUMailHelper : NSObject

    Swift

    class CLUMailHelper : NSObject
  • CLURecordIndicatorViewManager is a class which show CLURecordIndicatorView view object for specific amount of time, hide it and switch modes of CLURecordIndicatorView. Also return useful view related information like current top view controller in stack.

    See more

    Declaration

    Objective-C

    @interface CLURecordIndicatorViewManager : NSObject

    Swift

    class CLURecordIndicatorViewManager : NSObject
  • CLUReportFileManager is a singleton class responsible for managing final report .clue file and interact which it on file system level

    .clue file is a package consists of two subdirectories Info and Modules Info directory contains all static modules like: info_device.json (with statis device information) Modules directory contains all real-time, recordable modules like: module_interaction.json (with all user touches), module_network.json (with all network communications), module_view.json (with all view mutation), module_video.mp4 (with screen cast).

    See more

    Declaration

    Objective-C

    @interface CLUReportFileManager : NSObject

    Swift

    class CLUReportFileManager : NSObject
  • CLUGeneralGestureRecognizer is a subclass of UIGestureRecognizer to intercept all user gestures and interactions during report recording and redirect them to appropriate delegate method from CLUInteractionObserverDelegate

    See more

    Declaration

    Objective-C

    @interface CLUGeneralGestureRecognizer : UIGestureRecognizer

    Swift

    class CLUGeneralGestureRecognizer : UIGestureRecognizer
  • CLUURLProtocol is a subclass of abstract NSURLProtocol to intercept all network requests during report recording and redirect them to appropriate delegate method from CLUNetworkObserverDelegate using CLUURLProtocolConfiguration singleton class

    Declaration

    Objective-C

    @interface CLUURLProtocol
        : NSURLProtocol <NSURLSessionDelegate, NSURLSessionTaskDelegate,
                         NSURLSessionDataDelegate>

    Swift

    class CLUURLProtocol : URLProtocol, URLSessionDelegate, URLSessionTaskDelegate, URLSessionDataDelegate
  • CLUURLProtocolConfiguration is a singleton class which keeps custom network configuration (like CLUNetworkObserverDelegate delegate) Used for additional configuration of CLUURLProtocol which intercepting all network communication.

    See more

    Declaration

    Objective-C

    @interface CLUURLProtocolConfiguration : NSObject

    Swift

    class CLUURLProtocolConfiguration : NSObject
  • CLURecordIndicatorView is a view object to indicate recording process to user, will appear at the top of the screen, right after statusBar

    See more

    Declaration

    Objective-C

    @interface CLURecordIndicatorView : UIView

    Swift

    class CLURecordIndicatorView : UIView
  • CLUDataWriter class which responsible for all writing and saving process for regular data stream into final .json file (inside .clue report file) Used with all Recordable Modules (like View Structure, Network and User Interactions) to add data while report recording is active

    See more

    Declaration

    Objective-C

    @interface CLUDataWriter : NSObject <CLUWritable, NSStreamDelegate>

    Swift

    class CLUDataWriter : NSObject
  • CLUVideoWriter class which responsible for all writing and saving process for video stream from device’s screen. Used with Video Module to record screen while report recording is active

    See more

    Declaration

    Objective-C

    @interface CLUVideoWriter : NSObject <CLUWritable>

    Swift

    class CLUVideoWriter : NSObject
  • ClueController is a singleton class and main Clue controller which is also the only public interface for framework user. Here user can turn on/off Clue and start/stop report recording.

    See more

    Declaration

    Objective-C

    @interface ClueController : NSObject

    Swift

    class ClueController : NSObject