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

29
Copyright @ NIFTY Corporation All Rights Reserved ニフティクラウド mobile backend エヴァンジェリスト 中津川篤司 Cocos2d-xとNCMBを 組み合わせるには

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

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

Copyright @ NIFTY Corporation All Rights Reserved

ニフティクラウド mobile backend エヴァンジェリスト 中津川篤司

Cocos2d-xとNCMBを 組み合わせるには

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

Copyright @ NIFTY Corporation All Rights Reserved

自己紹介

2

@moongift

fb.me/moongift.fan

中津川 篤司株式会社MOONGIFT 代表取締役ニフティクラウド mobile backend

          エヴァンジェリスト

2004年1月よりオープンソース・ソフトウェアを毎日紹介するブログ MOONGIFT を運営。

http://www.moongift.jp/

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

Copyright @ NIFTY Corporation All Rights Reserved

=アプリ開発を高速化するサービス

ニフティクラウド mobile backendとは?

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

Copyright @ NIFTY Corporation All Rights Reserved

ニフティクラウド mobile backnendについて

4

@niftycloud_mb

fb.me/niftycloudmb

ニフティクラウド mobile backendニフティ株式会社の提供するmBaaS

スマートフォン/Webアプリのバックエンド(サーバサイド)の仕組みを一括提供

http://mb.cloud.nifty.com/

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

Copyright @ NIFTY Corporation All Rights Reserved

アプリ開発とサーバ

サーバ側の開発コスト サーバのメンテナンス セキュリティ対策

!

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

Copyright @ NIFTY Corporation All Rights Reserved

アプリとNCMBの関係

!

メンテナンスフリー スケールフリー

無料から利用できる

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

Copyright @ NIFTY Corporation All Rights Reserved

データストア

7

データストア

テキスト、数字、位置情報などを保存できるデータベース

ハイスコアの保存・ランキング ユーザ間メッセージなど

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

Copyright @ NIFTY Corporation All Rights Reserved

ファイルストア

8

ファイルストア

写真、音楽、動画、CSV、HTMLファイルなどを保存

イベント表示用HTML ゲームで使う画像、音楽、動画リソースなど

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

Copyright @ NIFTY Corporation All Rights Reserved

ユーザ管理

9

認証(メール/ユーザID)

メールアドレス確認/パスワードリマインダーメール

ソーシャルサービスでのログイン

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

Copyright @ NIFTY Corporation All Rights Reserved

プッシュ通知機能

10

!

Web管理画面から作成 iOS/Android共通

位置情報で絞り込み 開封率グラフ

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

Copyright @ NIFTY Corporation All Rights Reserved

対応プラットフォーム

11

Cocos2d-x … 未対応

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

Copyright @ NIFTY Corporation All Rights Reserved

Cocos2d-x対応

12

Cocos2d-js でいける?

C++にポーティング?

Cocos2d-xアプリにプッシュ通知入れてるよ

きたこれ!

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

Copyright @ NIFTY Corporation All Rights Reserved

Cocos2d-x アプリに NCMBのプッシュ通知 を組み込む方法

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

Copyright @ NIFTY Corporation All Rights Reserved

iOSの場合

14

$ cocos new NCMBProject -p jp.moongift.ncmb.cocos2d -l cpp

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

Copyright @ NIFTY Corporation All Rights Reserved

15

• SystemConfiguration.framework • MobileCoreServices.framework • CoreLocation.framework

Frameworkのインポート

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

Copyright @ NIFTY Corporation All Rights Reserved

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"];

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

Copyright @ NIFTY Corporation All Rights Reserved

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]; }

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

Copyright @ NIFTY Corporation All Rights Reserved

18

Google Play Servive

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

Copyright @ NIFTY Corporation All Rights Reserved

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">

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

Copyright @ NIFTY Corporation All Rights Reserved

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>

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

Copyright @ NIFTY Corporation All Rights Reserved

// 追加 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の修正

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

Copyright @ NIFTY Corporation All Rights Reserved

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の修正

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

Copyright @ NIFTY Corporation All Rights Reserved

23

管理画面で必要なもの

証明書

API key (Server)

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

Copyright @ NIFTY Corporation All Rights Reserved

24

プッシュ通知

デモ

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

Copyright @ NIFTY Corporation All Rights Reserved

詳しくはQiitaで

25

http://qiita.com/niftycloud_mb

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

Copyright @ NIFTY Corporation All Rights Reserved

26

問題点

•プッシュ通知を受け取って、どこを開くかはObj-C/Javaで書く必要あり •データ、ファイルストア、ログインなどは未対応

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

Copyright @ NIFTY Corporation All Rights Reserved

27

宣伝

Basicプラン200万!

200万!

5GB!

月額無料

!

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

Copyright © NIFTY Corporation All Rights Reserved. ‹#›

開発で困ったら?

bit.ly/ncmb-community

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

@niftycloud_mb

https://fb.me/niftycloudmb