Getting Started

This section guides you to get started with the Smarter AI camera platform

Smarter AI Account

To start developing your application over the Smarter AI camera platform, you need an account with Smarter AI.

Contact us for your account.

We will create your account in our platform and provide you the following to start :

1. Your tenant Id
With this, we identify you in our platform. You will need to use this with the Smarter AI platform libraries.

2. Smarter AI Dashboard credentials
Smarter AI Dashboard is a web application that enables you to manage and monitor your smart devices, users, events and streams.
With the provided dashboard credentials, you will be able to login into the dashboard.

3. Smarter AI Platform Libraries
These libraries expose API to your application and provides connecting, communication, and streaming capabilities between the camera and mobile devices.

System Requirements

📘

Android

Smarter AI platform libraries are implemented in C++ and provides Java JNI wrapper for the application layer. Basically, there is no android specific API limitations at Smarter AI platform library side.

But you would use android MediaCodec for decoding the streaming data. This would limit you to API level 16.

So, our recommended minimumSdkVersion is 16 (Android Jelly Bean 4.1). By setting the minimumSdkVersion to 16, you would cover 99.6% devices in the market.

📘

iOS

Smarter AI platform libraries are implemented in C++. So at present, Objective C is the first choice to develop your iOS application. You may use Swift, but in that case, you would need to create your own C wrappers of C++ libraries.
Basically, there is no iOS specific API limitations at the Smarter AI platform library side.

For the iOS application, hardware decoder is used to decode camera streaming data. So minimum required OS version is ios(8.0).

For better performance our recommended minimum OS version is ios(10.0) and Xcode version is 10.0.

Libraries

Here, we introduce you to the Smarter AI platform libraries and guide you through integrating it into your project.

📘

Android

About Platform Libraries

Smarter AI platform libraries consists of :

1. Access Library
This library serves the purpose of ensuring a simple and secure communication with the Smarter AI camera platform
by exposing API to the application layer through Access.java JNI wrapper.

2. Stream Library
The stream library is responsible for providing streaming facility from your smart camera to the app.
It exposes its functionality through Stream.java and SipJniWrapper.java JNI wrappers.

3. Connect Library
It's an internal library used by the stream library which facilitates stable connection
between the streaming device and the stream viewer device.
You won't have to use it directly but you will import it into the app.

Linking Libraries in App

Smarter AI platform libraries are available in the Smarter AI Core SDK for android.
In your project level build.gradle file, add the following lines inside the repositories block.

allprojects {
    repositories {
        google()
        jcenter()
        ...
        maven {
            url "http://65.52.189.0:8081/artifactory/gradle-dev-local"
            credentials {
                username = "username"
                password = "password"
            }
        }
    }
}

For sake of security, we share the username and password privately. Contact us here to get the username and password and replace them in the credentials block.

In your app module level build.gradle file, under the 'dependencies' block, add the following implementation to load the library.

dependencies {
   implementation 'com.smarter.ai:core-sdk:1.0.3'
...
...
}

Replace the version with the latest Smarter AI Core SDK version. Contact us here to get the most recent version of Smarter AI Core SDK.

📘

iOS

About Platform Libraries

Smarter AI platform libraries consists of:

1. Access Library
This library serves the purpose of simple and secure communication with the Smarter AI camera platform
by exposing API to the application layer through Access.h.

2. Stream Library
The stream library is responsible for providing streaming facility from your smart camera to the app.
It exposes its functionality through Stream.h.

3. Connect Library
It's an internal library used by stream library which facilitates ensuring stable connection
between the streaming device and the stream viewer device.
You won't have to use it directly but import it into the app.

The Library Package

You will receive the library package as a zip folder.
After unzipping the folder, you will find the below file directory:

AnyConnectLibs
|_____include
|           |_____Access.h
|           |_____Stream.h
|           |_____AccessTypes.h
|
|_________lib
            |_____libacaccess.a
            |_____libacconnect.a
            |_____libacstream.a

Linking Libraries in App

1. Placing header(.h) files

In the project directory of your app, create a directory named include
and place the library headers in this directory. Or you can directly place the
library include folder in your project directory.

From Xcode Build Settings, add this include directory path to Header Search Paths lists.

Add Header Path

2. Placing lib(.a) files

In the project directory of your app, create a directory named lib,
place the libacaccess.a and libacstream.a files in this directory.
Or you can directly place the library lib folder in your project directory.

From Xcode Build Settings, add this lib directory path to Library Search Paths lists.

Add Library Path

3. Link binary in Xcode

From Xcode Build Phases, link libacaccess.a and libacstream.a binary files
in Link Binary With Libraries Phase.

4. Link dependency framework in Xcode

From Xcode Build Phases, link Smarter AI provided boost.framework and
systems VideoToolbox.framework in Link Binary With Libraries Phase.

VideoToolbox.framework is being used in Stream Library to decode received stream data.

Link Library