dropbox sync apiを使ってみた for android
TRANSCRIPT
1
Dropbox Sync APIを使ってみた
2013/04/21
Junko Suzuki
Android編
2
自己紹介
》 Junko Suzuki
◎仕事&食べる&寝る以外はアプリ作り修行
�はかるだけLITE/EX (体重管理)
�じかんわり (中高生向け時間割)
�7 Days Diet (ダイエット進捗管理)
などなど
3
目次
》Dropbox Developersのサイト
》実装時の処理の流れ
》実際に運用するときに考慮すべき点
4
Why Dropbox ?
◎体重データのバックアップ法を増やしたい
�SDカード保存のみ → Dropbox保存も可能に
�機種変更時のデータデータデータデータ移行移行移行移行ががががSDカード経由よりラクラクラクラク
�悲願のデータクラウドクラウドクラウドクラウド化化化化もどきが?
なんか2月に新しいAPIが発表された
らしいよ。簡単簡単簡単簡単にににに同期できるらしいよ。
5
Dropbox Developers
アプリ名Sync APISync APISync APISync API
Create appCreate appCreate appCreate app
App keyApp keyApp keyApp keyとApp secretApp secretApp secretApp secretが発行される→ API実装時に使用
6
Dropbox Developers
》App Console画面でわかりにくかった項目
◎App status 「Development」
→ アプリ公開時にProductionに変更
◎Number of users 「0 of 100」
→ このアプリ経由でDropbox
にアクセスしたアカウントの数
※Developmentステータス時のみ。
この値が0のままではProduction
に変更できない
7
》Productionステータスにして数日
「アプリアプリアプリアプリがががが承認承認承認承認されましたされましたされましたされました」
というタイトルのメールが来る
「「「「アプリアプリアプリアプリをををを公開可能公開可能公開可能公開可能なななな状態状態状態状態にしたらにしたらにしたらにしたら、、、、××××××××××××@dropbox.com @dropbox.com @dropbox.com @dropbox.com までまでまでまで、、、、アプリアプリアプリアプリへのへのへのへの
リンクリンクリンクリンクをおをおをおをお送送送送りくださいりくださいりくださいりください。。。。ガイドラインガイドラインガイドラインガイドライン準拠準拠準拠準拠のののの審査審査審査審査をををを開始開始開始開始させていただきますさせていただきますさせていただきますさせていただきます。」。」。」。」
アプリの提出はしていない
承認した後で審査?
アプリの承認について
8
実装のための準備
◎Download SDKのページからダウンロード
したlibフォルダをアプリフォルダ直下へコピー
◎その中のdropbox-synk-sdk-android.jar
をビルドパスに追加
◎ManifestにApp keyや
permissionなど追加
スタートガイドに沿ってやればOK
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と
リンク開始
リクエストコードを渡す
10
スマホ上では・・・
11
続:処理の流れ
<onActivityResult>
DbxFileSystemDbxFileSystemDbxFileSystemDbxFileSystem dbxFs =
DbxFileSystem.forAccount(mDbxAcctMgr.getLinkedAccountgetLinkedAccountgetLinkedAccountgetLinkedAccount());
<あとはお好きに♪>
DbxFile openopenopenopen(DbxPath path)
DbxFile createcreatecreatecreate(DbxPath path)
void deletedeletedeletedelete(DbxPath path)・・・
onActivityResultに
リクエストコードと一緒に戻ってくるので
Dropbox の
ファイルシステムをゲット
Dropbox Developers
のドキュメントに色々ある
リンクされたアカウントをゲット
12
フォルダはどうなるか
》Dropbox/アプリ/7DaysDiet/
勝手にできるDropbox DevelopersのConsoleページで指定したName of app folder
13
実際に運用するには
◎複数の端末から同一フォルダの同一ファイルを更新すると
Conflicted!!Conflicted!!Conflicted!!Conflicted!!
保存したファイルを別の端末で呼び出すのは無問題
ファイルが複数できてしまう
クラウド化・・?(´・ω・`)
機種変時は利用価値大
ススススママママホホホホA
ススススママママホホホホB
ススススママママホホホホA
ススススママママホホホホB
都度削除すればいいか
14
実際に運用するには
◎焦ってデータ保存・呼出をすると・・・
アップ元端末内のdropbox
フォルダは最新だけど古いデータを呼び出してしまう
ススススママママホホホホA
ススススママママホホホホB
まだ同期が完了してないから
15
ちゃんとするには
APIには hasSynced( )hasSynced( )hasSynced( )hasSynced( ) とか
syncNowAndWait( )syncNowAndWait( )syncNowAndWait( )syncNowAndWait( ) などあるので、
確実にdropboxサーバ側との同期状態をチェックしつつ、処理をすれば
カンペキカンペキカンペキカンペキ!!!!
(・・・・・まだやってないです)
同期されたか?
今、同期して、待つ
16
おしまい
ご静聴ありがとうございました。