Documentation Menu

Release date: June 23th, 2017

What’s New

  • Store resources (patterns and dictionaries) outside the application package/bundle

    Starting from this release, developers can store resources (patterns and dictionaries) outside the application package/bundle: we added a new engine setting that specifies the path to a custom directory with the necessary resources. Please see the EngineSettings interface (Android) and the RTREngineSettings class (iOS) descriptions for more details.

  • Stop supporting iOS 7

    Starting from this release RTR SDK no longer officially supports iOS 7.

Technical preview

Data Capture interfaces

This release contains a beta version of new interfaces using which developers are able to implement simple Data Capture scenarios:

  • extract one field which can be matched by a regular expression
  • extract several fields one-by-one

Developer only needs to specify the regular expression that matches the target field and, if necessary, the algorithm for result validation (for example, it is useful for extraction of fields that have a checksum). Then, when the end user points the camera at the text, RTR SDK will extract only the field which is matched by the regular expression. In the case when the validation rule for the result is also specified, RTR SDK will extract the text only if the result meets this rule.

For example, the following code snippet extracts some emails (.com, .ru or .ua domains):


IDataCaptureService dataCaptureService = engine.createDataCaptureService( "", dataCaptureCallback );
IDataCaptureProfileBuilder profileBuilder = dataCaptureService.configureDataCaptureProfile();
profileBuilder.addScheme( "SAMPLE" ).addField( "EMAIL" ).setRegEx( "[a-z_]+@[a-z\\x2D]+\\.(com|ru|ua)");


id<RTRDataCaptureService> service = [engine createDataCaptureServiceWithDelegate:self profile:nil];
id<RTRDataCaptureProfileBuilder> builder = [service configureDataCaptureProfile];
[builder setRecognitionLanguages:[NSSet setWithObjects:@"English", nil]];
id<RTRDataSchemeBuilder> scheme = [builder createSchemeWithId:@"Sample" name:@"Scheme Name"];
[scheme addField:@"Email" name:@"E-mail" regEx:@"[a-z_]+@[a-z\\x2D]+\\.(com|ru|ua)"  predicateBlock:nil];
[builder checkAndApply];

Important! If two or more matches are found for the specified regular expression, the engine will extract only the first one.


  • Android and iOS
    • The recognition method crashes during processing of specific contexts.