Classes
The following classes are available globally.
-
See moreCLUReportComposeris a class responsible for composing final Clue report from many pieces/modules. This class initialize all recordable and info modules and actually start recording.CLUReportComposeralso callingaddNewFrameWithTimestamp:method fromCLURecordableModuleprotocol for every recordable module andrecordInfoDatamethod fromCLUInfoModuleprotocol for every info module.Declaration
Objective-C
@interface CLUReportComposer : NSObjectSwift
class CLUReportComposer : NSObject
-
CLUOptionsis a data model class to store all configurational variables during Clue framework setup and enable process. For now onlyemailproperty is available. If you need more configurational property which could be used during first setup - just subclass this classUsed in
See moreClueControllerconfiguration @code [[ClueController sharedInstance] enableWithOptions:]; Declaration
Objective-C
@interface CLUOptions : NSObjectSwift
class CLUOptions : NSObject
-
@brief
CLUTouchis a proxy for UITouch data and properties dictionary generator for this data.@discussion
CLUTouchis 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 classCLUTouchand interaction with it.Used in
See moreCLUGeneralGestureRecognizerin order to transfer UITouch to CLUTouch. AlsoCLUInteractionObserverDelegateprotocol requires CLUTouch instead of UITouchDeclaration
Objective-C
@interface CLUTouch : NSObjectSwift
class CLUTouch : NSObject
-
CLUDeviceInfoModuleis 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
-
See moreCLUExceptionInfoModuleis a info module (with static, one-time informations) for unexpected exception recording if occurred.Declaration
Objective-C
@interface CLUExceptionInfoModule : NSObject <CLUInfoModule>Swift
class CLUExceptionInfoModule : NSObject
-
CLUNetworkModuleis a subclass ofCLUObserveModulefor network operations recording (like responses, requests and errors) for any specific time. It will listen for all network operations via customNSURLProtocolsubclass (seeCLUURLProtocol) andCLUURLProtocolwill send them toCLUNetworkObserverDelegatemethods soCLUNetworkModulecan add this data to buffer with specific timestampDeclaration
Objective-C
@interface CLUNetworkModule : CLUObserveModule <CLUNetworkObserverDelegate>Swift
class CLUNetworkModule : CLUObserveModule
-
See moreCLUObserveModuleis a base class for all modules which needs to observe their data (exceptCLUVideoModulemodule) and record them only if new data has arrived (likeCLUNetworkModuleorCLUUserInteractionModulemodules) or something changed with next frame iteration (likeCLUViewStructureModulemodule). This class is responsible for thread safety of new data writing via Writers and Data buffer management.Declaration
Objective-C
@interface CLUObserveModule : NSObject <CLURecordableModule>Swift
class CLUObserveModule : NSObject
-
CLUUserInteractionModuleis a subclass ofCLUObserveModulefor user interactions recording (like touches) for any specific time. It will listen for all gestures/touches via custom gesture recognizer and recognizer will send them toCLUInteractionObserverDelegatemethods soCLUUserInteractionModulecan add this data to buffer with specific timestampDeclaration
Objective-C
@interface CLUUserInteractionModule : CLUObserveModule <CLUInteractionObserverDelegate>Swift
class CLUUserInteractionModule : CLUObserveModule
-
See moreCLUVideoModuleis a class (module) for screen recording which implementsCLURecordableModuleprotocol. It’s responsible for thread safety while video recording, operations withCVPixelBufferRefand current view hierarchy drawing (see[UIView drawViewHierarchyInRect:afterScreenUpdates:]) and frames overlapping while recording.Declaration
Objective-C
@interface CLUVideoModule : NSObject <CLURecordableModule>Swift
class CLUVideoModule : NSObject
-
CLUViewStructureModuleis a subclass ofCLUObserveModulefor 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). AlsoCLUViewStructureModulekeep track of last recorded view structure so it won’t record same view structure twice.Declaration
Objective-C
@interface CLUViewStructureModule : CLUObserveModuleSwift
class CLUViewStructureModule : CLUObserveModule
-
CLUMailDelegateis 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 fileDeclaration
Objective-C
@interface CLUMailDelegate : NSObject <MFMailComposeViewControllerDelegate>Swift
class CLUMailDelegate : NSObject, MFMailComposeViewControllerDelegate
-
See moreCLUMailHelperis class responsible for mail sending process. Set mail subject, add .clue report zip file in attachment and show mail compose modal view for specific viewControllerDeclaration
Objective-C
@interface CLUMailHelper : NSObjectSwift
class CLUMailHelper : NSObject
-
See moreCLURecordIndicatorViewManageris a class which showCLURecordIndicatorViewview object for specific amount of time, hide it and switch modes ofCLURecordIndicatorView. Also return useful view related information like current top view controller in stack.Declaration
Objective-C
@interface CLURecordIndicatorViewManager : NSObjectSwift
class CLURecordIndicatorViewManager : NSObject
-
CLUReportFileManageris 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
See moreInfoandModulesInfodirectory contains all static modules like: info_device.json (with statis device information)Modulesdirectory 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).Declaration
Objective-C
@interface CLUReportFileManager : NSObjectSwift
class CLUReportFileManager : NSObject
-
See moreCLUGeneralGestureRecognizeris a subclass ofUIGestureRecognizerto intercept all user gestures and interactions during report recording and redirect them to appropriate delegate method fromCLUInteractionObserverDelegateDeclaration
Objective-C
@interface CLUGeneralGestureRecognizer : UIGestureRecognizerSwift
class CLUGeneralGestureRecognizer : UIGestureRecognizer
-
CLUURLProtocolis a subclass of abstractNSURLProtocolto intercept all network requests during report recording and redirect them to appropriate delegate method fromCLUNetworkObserverDelegateusingCLUURLProtocolConfigurationsingleton classDeclaration
Objective-C
@interface CLUURLProtocol : NSURLProtocol <NSURLSessionDelegate, NSURLSessionTaskDelegate, NSURLSessionDataDelegate>Swift
class CLUURLProtocol : URLProtocol, URLSessionDelegate, URLSessionTaskDelegate, URLSessionDataDelegate -
See moreCLUURLProtocolConfigurationis a singleton class which keeps custom network configuration (likeCLUNetworkObserverDelegatedelegate) Used for additional configuration ofCLUURLProtocolwhich intercepting all network communication.Declaration
Objective-C
@interface CLUURLProtocolConfiguration : NSObjectSwift
class CLUURLProtocolConfiguration : NSObject
-
See moreCLURecordIndicatorViewis a view object to indicate recording process to user, will appear at the top of the screen, right after statusBarDeclaration
Objective-C
@interface CLURecordIndicatorView : UIViewSwift
class CLURecordIndicatorView : UIView
-
See moreCLUDataWriterclass 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 activeDeclaration
Objective-C
@interface CLUDataWriter : NSObject <CLUWritable, NSStreamDelegate>Swift
class CLUDataWriter : NSObject
-
See moreCLUVideoWriterclass 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 activeDeclaration
Objective-C
@interface CLUVideoWriter : NSObject <CLUWritable>Swift
class CLUVideoWriter : NSObject
-
See moreClueControlleris 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.Declaration
Objective-C
@interface ClueController : NSObjectSwift
class ClueController : NSObject
Classes Reference