SwiftベースのiOSゲームアプリに、プレイ動画共有サービスのKamcordを組み込んでみた
Swiftで書いたiOS Gameアプリに、Kamcordを組み込んでみた。
Kamcordは、プレイ動画の共有サービスで、Android/iOSの両方をサポートしている。
ゲームセンターで上手い人がプレイしている時は、その周りに多くの人が集まって見てたよね。「なるほど、この難しいレベルは、あーやって攻略するんだー」とか、上手い人からいろいろテクニックを盗んだ記憶があるよね。当然、ゲームを上手にプレイ出来たら、友達に見せびらかしたい。「ねー、見て見て見て、俺ってすごくなーい?」。そんなバイラル効果を狙ったサービスだ。
まず、Swiftで書いたコードからObjective-CのAPIをコールする方法を勉強する必要があったので、以下のページを参考に、WrapperクラスのKamcordBridgeクラスを作って実装したので、備忘録として残しておこうと思う。
How to call Objective C code from Swift - Stack Overflow
Step1. Kamcord.frameworkをプロジェクトに組み込む。以下に従えば簡単。
https://docs.kamcord.com/documents/platform/ios/getting-started/
Step2. Kamcord.frameworkのObjective-C APIをコールするために、KamcordBridgeクラスをプロジェクトに作成する。
ゲーム自体はSwiftベースだが、KamcordBridgeクラスのファイルはObjective-Cで作る。
すると、Bridging-Headerを作成するか,Xcodeに聞かれるので、Yesとする。すると、以下のように勝手に(ProjectName)-Bridging-Header.hが作成される。
ここに、作成したクラスヘッダを定義する。上記では、#import "KamcordBridge.h"
Step3. KamcordBridgeクラス内は、Objective-Cで書けるので、ここからKamcord.frameworkのAPIを呼ぶぞ。
以下のような感じ。
//KamcordBridge.h
#Import <Foundation/Foundation.h>
#import <Kamcord/Kamcord.h>
@interface KamcordBridge : NSObject
- (void)setDeveloperKey:(NSString *)key
developerSecret:(NSString *)secret
appName:(NSString *)appName
parentViewController:(UIViewController *)parentViewController;
- (void)startRecording;
- (void)stopRecording;
- (void)showView;
@end
//KamcordBridge.mm
#import "KamcordBridge.h"
@implementation KamcordBridge
- (void)setDeveloperKey:(NSString *)key developerSecret:(NSString *)secret appName:(NSString *)appName
parentViewController:(UIViewController *)parentViewController {
[Kamcord setDeveloperKey:key developerSecret:secret appName:appName parentViewController:parentViewController];
}
- (void)startRecording {
[Kamcord startRecording];
}
-(void)stopRecording {
[Kamcord stopRecording];
}
-(void)showView {
[Kamcord showView];
}
@end
Step4. あとはSwiftのコードから、KamcordBrigeクラスのAPIを呼べるぞ。
ViewDidLoad()から、初期化のため、以下をコールする。
KamcordBridge().setDeveloperKey("test", developerSecret: "test", appName: "Test", parentViewController: self)
もちろん"Test"ではなく、KamcordのDashbordから入手した、自分のアプリ用のDeveloper Key, Secret, AppNameをセットしてくれ!
録画を開始するためには、以下のようにコールする。
KamcordBridge().startRecording()
録画を終了するためには、以下のようにコールする。
KamcordBridge().stopRecording()
んで、最後に録画したプレイ動画の共有用UIを以下のようにコールする。
KamcordBridge().showView()
プレイ後、以下のように表示されれば成功だぜ!