WebRTC SFU Sora Android SDK
Kotlin
Clone or download

README.md

Sora Android SDK

Release

CircleCI

Sora Android SDK は WebRTC SFU Sora の Android クライアントアプリケーションを開発するためのライブラリです。

使い方は Sora Android SDK ドキュメント を参照してください。

Table of Contents

About Support

Support for Sora Android SDK by Shiguredo Inc. are limited ONLY in JAPANESE through GitHub issues and there is no guarantee such as response time or resolution.

サポートについて

Sora Android SDK に関する質問・要望・バグなどの報告は Issues の利用をお願いします。 ただし、 Sora のライセンス契約の有無に関わらず、 Issue への応答時間と問題の解決を保証しませんのでご了承ください。

Sora Android SDK に対する有償のサポートについては現在提供しておりません。

システム条件

  • Android 4.1 以降 (シミュレーターは不可)
  • Android Studio 2.3.3 以降
  • WebRTC SFU Sora 18.02 以降

サンプルコード

Issues について

質問やバグ報告は本リポジトリの Issues でお願いします。 その際、 Issues 利用ガイドライン をご覧いただき、テンプレートに従って issue 登録してください。 テンプレートにある環境のバージョンは、 2.3.3 など メジャーバージョン、マイナーバージョン、メンテナンスバージョン まで含めて書いてください。 メンテナンスバージョンの違いでも Sora Android SDK の挙動が変わる可能性があります。

SDK 開発者向け

ブランチ利用方法

git-flow モデルに従います。

リリース

AAR のビルドは JitPack で行われるため、手動作業は tag をプッシュするだけです。 手順は次のとおりです。

git flow release start X.Y.Z
## edit CHANGES.md
git flow release finish X.Y.Z
git push --tags master develop

libwebrtc への依存

libwebrtc は、時雨堂ビルドの AAR を Jitpack.io から取得しています。

時雨堂ビルドの libwebrtc については以下のサイトを参照ください。

ローカルでのビルド

Android Studio を用いる場合、プロジェクトを Import して、gradle menu から Tasks > build > assemble(Release|Debug) を選択してビルドします。

コマンドライン(gradle wrapper)からビルドする場合、 local.properties で 必要な設定を行います。以下に例を示します。

ndk.dir=/Users/shino/Library/Android/sdk/ndk-bundle
sdk.dir=/Users/shino/Library/Android/sdk

(Android Studio で一度ビルドすれば作成されます)

その後、gradlew からタスクを実行できます。

% ./gradlew assembleRelease

ビルドされた AAR ファイルのパスは次のとおり: sora-android-sdk/build/outputs/aar/sora-android-sdk-release.aar

kdoc の生成

% rm -rf sora-android-sdk/build/dokka; gr assemble dokka

sora-android-sdk-doc を更新

% rm -rf /path/to/sora-android-sdk-doc/source/extra/apidoc
% cp -a path/to/sora-android-sdk/sora-android-sdk/build/dokka
      /path/to/sora-android-sdk-doc/source/extra/apidoc

sdk, doc を ~/g/ 以下にクローンしている場合のワンライナー

rm -rf sora-android-sdk/build/dokka && gr assemble dokka && rm -rf ~/g/sora-android-sdk-doc/source/extra/apidoc && cp -a ~/g/sora-android-sdk/sora-android-sdk/build/dokka  ~/g/sora-android-sdk-doc/source/extra/apidoc

JitPack

アプリケーションが JitPack https://jitpack.io/ 経由で 依存できるよう、 jitpack 関連の設定が入っています。

ビルドログと依存の書き方は https://jitpack.io/#shiguredo/sora-android-sdk で参照できます。 JitPack にログインするとビルドを削除することもできます。

JitPack のビルドは初めて参照されたときに実行されます。

JitPack 上でビルドされた AAR や POM、およびログは次のようにアクセスできます。

% curl -O https://jitpack.io/com/github/shiguredo/sora-android-sdk/441568d7ed/sora-android-sdk-441568d7ed-release.aar

% curl -O https://jitpack.io/com/github/shiguredo/sora-android-sdk/441568d7ed/sora-android-sdk-441568d7ed.pom

% curl -O https://jitpack.io/com/github/shiguredo/sora-android-sdk/441568d7ed/build.log

依存ライブラリの最新バージョンチェック

Gradle Versions Plugin https://github.com/ben-manes/gradle-versions-plugin が有効になっています。 次のコマンドでライブラリの最新バージョンが一覧されます。

./gradlew dependencyUpdates

最新に合わせられない原因がいつくかあります。

  • com.android.support 系は PermissionsDispatcher の依存に合わせる必要があるため 最新とは限りません

sora-android-sdk-samples を multi module に押し込む方法

sora-android-sdk と sora-android-sdk-samples が同じディレクトリ以下に clone されているとします。

  1. settings.gradle に以下を追加する::
file('../sora-android-sdk-samples').eachDir { dir ->
    if( new File(dir, "build.gradle").exists()) {
        include dir.name
        project(":${dir.name}").projectDir = dir
    }
}
  1. webrtc-video-effector/build.gradle の SDK 依存を project に変更する::
     dependencies {
         [snip]
         // api("com.github.shiguredo:sora-android-sdk:$sora_android_sdk_version@aar") {
         //    transitive = true
         // }
         api project(':sora-android-sdk')
  1. (optional) top level か samples の build.gradle に ext の設定を足す::
     ext.signaling_endpoint = "wss://sora.example.com/signaling"

Copyright

Copyright 2017, Shiguredo Inc. and Lyo Kato <lyo.kato at gmail.com>