Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
NCMB SDK 各プラットフォームの違いを探る / ncmb sdk
KOYAMA Tetsuji
February 07, 2017
Programming
0
170
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
Inside SWOOLE: 非同期処理はどのようにして動くのか/inside_swoole
koyhoge
0
17k
映画を年300本観る技術/watch_300_movies_in_a_year
koyhoge
0
830
Swooleで実装するPHP非同期処理の世界/phpcondo2019-swoole
koyhoge
3
3.7k
CloudFormation と FaaS のはざま - Kubernetes の設計思想を探る -/cf-faas-k8s
koyhoge
0
940
ITイベントマニアから見る技術イベントの動向/techevent
koyhoge
0
240
Skaffoldを使ってKubernetes してみた/skaffold_k8s
koyhoge
1
820
東京が大雪の日に何気ない写真がバズった/snow_tree_buzz
koyhoge
0
450
NCMB PHP SDKでサーバサイドからmBaaSを使おう /ncmb-php-sdk-details
koyhoge
1
560
草の根イベントカメラマンの10年/eventcameraman
koyhoge
1
620
Other Decks in Programming
See All in Programming
Opsしかやってこなかった私が DevOpsが根付いたチームにJoinした話
yhamano
1
100
クックパッドマートの失敗したデータ設計 Before / After 大放出
mokuzon
0
180
CakePHPの内部実装 から理解するPSR-7
boro1234
0
260
Improving Developer Experience Through Tools and Techniques 2022
krzysztofzablocki
0
1.2k
Jetpack Composeでの画面遷移
iwata_n
0
200
[월간 데이터리안 세미나 6월] 스스로 성장하는 분석가 커리어 이야기
datarian
0
250
プロダクトのタイプ別 GraphQL クライアントの選び方
shozawa
0
5.8k
Cybozu GoogleI/O 2022 LT会 - Input for all screens
jaewgwon
0
400
Independently together: better developer experience & App performance
bcinarli
0
190
Baseline Profilesでアプリのパフォーマンスを向上させる / Improve app performance with Baseline Profiles
numeroanddev
0
260
AWS Config Custom Rule、ノーコードでできるかな?
watany
0
110
アジャイルで不確実性に向き合うための開発タスクの切り方
tanden
3
350
Featured
See All Featured
Designing Experiences People Love
moore
130
22k
The Brand Is Dead. Long Live the Brand.
mthomps
46
2.7k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
29
4.3k
How to train your dragon (web standard)
notwaldorf
58
3.9k
Mobile First: as difficult as doing things right
swwweet
213
7.5k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
224
49k
Code Review Best Practice
trishagee
43
9.3k
Why You Should Never Use an ORM
jnunemaker
PRO
47
7.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
638
52k
Rebuilding a faster, lazier Slack
samanthasiow
62
7.2k
Large-scale JavaScript Application Architecture
addyosmani
499
110k
Building Better People: How to give real-time feedback that sticks.
wjessup
344
17k
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Λλʔήοτʹ͍ͯ͠ΔͷͰߟ͑ํ ಉ͡ɻ • ίʔϧόοΫख๏ͳͲʹݴޠ͝ͱͷҧ͍ • ϝιου໊Ҋ֎౷Ұ͞Ε͍ͯͳ͍