iOSでdropbox連携を行う(第1回)

現在、E-kanのiOSアプリ開発勉強会でdropbox連携について勉強していますが、
折角ですので、その方法についてこのブログで連載しようと思います。

最終的には、dropboxのファイル一覧を表示させて、
ファイルを選択したらそのファイルを開くというアプリを作る予定で、
全部で4~5回くらいの連載になるかな?と思います。

さて、早速ですがその初回では、
新規プロジェクトの作成とdropboxライブラリの使用準備まで進めたいと思います。

1. プロジェクト作成

では、XCodeで新規プロジェクトを作成しましょう。
ここは基本的な部分ですので、詳細手順は割愛させてもらいます。
今回は、単純な画面のアプリとなるので、
テンプレートは”Single View Application”で作成してください。
プロジェクト名は単純に “dropboxtest” とします。

2. SwiftyDropboxの組み込み

次に作成したプロジェクトへdropboxライブラリを組み込みましょう。
ライブラリの組み込みはCocoaPodsを使います。
他にもCarhageを使う方法などがありますので、そちらを使いたい方は公式ドキュメントを見てください。

もし、CocoaPodsを使ったことがないという場合は、先にCocoaPodsをインストールしてください。
ターミナルで下を実行するだけでインストールできます。

$ gem install cocoapods

(実行でエラーが出てしまう場合は、”sudo”を追加して実行してみてください)

それでは、実際に組み込んでいきましょう。
まずは、CocoaPodsでのライブラリ設定を行うので、
ターミナルで作成したプロジェクトのディレクトリに移動します。
そこで下のコマンドを実行します。

$ pod init

実行が終わると、”Podfile” というファイルが作られるので、
それを開いて、次のように赤字部分を追記します。

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'dropboxtest' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for dropboxtest
  pod 'SwiftyDropbox'

  target 'dropboxtestTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'dropboxtestUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

Podfileの修正が終わったら、インストールします。
下記コマンドを実行してください。

$ pod install

これで、プロジェクトにSwiftyDropboxというライブラリが取り込まれました。
確認の為にプロジェクトを開いて見ましょう。
開くのは dropboxtest.xcworkspace です。(xcodeprojではないので注意してください)

ちゃんと SwiftyDropbox のフレームワークが追加されています。

3. アプリ登録

次は、dropboxのサイトにてアプリ登録を行います。
普通に dropbox のサイトでログインすると、右下の”…”があると思いますので、
そこの”開発者向け情報”をクリックします。

すると、次のような画面になるので、”My apps”の”Create app”をクリックします。

アプリの情報入力画面になりますので、適当に入力しましょう。
1つ目の設問は”Dropbox API”になると思います。
2つ目は使い方に合わせて選択してください。
App folder  ・・・ アプリ用のフォルダを作り、その中だけの読み書きを行う
Full Dropbox ・・・ 全てのフォルダ内の読み書きを行う
3つ目はアプリ名の入力です。
いくつか入力に制約があるので、気をつけてください。
(dropbox とか test とかつけたら弾かれました)
実際のアプリ名と同じじゃなくても大丈夫みたいです。

次は色々な設定画面です。
ここでは2点だけやることがあります。
まずは、”Development users” の “Enable additional users”をクリックします。

ダイアログが表示されるので、”Okay”を押します。

これをやらないとログイン認証することができないので、必ずログインが失敗します。

次に”App key”と”App secret”の値をメモします。
(App secretは show をクリックすると文字列が表示されます)

これでアプリ登録が完了しました。

4.キー情報の設定

初回の最後は Info.plist の編集です。
公式Dropboxアプリと認証のやりとりをする為に2点の設定追加が必要となります。
Info.plistはプロジェクトフォルダの”dropboxtest”の中にあります。
もちろん、XCode上で編集しても大丈夫です。(コツが必要ですが)

1つ目
公式Dropboxアプリがインストールされているかどうかを判断できるようにする設定です。

<key>LSApplicationQueriesSchemes</key>
   <array>
      <string>dbapi-8-emm</string>
      <string>dbapi-2</string>
   </array>

2つ目
公式DropboxアプリからのURLスキーム起動を行えるようにする設定です。
※ db-の後ろのモザイク部分は手順3で確認した “App key”を入力してください。

<key>CFBundleURLTypes</key>
   <array>
      <dict>
         <key>CFBundleURLSchemes</key>
         <array>
            <string>db-<APP_KEY></string>
         </array>
         <key>CFBundleURLName</key>
         <string></string>
      </dict>
   </array>

この2つの修正が終わったら下のような感じになります。

ちなみに、XCode上ではこんな感じ。

さぁ、これで、SwiftyDropboxを使う準備が整いました。
次回は実際に使って、ログイン認証を行おうと思います。

Posted in システム開発 and tagged .