Copyright @ NIFTY Corporation All Rights
ニフティクラウド mobile backend
エヴァンジェリスト 中津川篤司
Cocos2d-xとNCMBを
組み合わせるには
Copyright @ NIFTY Corporation All Rights
自己紹介
2
@moongift
fb.me/moongift.fan
中津川 篤司
株式会社MOONGIFT 代表取締役
ニフティクラウド mobile backend
          エヴァンジェリスト
2004年1月よりオープンソース・ソフトウェアを毎
日紹介するブログ MOONGIFT を運営。
http://www.moongift.jp/
Copyright @ NIFTY Corporation All Rights
=アプリ開発を高速化するサービス
ニフティクラウド mobile
backendとは?
Copyright @ NIFTY Corporation All Rights
ニフティクラウド mobile backnend
について
4
@niftycloud_mb
fb.me/niftycloudmb
ニフティクラウド mobile backend
ニフティ株式会社の提供するmBaaS
スマートフォン/Webアプリのバックエンド(サー
バサイド)の仕組みを一括提供
http://mb.cloud.nifty.com/
Copyright @ NIFTY Corporation All Rights
アプリ開発とサーバ
サーバ側の開発コスト
サーバのメンテナンス
セキュリティ対策
!
Copyright @ NIFTY Corporation All Rights
アプリとNCMBの関係
!
メンテナンスフリー
スケールフリー
無料から利用できる
Copyright @ NIFTY Corporation All Rights
データストア
7
データストア
テキスト、数字、位置
情報などを保存できる
データベース
ハイスコアの保存・ランキング
ユーザ間メッセージなど
Copyright @ NIFTY Corporation All Rights
ファイルストア
8
ファイルストア
写真、音楽、動画、
CSV、HTMLファイル
などを保存
イベント表示用HTML
ゲームで使う画像、音楽、動画リソースなど
Copyright @ NIFTY Corporation All Rights
ユーザ管理
9
認証(メール/ユーザID)
メールアドレス確認/パスワード
リマインダーメール
ソーシャルサービスでのログイン
Copyright @ NIFTY Corporation All Rights
プッシュ通知機能
10
!
Web管理画面から作成 iOS/Android共通
位置情報で絞り込み 開封率グラフ
Copyright @ NIFTY Corporation All Rights
対応プラットフォーム
11
Cocos2d-x … 未対応
Copyright @ NIFTY Corporation All Rights
Cocos2d-x対応
12
Cocos2d-js でいける?
C++にポーティング?
Cocos2d-xアプリにプッ
シュ通知入れてるよ
きたこれ!
Copyright @ NIFTY Corporation All Rights
Cocos2d-x アプリに
NCMBのプッシュ通知
を組み込む方法
Copyright @ NIFTY Corporation All Rights
iOSの場合
14
$ cocos new NCMBProject -p jp.moongift.ncmb.cocos2d -l cpp
Copyright @ NIFTY Corporation All Rights 15
• SystemConfiguration.framework
• MobileCoreServices.framework
• CoreLocation.framework
Frameworkのインポート
Copyright @ NIFTY Corporation All Rights 16
AppController.mmの修正
#import "AppDelegate.h"
#import "RootViewController.h"
#import <NCMB/NCMB.h> // 追加
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)

 launchOptions {
:
// 追加。ニフティクラウド mobile backendの
  初期化処理です。
[NCMB setApplicationKey: @"APP_KEY" 

              clientKey:@"CLIENT_KEY"];
Copyright @ NIFTY Corporation All Rights 17
AppController.mmの修正
UIUserNotificationType type = UIUserNotificationTypeAlert ¦
UIUserNotificationTypeBadge ¦
UIUserNotificationTypeSound;
UIUserNotificationSettings *setting = [UIUserNotificationSettings 

      settingsForTypes:type categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:setting];
[[UIApplication sharedApplication] registerForRemoteNotifications];
:
// 追加。デバイストークンの保存処理です。
- (void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NCMBInstallation *currentInstallation = [NCMBInstallation
currentInstallation];
[currentInstallation setDeviceTokenFromData:deviceToken];
[currentInstallation save:nil];
}
Copyright @ NIFTY Corporation All Rights 18
Google Play Servive
Copyright @ NIFTY Corporation All Rights 19
AndroidManifest.xmlの修正
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="jp.moongift.ncmb.cocos2d"
android:versionCode="1"
android:versionName="1.0"
android:installLocation="auto">
:
<!-- 以下を追加 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:name="(APPLICATION_ID).permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="(APPLICATION_ID).permission.C2D_MESSAGE" />
<application android:label="@string/app_name" android:icon="@drawable/icon">
Copyright @ NIFTY Corporation All Rights 20
AndroidManifest.xmlの修正
<!-- 追加 -->
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
:
<receiver
android:name="com.nifty.cloud.mb.NCMBGCMBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="(APPLICATION_ID)" />
</intent-filter>
</receiver>
</application>
:
</manifest>
Copyright @ NIFTY Corporation All Rights
// 追加
import android.os.Bundle;
import java.util.*;
import com.nifty.cloud.mb.*;
import com.google.android.gms.common.*;
import android.content.Intent;
21
AppActivity.javaの修正
Copyright @ NIFTY Corporation All Rights
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
NCMB.initialize(this, APP_KEY", "CLIENT_KEY");
final NCMBInstallation instllation = NCMBInstallation.getCurrentInstallation();
instllation.getRegistrationIdInBackground("SENDER_ID",
                new RegistrationCallback() {
@Override
public void done(NCMBException e) {
instllation.save();
}
});
NCMBPush.setDefaultPushCallback(this, AppActivity.class);
Intent intent = new Intent(this, AppActivity.class);
NCMBAnalytics.trackAppOpened(intent);
}
22
AppActivity.javaの修正
Copyright @ NIFTY Corporation All Rights 23
管理画面で必要なもの
証明書
API key (Server)
Copyright @ NIFTY Corporation All Rights 24
プッシュ通知
デモ
Copyright @ NIFTY Corporation All Rights
詳しくはQiitaで
25
http://qiita.com/niftycloud_mb
Copyright @ NIFTY Corporation All Rights 26
問題点
•プッシュ通知を受け取って、どこを
開くかはObj-C/Javaで書く必要あり
•データ、ファイルストア、ログインな
どは未対応
Copyright @ NIFTY Corporation All Rights 27
宣伝
Basicプラン
200万!
200万!
5GB!
月額
無料
!
Copyright © NIFTY Corporation All Rights Reserved. ‹#›
開発で困ったら?
bit.ly/ncmb-community
@niftycloud_mb
https://fb.me/niftycloudmb

Ncmb勉強会 #8 cocos2d x 資料「Cocos2d-xとNCMBを組み合わせるには」

  • 1.
    Copyright @ NIFTYCorporation All Rights ニフティクラウド mobile backend エヴァンジェリスト 中津川篤司 Cocos2d-xとNCMBを 組み合わせるには
  • 2.
    Copyright @ NIFTYCorporation All Rights 自己紹介 2 @moongift fb.me/moongift.fan 中津川 篤司 株式会社MOONGIFT 代表取締役 ニフティクラウド mobile backend           エヴァンジェリスト 2004年1月よりオープンソース・ソフトウェアを毎 日紹介するブログ MOONGIFT を運営。 http://www.moongift.jp/
  • 3.
    Copyright @ NIFTYCorporation All Rights =アプリ開発を高速化するサービス ニフティクラウド mobile backendとは?
  • 4.
    Copyright @ NIFTYCorporation All Rights ニフティクラウド mobile backnend について 4 @niftycloud_mb fb.me/niftycloudmb ニフティクラウド mobile backend ニフティ株式会社の提供するmBaaS スマートフォン/Webアプリのバックエンド(サー バサイド)の仕組みを一括提供 http://mb.cloud.nifty.com/
  • 5.
    Copyright @ NIFTYCorporation All Rights アプリ開発とサーバ サーバ側の開発コスト サーバのメンテナンス セキュリティ対策 !
  • 6.
    Copyright @ NIFTYCorporation All Rights アプリとNCMBの関係 ! メンテナンスフリー スケールフリー 無料から利用できる
  • 7.
    Copyright @ NIFTYCorporation All Rights データストア 7 データストア テキスト、数字、位置 情報などを保存できる データベース ハイスコアの保存・ランキング ユーザ間メッセージなど
  • 8.
    Copyright @ NIFTYCorporation All Rights ファイルストア 8 ファイルストア 写真、音楽、動画、 CSV、HTMLファイル などを保存 イベント表示用HTML ゲームで使う画像、音楽、動画リソースなど
  • 9.
    Copyright @ NIFTYCorporation All Rights ユーザ管理 9 認証(メール/ユーザID) メールアドレス確認/パスワード リマインダーメール ソーシャルサービスでのログイン
  • 10.
    Copyright @ NIFTYCorporation All Rights プッシュ通知機能 10 ! Web管理画面から作成 iOS/Android共通 位置情報で絞り込み 開封率グラフ
  • 11.
    Copyright @ NIFTYCorporation All Rights 対応プラットフォーム 11 Cocos2d-x … 未対応
  • 12.
    Copyright @ NIFTYCorporation All Rights Cocos2d-x対応 12 Cocos2d-js でいける? C++にポーティング? Cocos2d-xアプリにプッ シュ通知入れてるよ きたこれ!
  • 13.
    Copyright @ NIFTYCorporation All Rights Cocos2d-x アプリに NCMBのプッシュ通知 を組み込む方法
  • 14.
    Copyright @ NIFTYCorporation All Rights iOSの場合 14 $ cocos new NCMBProject -p jp.moongift.ncmb.cocos2d -l cpp
  • 15.
    Copyright @ NIFTYCorporation All Rights 15 • SystemConfiguration.framework • MobileCoreServices.framework • CoreLocation.framework Frameworkのインポート
  • 16.
    Copyright @ NIFTYCorporation All Rights 16 AppController.mmの修正 #import "AppDelegate.h" #import "RootViewController.h" #import <NCMB/NCMB.h> // 追加 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)
  launchOptions { : // 追加。ニフティクラウド mobile backendの   初期化処理です。 [NCMB setApplicationKey: @"APP_KEY" 
               clientKey:@"CLIENT_KEY"];
  • 17.
    Copyright @ NIFTYCorporation All Rights 17 AppController.mmの修正 UIUserNotificationType type = UIUserNotificationTypeAlert ¦ UIUserNotificationTypeBadge ¦ UIUserNotificationTypeSound; UIUserNotificationSettings *setting = [UIUserNotificationSettings 
       settingsForTypes:type categories:nil]; [[UIApplication sharedApplication] registerUserNotificationSettings:setting]; [[UIApplication sharedApplication] registerForRemoteNotifications]; : // 追加。デバイストークンの保存処理です。 - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { NCMBInstallation *currentInstallation = [NCMBInstallation currentInstallation]; [currentInstallation setDeviceTokenFromData:deviceToken]; [currentInstallation save:nil]; }
  • 18.
    Copyright @ NIFTYCorporation All Rights 18 Google Play Servive
  • 19.
    Copyright @ NIFTYCorporation All Rights 19 AndroidManifest.xmlの修正 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="jp.moongift.ncmb.cocos2d" android:versionCode="1" android:versionName="1.0" android:installLocation="auto"> : <!-- 以下を追加 --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <permission android:name="(APPLICATION_ID).permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="(APPLICATION_ID).permission.C2D_MESSAGE" /> <application android:label="@string/app_name" android:icon="@drawable/icon">
  • 20.
    Copyright @ NIFTYCorporation All Rights 20 AndroidManifest.xmlの修正 <!-- 追加 --> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> : <receiver android:name="com.nifty.cloud.mb.NCMBGCMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="(APPLICATION_ID)" /> </intent-filter> </receiver> </application> : </manifest>
  • 21.
    Copyright @ NIFTYCorporation All Rights // 追加 import android.os.Bundle; import java.util.*; import com.nifty.cloud.mb.*; import com.google.android.gms.common.*; import android.content.Intent; 21 AppActivity.javaの修正
  • 22.
    Copyright @ NIFTYCorporation All Rights protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); NCMB.initialize(this, APP_KEY", "CLIENT_KEY"); final NCMBInstallation instllation = NCMBInstallation.getCurrentInstallation(); instllation.getRegistrationIdInBackground("SENDER_ID",                 new RegistrationCallback() { @Override public void done(NCMBException e) { instllation.save(); } }); NCMBPush.setDefaultPushCallback(this, AppActivity.class); Intent intent = new Intent(this, AppActivity.class); NCMBAnalytics.trackAppOpened(intent); } 22 AppActivity.javaの修正
  • 23.
    Copyright @ NIFTYCorporation All Rights 23 管理画面で必要なもの 証明書 API key (Server)
  • 24.
    Copyright @ NIFTYCorporation All Rights 24 プッシュ通知 デモ
  • 25.
    Copyright @ NIFTYCorporation All Rights 詳しくはQiitaで 25 http://qiita.com/niftycloud_mb
  • 26.
    Copyright @ NIFTYCorporation All Rights 26 問題点 •プッシュ通知を受け取って、どこを 開くかはObj-C/Javaで書く必要あり •データ、ファイルストア、ログインな どは未対応
  • 27.
    Copyright @ NIFTYCorporation All Rights 27 宣伝 Basicプラン 200万! 200万! 5GB! 月額 無料 !
  • 28.
    Copyright © NIFTYCorporation All Rights Reserved. ‹#› 開発で困ったら? bit.ly/ncmb-community
  • 29.