投稿者:Yuji Yasuno | 投稿日:2015年2月19日(木) 08:26

みなさんこんにちはsalesforce.comのやすのです。普段はデベロッパーのみなさんに何かを発信することはあまりないのですがブログを書かせて頂く事になりました。どうぞよろしくお願いします。しばらくはiOSアプリ開発をテーマに書いていこうと思っています。

それはさておき、昨年(2014年)AppleからSwiftがリリースされましたね。今までネイティブアプリを開発するためにObjective-Cを使わなければいけませんでしたがSwiftを選択できるようになり、より慣れ親しんだ文法を持った言語でiOSアプリを開発できるようになりました。Objective-Cを毛嫌いしてなかなかiOSアプリ開発を始められなかった人もこれで少しは前向きになるのではないでしょうか?ということで、これから数回に渡りSwiftを使ったiOS開発の方法を紹介していきたいと思います。もちろんバックエンドで利用するプラットフォームはsalesforceです!

順を追って内容を紹介していきたいと思いますが、全体の流れをつかめないとよくわからなくなりますよね。そのためまずは全体の流れをお話させて頂きます。その後、実際にやらなければいけない事を順々に説明させていただきますね。

今回紹介するのはCocoaPodsを利用する方法です。CocoaPodsのインストール方法は割愛させて頂きますが、Googleで検索するとたくさん情報が出てきますので、まだCocoaPodsをインストールされていない方はインストール方法を検索してインストールしてくださいね。

全体の流れ

では早速全体像ですが、Mobile SDKを使ってネイティブのiOS開発を始めるためには次のステップが必要です。
  1. Xcodeによるプロジェクトを作成
  2. Podfileの作成(Mobile SDKを追加するため)
  3. pod installコマンドでMobile SDKをプロジェクトに含める(事前にCocoaPodsのインストールが必要)
  4. Objective-C Bridging Header用のヘッダーファイルを作成
  5. Swifting!!(Swiftでの実際のコーディングに関する内容は次回以降で記載します。)

1はアプリを開発するために必ず必要なステップですよね。2〜3はMobile SDKをCocoaPodsを使って追加していくのに必要なステップになります。4はSwiftからMobile SDKを利用するために必要な作業になります。

ではなぜCocoaPodsを利用するのでしょう?ターミナルからforceiosコマンド(Mobile SDKをインストールすると使えるようになります)を使ってプロジェクトを作成しても構いません。ただCocoaPodsを使うと、他のライブラリと同様にしてMobile SDKもこれで管理できるので非常に便利です。Mobile SDK 3.0からCocoaPodsに対応されるようになったので積極的にCocoaPodsを使っていきましょう!

では早速1〜4を順を追って説明していきます。

Xcodeによるプロジェクトの作成

まずはXcodeを立ち上げてプロジェクトを作成していきましょう。ここではSingle View Applicationを選択していきます。

Step1

作成したら一旦プロジェクトを閉じましょう。この先はCocoaPodsに活躍頂きます。

Podfileを作成

ここからはCocoaPodsを利用するためにPodfileを作成していきます。エディタで次の内容が記載されたファイルを作成します。

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
pod 'SalesforceMobileSDK-iOS'
ここで重要なのは「pod 'SalesforceMobileSDK-iOS’」の部分です。このたった1行でMobile SDKをダウンロードしてきてプロジェクトに含めてくれます。作成したらこのPodfileというファイルを.xcodeprojと同じフォルダに保存しましょう。

Step2

pod installコマンドでMobile SDKをプロジェクトへ追加

あとはターミナルを立ち上げて、Podfileが置いてあるフォルダへ移動し「pod install」のコマンドを実行するだけです。こうする事で拡張子が.xcworkspaceのファイルが作成されます。作成されたらこのファイルを開きましょう。

Step3

開くとMobile SDKに含まれているライブラリがプロジェクトに追加されている事がわかります。このようにCocoaPodsを利用する事で簡単にMobile SDKをプロジェクトに含める事ができます。

アプリを開発する際には常にこの拡張子が.xcworkspaceになっているファイルからプロジェクトを立ち上げるようにしてくださいね。

Objective-C Bridging Header用のヘッダーファイルを作成

ここまできたら後はもう実際に開発!と思ってしまいますが、Mobile SDKはObjective-Cで作成されているため、Swiftから利用するためにはObjective-C Bridging Headerを設定しなければいけません。Objective-C Bridging Headerって何?という方のために簡単に説明させて頂きますと、これはSwiftからObjective-Cのライブラリを使うために設定しなければヘッダファイルとなっています。ファイルの中ではSwiftで利用したいライブラリを読み込むために#import <ヘッダファイル>の形式で記載していきます。サンプルとして僕がいつもヘッダファイルに記載する内容を下記に記載させて頂きますので参考にしてみてください。

#import <SalesforceRestAPI/SFRestAPI.h>
#import <SalesforceRestAPI/SFRestAPI+Blocks.h>
#import <SalesforceRestAPI/SFRestAPI+Files.h>
#import <SalesforceRestAPI/SFRestAPI+QueryBuilder.h>
#import <SalesforceRestAPI/SFRestRequest.h>
#import <SalesforceOAuth/SFOAuthCoordinator.h>
#import <SalesforceOAuth/SFOAuthCredentials.h>
#import <SalesforceSDKCore/SalesforceSDKManager.h>
#import <SalesforceSDKCore/SFDefaultUserManagementViewController.h>
#import <SalesforceSDKCore/SFAuthenticationManager.h>
#import <SalesforceSDKCore/SFUserAccountManager.h>
#import <SalesforceSDKCore/SFJsonUtils.h>
#import <SalesforceCommonUtils/SFLogger.h>
どのヘッダを読みこめばいいかは下記のURLを参考にしてくださいね。
ヘッダファイルを用意するだけではまだSwiftから利用する事はできません。Build SettingでどのヘッダファイルがObjective-C Bridging Headerか指定する必要があります。下記の図のように「Objective-C Bridging Header」を探してヘッダファイルのパスをそこに設定してください。値を設定する際に「$(PRODUCT_NAME)」や「$(SRCROOT)」のマクロを使って設定しておくと後でプロジェクトが置かれている場所を変更しても困らないのでおすすめです。

Step4_3

ここまで来たら後は実際にアプリに必要なコードを書いていくのみですが、長くなってしまったのでここまでを第1回目とさせて頂きます。今後はMobile SDKをどのように使ったらいいかや、Google Mapと連携させたりもっと実践的な内容を書いていきたいと思います。