22
Kii Cloud 勉強会 #2 ちょっと使ってみよう

Kii cloud 勉強会 #2

Embed Size (px)

DESCRIPTION

Kii Cloud 女子部の勉強会で使用した資料に、実装例を付け足したものです。 最初は実装例を見つつ実装してみるのがいいかもしれません

Citation preview

Page 1: Kii cloud 勉強会 #2

Kii Cloud 勉強会 #2〜 ちょっと使ってみよう 〜

Page 2: Kii cloud 勉強会 #2

自己紹介

● 深見 浩和(@fkm)● つい最近までKiiのなかのひと● Androidアプリ作ったり● サーバーのコード書いたり● このアイコンのひと →

Page 3: Kii cloud 勉強会 #2

復習:どんなことできるの?

● ユーザー管理● グループ管理● データ管理● プッシュを送ったり● その他もろもろ

Page 4: Kii cloud 勉強会 #2

今日の目標

● 簡単メモ帳アプリを作ってみよう● アプリにユーザー登録/ログイン機能を

つけよう● メモを登録/取得してみよう

Page 5: Kii cloud 勉強会 #2

アプリの構成

Page 6: Kii cloud 勉強会 #2

ステップ1 開発者登録

https://developer.kii.comで開発者登録しましょう

● メールアドレスとパスワード

Page 7: Kii cloud 勉強会 #2

ステップ2 アプリプロジェクト作成

Eclipseで、新しいAndroidアプリプロジェクトを作りましょう

作ったら、AndroidManifest.xmlに<uses-permission android:name="android.permission.INTERNET"/> を追加しましょう

Page 8: Kii cloud 勉強会 #2

ステップ3 アプリ情報登録

ポータルで、アプリの情報を

登録してみましょう

● アプリ名● サーバーの場所(今回は日本)● プラットフォーム(Android)

Page 9: Kii cloud 勉強会 #2

ステップ4 SDKをダウンロード

ポータルから、Android用のSDK(Cloud SDK)をダウンロードし、

アプリのlibsフォルダにいれましょう

Page 10: Kii cloud 勉強会 #2

ステップ5 登録機能の実装

「登録」ボタンを押したら、

Kii Cloudにユーザーを作ってみよう

ヒント:

登録はKiiUser#register()メソッド

Page 11: Kii cloud 勉強会 #2

ステップ5 実装例

private void performSignup() { String username = getUsername(); String password = getPassword(); KiiUser user = KiiUser.builderWithName(username).build(); user.register(new KiiUserCallBack() { @Override public void onRegisterCompleted( int token, KiiUser user, Exception exception) { if (exception != null) { return; } } }, password);}

Page 12: Kii cloud 勉強会 #2

ステップ6 ログイン機能の実装

「ログイン」ボタンを押したら、

Kii Cloudにログインしてみよう

ヒント:

ログインはKiiUser#login()メソッド

Page 13: Kii cloud 勉強会 #2

ステップ6 実装例

private void performLogin() { String username = getUsername(); String password = getPassword(); KiiUser.logIn(new KiiUserCallBack() { @Override public void onLoginCompleted( int token, KiiUser user, Exception exception) { if (exception != null) { return; } // 成功時の処理

} }, username, password);}

Page 14: Kii cloud 勉強会 #2

ステップ7

の前に。。。

Page 15: Kii cloud 勉強会 #2

バケツとスコープ

Kii Cloudでは、データ(KiiObject)はバケツ(KiiBucket)の中に保存される

Page 16: Kii cloud 勉強会 #2

バケツとスコープ

バケツ(KiiBucket)には名前がついている

バケツ(KiiBucket)には所有者がいる

● アプリ全体● 特定のグループ● 特定のユーザー

Page 17: Kii cloud 勉強会 #2

バケツとスコープ

KiiBucketインスタンスを作る

● Kii.bucket(“appInfo”)○ 所有者は「アプリ全体」

● group.bucket(“users”)○ 所有者は指定したグループ

● KiiUser.getCurrentUser().bucket(“inbox”)○ 所有者は「ログイン中のユーザー」

Page 18: Kii cloud 勉強会 #2

ステップ7 データの登録

1行メモをKiiObjectにいれて、

アップロードしてみよう

ヒント:

バケツの所有者は誰が適切だろう?

Page 19: Kii cloud 勉強会 #2

ステップ7 実装例

private void addNote(final String text) { KiiObject object = KiiUser.getCurrentUser().bucket(BUCKET_NAME).object(); object.set(FIELD_NOTE, text); object.save(new KiiObjectCallBack() { @Override public void onSaveCompleted( int token, KiiObject object, Exception exception) { if (exception != null) { return; } } });}

Page 20: Kii cloud 勉強会 #2

ステップ8 データの取得

とりあえず、全部取得してみよう

ヒント:

バケツ内のKiiObjectを検索するには、

KiiBucket#query(KiiQueryCallback, query)を使います

Page 21: Kii cloud 勉強会 #2

ステップ8 実装例(1 / 2)private void fetchNotes() { KiiBucket bucket = KiiUser.getCurrentUser().bucket(BUCKET_NAME); // 条件組み立て

KiiQuery query = new KiiQuery(); query.sortByDesc("_modified"); bucket.query(new KiiQueryCallBack<KiiObject>() { /* Callbackの中身は次ページ */ }, query);}

Page 22: Kii cloud 勉強会 #2

ステップ8 実装例(2 / 2)@Overridepublic void onQueryCompleted( int token, KiiQueryResult<KiiObject> result, Exception exception) { if (exception != null) { return; } List<KiiObject> resultList = result.getResult(); List<String> list = new ArrayList<String>(resultList.size()); for (KiiObject object : resultList) { list.add(object.getString(FIELD_NOTE, "Empty")); } setItems(list); // Adapterにセット

}