Slide 1

Slide 1 text

/$.#4%, ֤ϓϥοτϑΥʔϜͷҧ͍Λ୳Δ NCMBΤόϯδΣϦετ খࢁ఩ࢤ 2017-02-07 NCMB-UG rebuild

Slide 2

Slide 2 text

ࢲ͸୭ • খࢁ఩ࢤ (koyhoge) • 2015೥5݄ΑΓNCMBΤόϯδΣϦετ • http://koyhogetech.hatenablog.com/entry/20150507/ ncmb • ೔ຊUNIXϢʔβձɺ೔ຊPostgreSQLϢʔβձɺ೔ຊPHP ϢʔβձʹؔΘΔ • NCMB Android SDK v2 ͷॳظ։ൃʹࢀՃ

Slide 3

Slide 3 text

/$.#4%, • ֤ݴޠɺϓϥοτϑΥʔϜຖʹ༻ҙ͞Ε͍ͯΔ • ެࣜ͸ҎԼͷ4ͭ • Objective-C (iOS) • Java (Android) • JavaScript (node, Monaca) • C# (Unity)

Slide 4

Slide 4 text

ݴޠ͝ͱͷҧ͍͸Ͳͷ͘Β͍ • ֤ݴޠͰͰ͖Δ͜ͱ͕ҧ͏ • ϓϥοτϑΥʔϜಛ༗ͷ࡞๏΋͋Δ • ओཁػೳʹର֤ͯ͠SDKͷҧ͍Λݟ͍ͯ͘ • ॳظԽ • σʔλετΞ • ϢʔβϩάΠϯ • ACL

Slide 5

Slide 5 text

ॳظԽ J04 "OESPJE • iOS • Android [NCMB setApplicationKey:@"API_KEY", clientKey:@"CLIENT_KEY"]; public class MainActivity extends AppComaptActivity { @override protected void onCreate(Bundle savedInstanceState) { // <省略> NCMB.initialize(this, "API_KEY", "CLIENT_KEY"); }

Slide 6

Slide 6 text

ॳظԽ +BWB4DSJQU 6OJUZ • JavaScript • Unity • ॳظԽ͸SDK಺ͰࣗಈͰߦΘΕΔɻAPP_KEY, CLIENT_KEY ͸GUIઃఆύωϧNCMBSettingsʹ ొ࿥ɻ var NCMB = NCMB || require("./lib/ncmb"); var ncmb = new NCMB("API_KEY", "CLIENT_KEY");

Slide 7

Slide 7 text

σʔλετΞ J04 NCMBObject *obj = [NCMBObject objectWithClassName:@“MyClass”]; [obj setObject:@"value" forKey:@"keyname"]; [obj saveInBackgroundWithBlock:^(NSError *error) { if (error) { // 失敗処理 } else { // 成功処理 } }];

Slide 8

Slide 8 text

σʔλετΞ "OESPJE NCMBObject obj = new NCMBObject("MyClass"); obj.put("keyname", "value"); obj.saveInBackground(new DoneCallback() { @override public void done(NCMBException e) { if (e != null) { // 失敗処理 } else { // 成功処理 } } });

Slide 9

Slide 9 text

σʔλετΞ +BWB4DSJQU var MyClass = ncmb.DataStore("MyClass"); var obj = new MyClass({keyname: "value"}); obj.save() .then(function(result) { // 成功処理 }) .catch (function(err) { // 失敗処理 });

Slide 10

Slide 10 text

σʔλετΞ 6OJUZ NCMBObject obj = new NCMBObject("MyClass"); obj.Add("keyname", "value"); obj.SaveAsync ((NCMBException e) => { if (e != null) { // 失敗処理 } else { // 成功処理 } });

Slide 11

Slide 11 text

ϢʔβϩάΠϯ J04 [NCMBUser logInWithUsernameInBackground:@"username" password:@"password" block:^(NCMBUser *user, NSError *error) { // 省略 }];

Slide 12

Slide 12 text

ϢʔβϩάΠϯ "OESPJE NCMBUser.loginInBackground(username, password, new LoginCallback() { @override public void done(NCMBUser user, NCMBException e) { // 省略 } });

Slide 13

Slide 13 text

ϢʔβϩάΠϯ +BWB4DSJQU ncmb.User.login("username", "password") .then(function(result) { // ログイン成功 }) .catch (function(err) { // ログイン失敗 });

Slide 14

Slide 14 text

ϢʔβϩάΠϯ 6OJUZ NCMBUser.LogInAsync("username", "password", (NCMBException e) => { if (e != null) { // ログイン失敗 } else { // ログイン成功 } });

Slide 15

Slide 15 text

"$- J04 NCMBACL *acl = [NCMBACL ACL]; [acl setPublicReadAccess:YES]; NCMBObject *obj = [NCMBObject objectWithClassName:@"aclTest"]; [obj setACL:acl]; NSError *e = nil; [obj save:&e];

Slide 16

Slide 16 text

"$- "OESPJE NCMBAcl acl = new NCMBAcl(); acl.setPublicReadAccess(true); NCMBObject obj = new NCMBObject("aclTest"); obj.setAcl(acl);

Slide 17

Slide 17 text

"$- +BWB4DSJQU var acl = new ncmb.Acl(); acl.setPublicReadAccess(true); var obj = ncmb.DataStore("aclTest"); obj.set("acl", acl); obj.save();

Slide 18

Slide 18 text

"$- 6OJUZ NCMBACL acl = new NCMBACL(); acl.PublicReadAccess = true; NCMBObject obj = new NCMBObject("aclTest"); obj.ACL = acl;

Slide 19

Slide 19 text

·ͱΊ • ಉҰͷREST APIΛλʔήοτʹ͍ͯ͠ΔͷͰߟ͑ํ ͸ಉ͡ɻ • ίʔϧόοΫख๏ͳͲʹݴޠ͝ͱͷҧ͍ • ϝιου໊͸Ҋ֎౷Ұ͞Ε͍ͯͳ͍