16
1 Dropbox Sync APIを使ってみた 2013/04/21 Junko Suzuki Android

Dropbox Sync APIを使ってみた for Android

Embed Size (px)

Citation preview

Page 1: Dropbox Sync APIを使ってみた for Android

1

Dropbox Sync APIを使ってみた

2013/04/21

Junko Suzuki

Android編

Page 2: Dropbox Sync APIを使ってみた for Android

2

自己紹介

》 Junko Suzuki

◎仕事&食べる&寝る以外はアプリ作り修行

�はかるだけLITE/EX (体重管理)

�じかんわり (中高生向け時間割)

�7 Days Diet (ダイエット進捗管理)

などなど

Page 3: Dropbox Sync APIを使ってみた for Android

3

目次

》Dropbox Developersのサイト

》実装時の処理の流れ

》実際に運用するときに考慮すべき点

Page 4: Dropbox Sync APIを使ってみた for Android

4

Why Dropbox ?

◎体重データのバックアップ法を増やしたい

�SDカード保存のみ → Dropbox保存も可能に

�機種変更時のデータデータデータデータ移行移行移行移行ががががSDカード経由よりラクラクラクラク

�悲願のデータクラウドクラウドクラウドクラウド化化化化もどきが?

なんか2月に新しいAPIが発表された

らしいよ。簡単簡単簡単簡単にににに同期できるらしいよ。

Page 5: Dropbox Sync APIを使ってみた for Android

5

Dropbox Developers

アプリ名Sync APISync APISync APISync API

Create appCreate appCreate appCreate app

App keyApp keyApp keyApp keyとApp secretApp secretApp secretApp secretが発行される→ API実装時に使用

Page 6: Dropbox Sync APIを使ってみた for Android

6

Dropbox Developers

》App Console画面でわかりにくかった項目

◎App status 「Development」

→ アプリ公開時にProductionに変更

◎Number of users 「0 of 100」

→ このアプリ経由でDropbox

にアクセスしたアカウントの数

※Developmentステータス時のみ。

この値が0のままではProduction

に変更できない

Page 7: Dropbox Sync APIを使ってみた for Android

7

》Productionステータスにして数日

「アプリアプリアプリアプリがががが承認承認承認承認されましたされましたされましたされました」

というタイトルのメールが来る

「「「「アプリアプリアプリアプリをををを公開可能公開可能公開可能公開可能なななな状態状態状態状態にしたらにしたらにしたらにしたら、、、、××××××××××××@dropbox.com @dropbox.com @dropbox.com @dropbox.com までまでまでまで、、、、アプリアプリアプリアプリへのへのへのへの

リンクリンクリンクリンクをおをおをおをお送送送送りくださいりくださいりくださいりください。。。。ガイドラインガイドラインガイドラインガイドライン準拠準拠準拠準拠のののの審査審査審査審査をををを開始開始開始開始させていただきますさせていただきますさせていただきますさせていただきます。」。」。」。」

アプリの提出はしていない

承認した後で審査?

アプリの承認について

Page 8: Dropbox Sync APIを使ってみた for Android

8

実装のための準備

◎Download SDKのページからダウンロード

したlibフォルダをアプリフォルダ直下へコピー

◎その中のdropbox-synk-sdk-android.jar

をビルドパスに追加

◎ManifestにApp keyや

permissionなど追加

スタートガイドに沿ってやればOK

Page 9: Dropbox Sync APIを使ってみた for Android

9

処理の流れ

private DbxAccountManagerDbxAccountManagerDbxAccountManagerDbxAccountManager mDbxAcctMgr;

mDbxAcctMgr = DbxAccountManager.getInstancegetInstancegetInstancegetInstance(getApplicationContext(),

APP_KEY, APP_SECRETAPP_KEY, APP_SECRETAPP_KEY, APP_SECRETAPP_KEY, APP_SECRET);

mDbxAcctMgr.startLinkstartLinkstartLinkstartLink((Activity)this,

REQUEST_LINK_TO_DBX);

アカウントマネージャを

インスタンス化して

Dropboxと

リンク開始

リクエストコードを渡す

Page 10: Dropbox Sync APIを使ってみた for Android

10

スマホ上では・・・

Page 11: Dropbox Sync APIを使ってみた for Android

11

続:処理の流れ

<onActivityResult>

DbxFileSystemDbxFileSystemDbxFileSystemDbxFileSystem dbxFs =

DbxFileSystem.forAccount(mDbxAcctMgr.getLinkedAccountgetLinkedAccountgetLinkedAccountgetLinkedAccount());

<あとはお好きに♪>

DbxFile openopenopenopen(DbxPath path)

DbxFile createcreatecreatecreate(DbxPath path)

void deletedeletedeletedelete(DbxPath path)・・・

onActivityResultに

リクエストコードと一緒に戻ってくるので

Dropbox の

ファイルシステムをゲット

Dropbox Developers

のドキュメントに色々ある

リンクされたアカウントをゲット

Page 12: Dropbox Sync APIを使ってみた for Android

12

フォルダはどうなるか

》Dropbox/アプリ/7DaysDiet/

勝手にできるDropbox DevelopersのConsoleページで指定したName of app folder

Page 13: Dropbox Sync APIを使ってみた for Android

13

実際に運用するには

◎複数の端末から同一フォルダの同一ファイルを更新すると

Conflicted!!Conflicted!!Conflicted!!Conflicted!!

保存したファイルを別の端末で呼び出すのは無問題

ファイルが複数できてしまう

クラウド化・・?(´・ω・`)

機種変時は利用価値大

ススススママママホホホホA

ススススママママホホホホB

ススススママママホホホホA

ススススママママホホホホB

都度削除すればいいか

Page 14: Dropbox Sync APIを使ってみた for Android

14

実際に運用するには

◎焦ってデータ保存・呼出をすると・・・

アップ元端末内のdropbox

フォルダは最新だけど古いデータを呼び出してしまう

ススススママママホホホホA

ススススママママホホホホB

まだ同期が完了してないから

Page 15: Dropbox Sync APIを使ってみた for Android

15

ちゃんとするには

APIには hasSynced( )hasSynced( )hasSynced( )hasSynced( ) とか

syncNowAndWait( )syncNowAndWait( )syncNowAndWait( )syncNowAndWait( ) などあるので、

確実にdropboxサーバ側との同期状態をチェックしつつ、処理をすれば

カンペキカンペキカンペキカンペキ!!!!

(・・・・・まだやってないです)

同期されたか?

今、同期して、待つ

Page 16: Dropbox Sync APIを使ってみた for Android

16

おしまい

ご静聴ありがとうございました。