Help us understand the problem. What is going on with this article?

<CocoaPods>SwiftでmBaaSを始めよう!(use_framewoks!を有効にした方法)

More than 1 year has passed since last update.

【お知らせ】Swift3に対応しました!(2017/02/23更新)

概要

準備するもの

  • Mac
    • OS X 10.10(Yosemite)で動作確認しています
  • Xcode7, Xcode8
    • Ver. 7.2.1, Ver.8.2.1 で動作確認しています
  • ニフクラ mobile backend の登録とアプリの新規作成

※使用した環境を記載しています
※上記環境以上でないと動作しない可能性があります。古い環境の場合は、<CocoaPods>SwiftでmBaaSを始めよう!(use_framewoks!を使用しない導入方法)をお試しください!

手順

1. XcodeでSwiftのプロジェクトを作成する

  • 既存のプロジェクトを使う場合はとばして下さい
  • 作成方法はさまざまなサイトや本に書いてあるかと思いますが、一応簡単なプロジェクトの作成方法を載せておきます
    • Xcodeを開き、「File」→「New」→「Project...」を選択します
    • iOS下の「Application」→「Singl View Application」選択し、「Next」を選択します
    • 「Product Name」を記入し、「Language」は「Swift」を選択してください
    • できたら「Next」を選択すると、保存先選択画面が出るので適当な場所に保存をしてください

2. CocoaPodsでiOS用SDKをインストールする

  • ターミナルを起動します
    • ターミナルはアプリケーション一覧の「その他」の中にあります
    • 以下の操作でコマンドを入力します
    • XXX :~ YYY $のあとに続けて、指定のコマンドの$以降を入力してください※XXXYYYはユーザー名なのでそれぞれ異なります。ディレクトリを移動すると~の部分が変わります。

スクリーンショット 2016-02-09 9.18.30.png

  • 1.で作成した新規あるいは既存のプロジェクト内の「プロジェクト名.xcodeproj」と同じディレクトリにターミナル上で移動します(※大事!これをやっておかないと失敗します!!)
    • 次のコマンドを入力:$ cd [指定ディレクトリ]
  • CocoaPodsを「はじめて使う場合」→ CocoaPodsをインストールする
    • 次のコマンドを入力:$ sudo gem install cocoapods
  • CocoaPodsを「既にインストールしている場合」→CocoaPodsのバージョンアップをする
    • 次のコマンドを入力:$ sudo gem update --system
  • インストールが初めての場合あるいは、アップグレードして最初の起動の場合はセットアップをする
    • 次のコマンドを入力:$ pod setup
  • バージョン確認をします
    • 次のコマンドを入力:$ pod --version
  • バージョンが表示されればOK!
  • Podfile(インストールするライブラリを指定するファイル)を作成します
    • 次のコマンドを入力:$ pod init

スクリーンショット 2016-02-09 9.36.14.png

  • 作成したPodfileを開いて、以下の内容を記述します
    • プロジェクト名」の部分は、作成しているXcodeプロジェクト名を記入してください
Podfile
# Uncomment this line to define a global platform for your project
platform :ios, '8.0'
# Uncomment this line if you're using Swift
use_frameworks!

target 'プロジェクト名' do
    pod 'NCMB', :git => 'https://github.com/NIFTYCloud-mbaas/ncmb_ios.git'
end
  • workspaceを作成します
    • 次のコマンドを入力:$ pod install --no-repo-update
  • 作成された「プロジェクト名.xcworkspace」をダブルクリックしてXcodeを開きます

3. インストールしたSDKを読み込む

  • AppDelegate.swiftファイルのimport UIKitの下に、下記の内容を追記します
共通_AppDelegate.swift
import NCMB

【注意】ViewController.swiftなど他のファイルでSDKを使用する場合は、その対象ファイルにも上記を追記する必要があります!

4. AppDelegate.swiftを編集する

  • ニフクラ mobile backend を使うために必要なAPIキーの設定とSDKの初期化処理はAppDelegate.swiftここに書いておきます

  • 下記のコードをAppDelegate.swiftに貼り付けてください

  • そのとき、2つのAPIキーをニフクラ mobile backend のダッシュボード上からコピーして書き換えてください(※アプリケーションキーとクライアントキーをそれぞれ「YOUR_NCMB_APPLICATIONKEY」と「YOUR_NCMB_CLIENTKEY」の部分に書きます)

Swift3_AppDelegate.swift
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    var window: UIWindow?
    //********** APIキーの設定 **********
    let applicationkey = "YOUR_NCMB_APPLICATIONKEY"
    let clientkey      = "YOUR_NCMB_CLIENTKEY"

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        //********** SDKの初期化 **********
        NCMB.setApplicationKey(applicationkey, clientKey: clientkey)
        //▼▼▼起動時に処理される▼▼▼

        //▲▲▲起動時に処理される▲▲▲
        return true
    }
}
Swift2_AppDelegate.swift
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    var window: UIWindow?
    //********** APIキーの設定 **********
    let applicationkey = "YOUR_NCMB_APPLICATIONKEY"
    let clientkey      = "YOUR_NCMB_CLIENTKEY"

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        //********** SDKの初期化 **********
        NCMB.setApplicationKey(applicationkey, clientKey: clientkey)
        //▼▼▼起動時に処理される▼▼▼

        //▲▲▲起動時に処理される▲▲▲
        return true
    }
}

5. mBaaSのコードを試してみよう!

  • //▼▼▼起動時に処理される▼▼▼//▲▲▲起動時に処理される▲▲▲の間にニフクラ mobile backend のコードを書いてみましょう。didFinishLaunchingWithOptionsは起動時に実行されるメソッドなので、アプリを実行すると動作確認が可能です。
  • 下記のサンプルはデータストアにデータを上げるサンプルコードです。実際に書いて(コピペして)実行してみましょう!
Swift3_AppDelegate.swift
//********** データストアにデータを保存 **********
let obj = NCMBObject(className: "TestClass")
obj?.setObject("Hello, NCMB!", forKey: "message")
obj?.saveInBackground({ (error) in
    if error != nil {
        // 保存に失敗した場合の処理
    }else{
        // 保存に成功した場合の処理
    }
})
Swift2_AppDelegate.swift
//********** データストアにデータを保存 **********
let obj = NCMBObject(className: "TestClass")
obj.setObject("Hello, NCMB!", forKey: "message")
obj.saveInBackgroundWithBlock { (error: NSError!) -> Void in
    if error != nil {
        // 保存に失敗した場合の処理
    }else{
        // 保存に成功した場合の処理
    }
}
  • 実行し、ニフクラ mobile backend のダッシュボードからデータストアを見ると、データが保存されたことが確認できます♪♪
natsumo
ニフクラ mobile backend の使い方をまとめています。
https://github.com/natsumo/
fjct
クラウド・IoT 関連サービスを開発・提供している企業です。(こちらは、富士通クラウドテクノロジーズの有志にて運営しております。)
https://fjct.fujitsu.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away