Hide navigation sidebar
Hide table of contents sidebar
Skip to content
Back to top
Toggle table of contents sidebar

# Overview

## Naming conventions

For the sake of clarity in this multi-language documentation, the following naming conventions have been adopted.

- Class, struct and enumeration names are written in PascalCase. Example: `License`.

- Class and struct member names are written in lowerCamelCase. Example: `activateSerialKey`

- Enumeration fields are written in lowerCamelCase. Example : `LicenseError.invalidLicense`.

Warning

The naming convention adopted in this documentation does not necessarily reflect the convention for a given programming language. More information is given below.

### Conventions per programming language

The following conventions apply:

Python

This SDK complies with the PEP 8 recommendations.

- Class, struct and enumeration names are written in PascalCase.

- Class and struct member names are written in snake_case.

- Enumeration fields are written in UPPER_CASE_WITH_UNDERSCORE.

Examples:

- Class name: `License`

- Function name: `activate_serial_key`

- Structure: `FacePoint`

- Enumeration field: `LicenseError.INVALID_LICENSE`

Dart

- Class, struct and enumeration names are written in PascalCase.

- Class and struct member names are written in lowerCamelCase.

- Enumeration fields are written in lowerCamelCase.

Examples:

- Class name: `License`

- Function name: `activateSerialKey`

- Structure: `FacePoint`

- Enumeration field: `LicenseError.invalidLicense`

C#

- Class, struct and enumeration names are written in PascalCase.

- Class and struct member names are written in PascalCase.

- Enumeration fields are written in PascalCase.

Examples:

- Class name: `License`

- Function name: `ActivateSerialKey`

- Structure: `FacePoint`

- Enumeration field: `LicenseError.InvalidLicense`

Java

- Class name: `License`

- Function name: `activateSerialKey`

- Structure: `FacePoint`

- Enumeration field: `LicenseError.INVALID_LICENSE`

Kotlin

- Class name: `License`

- Function name: `activateSerialKey`

- Structure: `FacePoint`

- Enumeration field: `LicenseError.INVALID_LICENSE`

Swift

- Class name: `License`

- Function name: `activateSerialKey`

- Structure: `FacePoint`

- Enumeration field: `LicenseError.invalidLicense`

C

- Class name: `id3License_`

- Function name: `id3License_ActivateSerialKey`

- Structure: `id3FacePoint`

- Enumeration field: `id3LicenseError_InvalidLicense`

Note

The C API implements pseudo object-oriented programming concepts where the object is passed explicitly to a member function as first parameter.

## Adding the library to your project

Windows

The SDK relies on native libraries that must be copied to a `bin` subdirectory within your project’s target directory.

The following libraries are necessary:

Library | Description
--- | ---
`id3Face.dll` | The main library for fingerprint processing and operations.

To automate the process within Visual Studio, add a pre-build event to your project:

- Right-click on your project in the Solution Explorer and select `Properties`.

- Go to the `Build Events` tab.

- In the `Pre-build event command line` box, enter the following command:

  >     mkdir $(TargetDir)bin
  >     xcopy /e /y $(SolutionDir)..\..\bin\*.dll $(TargetDir)\bin

This command copies all DLL files from the SDK’s native library directory to the `bin` subdirectory of your project’s target directory every time the project is built.

Ensure the path `$(SolutionDir)..\..\` is correctly adjusted to point to the location where the SDK’s native libraries are stored.

Linux

Add one of the following native library:

- `/bin/linux/x64/libid3Face.so`, or

- `/bin/linux/x64_gpu/libid3Face.so` for CUDA support.

Android

Include the AAR package to your project:

- `/bin/android/eu.id3.face.aar`

Apple

Include the package in your project:

1. Unzip the Framework:

     Unzip the `/bin/apple/id3Face.xcframework.zip` package to access the `id3Face.xcframework` directory.

2. Add the Framework to Xcode:

     Open your Xcode project and drag the `id3Face.xcframework` directory into the “Frameworks, Libraries, and Embedded Content” section.

3. Update Build Settings:

     Ensure that `id3Face.xcframework` is listed under “Link Binary with Libraries” in your target’s “Build Phases”. Set the “Framework Search Paths” in your target’s “Build Settings” to include the path to `id3Face.xcframework`.

4. Configure Code Signing:

     Adjust the code signing settings in Xcode to allow the app to run with the included framework.

5. Handle Runtime Dependencies:

     Ensure any additional runtime dependencies required by `id3Face.xcframework` are included.

## Using the SDK in your project

Python

    import id3face

Dart

    import 'package:id3_face/id3_face.dart';

C#

    using id3.Face;

Java

    import eu.id3.face;

C

    #include "id3Face.h"