Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NCMB SDK 各プラットフォームの違いを探る / ncmb sdk
Search
KOYAMA Tetsuji
February 07, 2017
Programming
0
190
NCMB SDK 各プラットフォームの違いを探る / ncmb sdk
2017年2月7日に開催されたNCMB-UG rebuildで発表した資料です。
KOYAMA Tetsuji
February 07, 2017
Tweet
Share
More Decks by KOYAMA Tetsuji
See All by KOYAMA Tetsuji
全日本PHPカンファレンス2024スタンプラリーについて/stamprally-php2024
koyhoge
0
93
日本PHPカンファレンス2024スタンプラリーとその実装/phpcon-stamprally
koyhoge
1
810
日本のPHPカンファレンスの歩みと、その辺もろもろ/phpcon_japan_history
koyhoge
0
240
Inside SWOOLE: 非同期処理はどのようにして動くのか/inside_swoole
koyhoge
0
18k
映画を年300本観る技術/watch_300_movies_in_a_year
koyhoge
0
1.1k
Swooleで実装するPHP非同期処理の世界/phpcondo2019-swoole
koyhoge
3
4.9k
CloudFormation と FaaS のはざま - Kubernetes の設計思想を探る -/cf-faas-k8s
koyhoge
0
1.3k
ITイベントマニアから見る技術イベントの動向/techevent
koyhoge
0
300
Skaffoldを使ってKubernetes してみた/skaffold_k8s
koyhoge
2
1.2k
Other Decks in Programming
See All in Programming
null or undefined
susisu
22
6.2k
令和トラベルにおけるLLM活用事例:社内ツール開発から得た学びと実践
ippo012
0
120
ブラウザ互換の重要性 - あらゆるユーザーに価値を届けるために必要なこと
yamanoku
0
110
今インフラ技術をイチから学び直すなら
yuhta28
1
130
仮想ファイルシステムを導入して開発環境のストレージ課題を解消する
segadevtech
2
500
私のEbitengineの第一歩
qt_luigi
0
440
Go1.23で入った errorsパッケージの小さなアプデ
kuro_kurorrr
2
330
Mastering AsyncSequence - 使う・作る・他のデザインパターン(クロージャ、Delegate など)から移行する
treastrain
4
1.6k
GoのIteratorに詳しくなってしまう
inatonix
1
200
Using Livebook to build and deploy internal tools @ ElixirConf 2024
hugobarauna
0
240
Increased Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
200
rails_girls_is_my_gate_to_join_the_ruby_commuinty
maimux2x
0
190
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
73
8.9k
Optimizing for Happiness
mojombo
375
69k
What's in a price? How to price your products and services
michaelherold
242
11k
Designing on Purpose - Digital PM Summit 2013
jponch
113
6.8k
A Tale of Four Properties
chriscoyier
155
22k
Fashionably flexible responsive web design (full day workshop)
malarkey
401
65k
Building Applications with DynamoDB
mza
90
6k
Into the Great Unknown - MozCon
thekraken
29
1.4k
Building Flexible Design Systems
yeseniaperezcruz
325
37k
Build your cross-platform service in a week with App Engine
jlugia
228
18k
Being A Developer After 40
akosma
84
590k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
36
2k
Transcript
/$.#4%, ֤ϓϥοτϑΥʔϜͷҧ͍Λ୳Δ NCMBΤόϯδΣϦετ খࢁࢤ 2017-02-07 NCMB-UG rebuild
ࢲ୭ • খࢁࢤ (koyhoge) • 20155݄ΑΓNCMBΤόϯδΣϦετ • http://koyhogetech.hatenablog.com/entry/20150507/ ncmb •
ຊUNIXϢʔβձɺຊPostgreSQLϢʔβձɺຊPHP ϢʔβձʹؔΘΔ • NCMB Android SDK v2 ͷॳظ։ൃʹࢀՃ
/$.#4%, • ֤ݴޠɺϓϥοτϑΥʔϜຖʹ༻ҙ͞Ε͍ͯΔ • ެࣜҎԼͷ4ͭ • Objective-C (iOS) • Java
(Android) • JavaScript (node, Monaca) • C# (Unity)
ݴޠ͝ͱͷҧ͍Ͳͷ͘Β͍ • ֤ݴޠͰͰ͖Δ͜ͱ͕ҧ͏ • ϓϥοτϑΥʔϜಛ༗ͷ࡞๏͋Δ • ओཁػೳʹର֤ͯ͠SDKͷҧ͍Λݟ͍ͯ͘ • ॳظԽ •
σʔλετΞ • ϢʔβϩάΠϯ • ACL
ॳظԽ 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"); }
ॳظԽ +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");
σʔλετΞ J04 NCMBObject *obj = [NCMBObject objectWithClassName:@“MyClass”]; [obj setObject:@"value" forKey:@"keyname"];
[obj saveInBackgroundWithBlock:^(NSError *error) { if (error) { // 失敗処理 } else { // 成功処理 } }];
σʔλετΞ "OESPJE NCMBObject obj = new NCMBObject("MyClass"); obj.put("keyname", "value"); obj.saveInBackground(new
DoneCallback() { @override public void done(NCMBException e) { if (e != null) { // 失敗処理 } else { // 成功処理 } } });
σʔλετΞ +BWB4DSJQU var MyClass = ncmb.DataStore("MyClass"); var obj = new
MyClass({keyname: "value"}); obj.save() .then(function(result) { // 成功処理 }) .catch (function(err) { // 失敗処理 });
σʔλετΞ 6OJUZ NCMBObject obj = new NCMBObject("MyClass"); obj.Add("keyname", "value"); obj.SaveAsync
((NCMBException e) => { if (e != null) { // 失敗処理 } else { // 成功処理 } });
ϢʔβϩάΠϯ J04 [NCMBUser logInWithUsernameInBackground:@"username" password:@"password" block:^(NCMBUser *user, NSError *error) {
// 省略 }];
ϢʔβϩάΠϯ "OESPJE NCMBUser.loginInBackground(username, password, new LoginCallback() { @override public void
done(NCMBUser user, NCMBException e) { // 省略 } });
ϢʔβϩάΠϯ +BWB4DSJQU ncmb.User.login("username", "password") .then(function(result) { // ログイン成功 }) .catch
(function(err) { // ログイン失敗 });
ϢʔβϩάΠϯ 6OJUZ NCMBUser.LogInAsync("username", "password", (NCMBException e) => { if (e
!= null) { // ログイン失敗 } else { // ログイン成功 } });
"$- J04 NCMBACL *acl = [NCMBACL ACL]; [acl setPublicReadAccess:YES]; NCMBObject
*obj = [NCMBObject objectWithClassName:@"aclTest"]; [obj setACL:acl]; NSError *e = nil; [obj save:&e];
"$- "OESPJE NCMBAcl acl = new NCMBAcl(); acl.setPublicReadAccess(true); NCMBObject obj
= new NCMBObject("aclTest"); obj.setAcl(acl);
"$- +BWB4DSJQU var acl = new ncmb.Acl(); acl.setPublicReadAccess(true); var obj
= ncmb.DataStore("aclTest"); obj.set("acl", acl); obj.save();
"$- 6OJUZ NCMBACL acl = new NCMBACL(); acl.PublicReadAccess = true;
NCMBObject obj = new NCMBObject("aclTest"); obj.ACL = acl;
·ͱΊ • ಉҰͷREST APIΛλʔήοτʹ͍ͯ͠ΔͷͰߟ͑ํ ಉ͡ɻ • ίʔϧόοΫख๏ͳͲʹݴޠ͝ͱͷҧ͍ • ϝιου໊Ҋ֎౷Ұ͞Ε͍ͯͳ͍