この記事は2018年06月12日に投稿しました。
この記事は2018年07月20日に更新しました。
目次
1. はじめに
こんにちは、iOSのエディタアプリPWEditorの開発者の二俣です。
前回の
paveway.hatenablog.com
で、Dropbox APIを使用する環境は整っています。
今回はDropbox APIの使用を開始するため、初期化処理についてまとめました。
2. 初期化処理
アプリがDropbox APIを使うため、初期化処理を行います。
実装個所は次の2か所になります。
まずはUIApplicationDelegateクラスのapplication(_:didFinishLaunchingWithOptions:)メソッドで行います。
このメソッドで、事前準備で取得したアプリキーをDropboxに登録します。
この処理はこのタイミングで行ってください。
次に認証済みか否か確認し、認証の状況によって処理を分岐します。
アプリの作りによりますが、この処理はこのタイミングではなくても構いません。
Dropboxにアクセスする前に行えばよいです。
PWEditorでは起動時にDropboxにサインイン済みかチェックし、表示する画面を切り替えています。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // アプリキーを登録します。 // アプリキーは事前準備で入手してください。 DropboxClientsManager.setupWithAppKey(("アプリキー"); // サインイン済みか否かチェックします。 // この処理はDropbox APIにアクセスする前に行えばよいです。 if let = DropboxClientsManager.authorizedClient { // サインイン済みの場合の処理を記述してください。 } else { // 未サインインの場合の処理を記述してください。 } }
もう1か所はapplication(_:open:options:)メソッドに実装します。
ここの処理は次回説明するサインイン処理の結果により呼び出され、認証結果がDropboxから渡されます。
PWEditorでは認証に成功した場合、Dropbboxのファイル一覧画面にアクセスできるようにしています。
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey: Any]) -> Bool { if let authResult = DropboxClientsManager.handleRedirectURL(url) { // 認証結果後に呼び出されます。 // Dropboxから認証結果authResultが渡されるので、認証結果により処理を分岐します。 switch authResult { case .success: // サインインに成功した場合の処理を記述してください。 break case .error(let error, let description): // サインインに失敗した場合の記述してください。 break default: // 上記以外、何もしません。 // 基本的にこのパスには来ないはずです。 break } } }
API Reference
UIApplicationDelegateクラス
application(_:didFinishLaunchingWithOptions:)メソッド
application(_:open:options:)メソッド
DropboxClientsManagerクラス
3. おわりに
初期化処理はそんなに複雑ではありませんが、PWEditorの実装時には事前準備の不備などもありなかなかうまく動かなかった記憶があります。
そんな時は事前準備の作業から見直して、実装してみてください。
紹介している一部の記事のコードはGitlabで公開しています。
興味のある方は覗いてみてください。
私が勤務しているニューラルでは、主に組み込み系ソフトの開発を行っております。
弊社製品のハイブリッドOS Bi-OSは高い技術力を評価されており、特に制御系や通信系を得意としています。
私自身はiOSモバイルアプリやウィンドウズアプリを得意としております。
ソフトウェア開発に関して相談などございましたら、お気軽にご連絡ください。
また一緒に働きたい技術者の方も随時募集中です。
興味がありましたらご連絡ください。
EMAIL : info-nr@newral.co.jp / m-futamata@newral.co.jp
TEL : 042-523-3663
FAX : 042-540-1688