CocoaPods
framework
mBaas
NCMB
Swift

<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 のダッシュボードからデータストアを見ると、データが保存されたことが確認できます♪♪